Sadržaj:
- Korak 1: Postavljanje Arduina i RFID RC-522 (fizička veza)
- Korak 2: Arduino kod.,
- Korak 3: Postavljanje MySQL -a
- Korak 4: Postavljanje IDE -a za obradu
- Korak 5: Izvršavanje programa
- Korak 6: Zaključak
Video: Jednostavna aplikacija za supermarket koja koristi RFID RC-522 i Arduino Mega: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
Drago mi je što vas opet vidim na mom drugom vodiču, ovdje ću vam pomoći da stvorite jednostavnu aplikaciju za supermarkete koristeći RFID RC-522 i Arduino s obradom za stvaranje jednostavnog grafičkog sučelja.
Napomena: nemojte pokretati Arduino serijski monitor tijekom izvođenja koda za obradu jer će doći do sukoba portova jer oboje moraju koristiti isti port
Trebaš:
- Arduino Mega ili Arduino Uno (koristio sam Mega)
- RFID-RC522
- 7 žica kratkospojnika za muškarce i žene
- Neke osobne iskaznice (izborno)
- RFID knjižnica (mora, donja veza)
- Wamp poslužitelj
- Obrada IDE 2.2.1 (nemojte koristiti veće od toga)
- Biblioteka BezierSQLib-0.2.0 za obradu (donja veza za preuzimanje)
Zatim preuzmite RFID biblioteku ispod i dodajte je u svoj Arduino IDE klikom na Sketch-> Include Library-> Add. Zip Library u izborniku datoteka
Korak 1: Postavljanje Arduina i RFID RC-522 (fizička veza)
jednostavno povežite arduino s RFID-RC522 kao što je prikazano na gornjoj slici. Upozorenje: opskrbite samo 3,3 V inače će modul izgorjeti
Pin Out za Uno/Nano i Mega
RC522 MODUL Uno/Nano MEGASDA D10 D9 SCK D13 D52 MOSI D11 D51 MISO D12 D50 IRQ N/A N/A GND GND GND RST D9 D8 3.3V 3.3V 3.3V
Korak 2: Arduino kod.,
Kopirajte donji kôd, a zatim ga prenesite na svoj Arduino
/*PINOUT: RC522 MODUL Uno/Nano MEGA SDA D10 D9 SCK D13 D52 MOSI D11 D51 MISO D12 D50 IRQ N/AN/A GND GND GND RST D9 D8 3.3V 3.3V 3.3V*//*Uključuje standardnu Arduino SPI knjižnicu */ #include/ *Uključite RFID biblioteku */ #include
/* Definirajte DIO koji se koristi za SDA (SS) i RST (reset) pinove. */
#define SDA_DIO 9 #define RESET_DIO 8
/ * Izradite instancu RFID biblioteke */
RFID RC522 (SDA_DIO, RESET_DIO); int čitač = 0;
void setup ()
{Serial.begin (9600); / * Omogući SPI sučelje */ SPI.begin (); / * Pokretanje RFID čitača */ RC522.init (); }
void loop ()
{ / * Privremeni brojač petlje * / bajt i;
/* Je li otkrivena kartica? */
if (RC522.isCard ()) { / * Ako je tako, onda nabavite njegov serijski broj * / RC522.readCardSerial ();
/ * Ispišite serijski broj na UART */ za (i = 0; i <= 2; i ++) {Serial.print (RC522.serNum , DEC); //Serijski.ispis(RC522.serNum, HEX); } Serial.print (","); Serial.print (čitač ++); Serial.println (); } kašnjenje (1000); }
Korak 3: Postavljanje MySQL -a
- Instalirajte Wamp poslužitelj za MySQL i konfigurirajte ga za pohranu podataka (
- Pokrenite wamp serveropennu MySQL konzolu
- odaberite bazu podataka
- Zatim izradite tablicu za svoje podatke
stvoriti tablicu rfid (ID int (8), token int (1), Name varchar (20), Amount int (4));
Sada pogledajte ovu vezu kako biste saznali kako dobiti vrijednost RFID oznake, a zatim upotrijebite donji kod za umetanje podataka. Ne zaboravite zamijeniti ID vrijednost sa vrijednošću RFID oznake
umetnuti u rfid vrijednosti (3756178, 1, 'Olovka', 20);
upotrijebite vrijednost tokena kao 1 kako bi se nakon prvog čitanja vrijednosti oznake automatski promijenila u 2, nemojte koristiti 0 za vrijednost tokena kada čitate karticu koja nije umetnuta u bazu podataka, dodijelit će 0, a zatim je prikazati kao nepoznatu karticu..
Korak 4: Postavljanje IDE -a za obradu
- Preuzmite i instalirajte IDE za obradu 2.2.1
- Raspakirajte gornji ZIP u MyDocuments/Processing/Libraries
- Sada otvorite IDE za obradu i provjerite je li knjižnica ispravno instalirana ili nije kao na gornjoj slici
- Zatim kopirajte donji kôd u obradu i dajte mu svoje ime
import de.bezier.data.sql.*; uvoz obrada.serial.*; // uvoz java.math. BigInteger;
// stvorio 2005-05-10 autor fjenett
// ažurirano fjenett 20080605
MySQL dbkonekcija;
Niz s = ""; int Težina = 700; int Širina = 1200; dugačka iskaznica; int token; int Iznos; int Ukupno = 0;
String a = {"NULL", "NULL"};
int kraj = 10; // broj 10 je ASCII za linefeed (kraj serial.println), kasnije ćemo to tražiti da razbijemo pojedinačne poruke String serial; // deklarirati novi niz pod nazivom 'serijski'. Niz je niz znakova (vrsta podataka poznata kao "char") Serijski port; String curr, prev, Name; PFont f;
void setup ()
{// veličina (Wwidth, Wheight); veličina (700, 500); f = createFont ("Arial", 24, točno); // ovaj primjer pretpostavlja da // mysql poslužitelj pokrećete lokalno (na "localhost"). // // zamijenite --username--, --password-- vašim mysql-računom. // String user = "root"; String pass = ""; // naziv baze podataka za upotrebu // String database = "IOT_Database"; // naziv tablice koja će se kreirati String table = ""; // povezivanje s bazom podataka poslužitelja "localhost" dbconnection = novi MySQL (ovaj, "localhost", baza podataka, korisnik, prolaz); port = novi serijski (ovaj, Serial.list () [0], 9600); // inicijalizacija objekta dodjelom porta i brzinom prijenosa (mora odgovarati onoj kod Arduina) port.clear (); // funkcija iz serijske knjižnice koja izbacuje prvo čitanje, u slučaju da smo počeli čitati usred niza iz Arduina serial = port.readStringUntil (kraj); // funkcija koja čita niz iz serijskog porta do println, a zatim dodjeljuje niz našoj varijabli niza (koja se naziva 'serijska') serial = null; } void draw () {background (255); textFont (f, 24); ispuniti (0); text ("Ukupan iznos Rs:", 400, 400); tekst (Ukupno, 585, 400); podaci(); while (port.available ()> 0) {// sve dok postoje podaci koji dolaze iz serijskog porta, pročitajte ih i spremite serial = port.readStringUntil (end); } if (serijski! = null) {prev = curr; curr = a [1]; a = podijeljeno (serijski, ','); // novi niz (nazvan 'a') koji pohranjuje vrijednosti u zasebne ćelije (odvojene zarezima navedenim u vašem programu Arduino) if ((curr).equals (prev)) {//} else {// println ("curr ", curr); // println ("Prethodna", prethodna); funkcija(); }}}
funkcija void ()
{if (dbconnection.connect ()) {// sada ga ponovno pročitajte // dbconnection.query ("SELECT * from rfid where ID ="+a [0]+""); while (dbconnection.next ()) {ID = dbconnection.getInt ("ID"); token = dbconnection.getInt ("token"); Iznos = dbconnection.getInt ("Iznos"); } if (token == 0) {println ("Ok"); textFont (f, 54); ispuniti (255, 0, 0, 160); tekst ("Otkrivena nepoznata stavka", 50, 300); odgoda (2000); } else if (token == 1) {Total = Total+Amount; dbconnection.query ("ažuriraj rfid set token = 2 gdje je ID ="+a [0]+""); println ("U redu"); textFont (f, 24); ispuniti (255, 0, 0, 160); // tekst ("Stavka dodana", 10, 30); kašnjenje (1000); } else if (token == 2) {Total = Total-Amount; dbconnection.query ("ažuriraj rfid set token = 1 gdje je ID ="+a [0]+""); println ("U redu"); textFont (f, 24); ispuniti (255, 0, 0, 160); // text ("Stavka uklonjena", 10, 30); kašnjenje (1000); } else {} dbconnection.close (); } else {// veza nije uspjela! }}
void data ()
{int position = 100; if (dbconnection.connect ()) {dbconnection.query ("SELECT * from rfid where token = 2"); while (dbconnection.next ()) {Name = dbconnection.getString ("Ime"); Iznos = dbconnection.getInt ("Iznos"); textFont (f, 24); ispunite (0, 0, 255, 160); tekst (Ime, 10, pozicija); ispuniti (0, 0, 0, 160); tekst (Iznos, 215, pozicija); položaj = položaj+30; }} dbconnection.close (); }
Korak 5: Izvršavanje programa
Pokrenite program klikom na gumb Pokreni Ne zatvaraj skočni prozor Zatvaranje će zaustaviti izvršavanje i ispod upita za pregled pohranjenih podataka u MySQL …
Korak 6: Zaključak
Želio bih vam zahvaliti što ste pročitali moj vodič. Bio bih vam zahvalan ako biste smatrali da je korisno i ostavite lajk (omiljeni) ili me pitajte bilo što jer me to motivira za ove instrukcije. slobodno postavljajte pitanja koja trebate znati …
Sretno kodiranje Arduina …
Preporučeni:
Mini meteorološka postaja koja koristi Arduino i ThingSpeak: 4 koraka
Mini meteorološka postaja koja koristi Arduino i ThingSpeak: Pozdrav svima. U ovom Instructableu vodit ću vas kroz korake za izradu personalizirane mini meteorološke postaje. Također, koristit ćemo ThingSpeak API za prijenos naših vremenskih podataka na njihove poslužitelje, ili koja je svrha vremenske prognoze
Meteorološka postaja koja koristi Arduino UNO: 7 koraka
Meteorološka postaja pomoću Arduino UNO -a: Autor: Hazel YangOvaj projekt je meteorološka stanica koja koristi Arduino UNO ploču za kontrolu protoka podataka, senzor DHT22 za prikupljanje podataka i OLED zaslon za prikaz podataka
Jednostavna kućna automatizacija (prilagođena Bluetooth aplikacija): 6 koraka
Jednostavna kućna automatizacija (prilagođena Bluetooth aplikacija): u ovom ću vam vodiču pokazati kako izgraditi jednostavnu kućnu automatizaciju (to jest možemo kontrolirati naše kućne aplikacije pametnim telefonom)
Jednostavna IOS aplikacija za BLE module: 4 koraka
Jednostavna IOS aplikacija za BLE module: Ova uputa opisuje kako možete stvoriti iOS aplikaciju s vrlo osnovnom funkcionalnošću. Ovaj Instructable neće proći kroz cijeli proces izrade iOS BLE aplikacije. To će samo dati visoku razinu pregleda nekih važnih elemenata uz
Povezivanje RFID-RC522 s Arduino MEGA-om jednostavna skica: 4 koraka
Povezivanje RFID-RC522 s Arduino MEGA-om jednostavna skica: Hai u ovom vodiču pomoći ću vam u povezivanju RFID-RC522 s Arduino Mega 2560 za čitanje RFID-a i prikaz podataka na serijskom monitoru. tako da ga možete sami proširiti Trebate: Arduino Mega ili Arduino Uno