Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-23 14:37
Drago mi je što vas opet vidim na mom drugom vodiču, ovdje ću vam pomoći da kreirate 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 dok radite s kodom za obradu jer će doći do sukoba portova jer oboje moraju koristiti isti port
Ti trebas:
- Arduino Mega ili Arduino Uno (koristio sam Mega)
- RFID-RC522
- 7 žica kratkospojnika za muškarce i žene
- Neke lične karte (opcionalno)
- RFID biblioteka (mora, veza ispod)
- Wamp server
- Obrada IDE 2.2.1 (nemojte koristiti veće od toga)
- Biblioteka BezierSQLib-0.2.0 za obradu (veza za preuzimanje ispod)
Zatim preuzmite RFID biblioteku ispod i dodajte je u svoj Arduino IDE klikom na Sketch-> Include Library-> Add. Zip Library u meniju 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 kod, 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 biblioteku */ #include/ *Uključuje RFID biblioteku */ #include
/* Definirajte DIO koji se koristi za SDA (SS) i RST (reset) pinove. */
#define SDA_DIO 9 #define RESET_DIO 8
/ * Kreirajte instancu RFID biblioteke */
RFID RC522 (SDA_DIO, RESET_DIO); int čitač = 0;
void setup ()
{Serial.begin (9600); / * Omogući SPI interfejs */ 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 */ for (i = 0; i <= 2; i ++) {Serial.print (RC522.serNum , DEC); //Serial.print(RC522.serNum, HEX); } Serial.print (","); Serial.print (čitač ++); Serial.println (); } kašnjenje (1000); }
Korak 3: Postavljanje MySQL -a
- Instalirajte Wamp server za MySQL i konfigurirajte ga za pohranu podataka (
- Pokrenite wamp serveropennu MySQL konzolu
- odaberite bazu podataka
- Zatim kreirajte tablicu za svoje podatke
kreirati tabelu rfid (ID int (8), token int (1), Naziv 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 vaše RFID oznake
umetnuti u rfid vrijednosti (3756178, 1, 'Olovka', 20);
koristite vrijednost tokena kao 1, tako da se nakon prvog čitanja vrijednosti oznake automatski promijeni 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 gore navedeni ZIP u MyDocuments/Processing/Libraries
- Sada otvorite IDE za obradu i provjerite je li biblioteka 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.*; import processing.serial.*; // uvoz java.math. BigInteger;
// kreirao fjenett 2005-05-10
// ažurirano fjenett 20080605
MySQL dbconnection;
String s = ""; int težina = 700; int Širina = 1200; long ID; 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 za razbijanje pojedinačnih poruka String serial; // deklariramo novi niz pod nazivom 'serijski'. Niz je niz znakova (tip podataka poznat kao "char") Serijski port; String string curr, prev, Name; PFont f;
void setup ()
{// veličina (Wwidth, Wheight); veličina (700, 500); f = createFont ("Arial", 24, tačno); // ovaj primjer pretpostavlja da // pokrećete // mysql poslužitelj 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 sa bazom podataka servera "localhost" dbconnection = novi MySQL (ovaj, "localhost", baza podataka, korisnik, prolaz); port = novi serijski (ovaj, Serial.list () [0], 9600); // inicijalizacija objekta dodjeljivanjem porta i brzinom prijenosa (mora odgovarati onoj kod Arduina) port.clear (); // funkcija iz serijske biblioteke koja izbacuje prvo čitanje, u slučaju da smo počeli čitati usred niza iz Arduina serial = port.readStringUntil (kraj); // funkcija koja čita niz sa serijskog porta do println, a zatim dodjeljuje string našoj varijabli niza (zvanoj 'serijski') serial = null; } void draw () {background (255); textFont (f, 24); fill (0); text ("Ukupan iznos Rs:", 400, 400); tekst (ukupno, 585, 400); data (); while (port.available ()> 0) {// sve dok postoje podaci koji dolaze sa serijskog porta, pročitajte ih i spremite serial = port.readStringUntil (end); } if (serijski! = null) {prev = curr; curr = a [1]; a = split (serijski, ','); // novi niz (nazvan 'a') koji pohranjuje vrijednosti u zasebne ćelije (odvojene zarezima navedenim u vašem Arduino programu) if ((curr).equals (prev)) {//} else {// println ("curr ", curr); // println ("Prethodna", prethodna); function (); }}}
funkcija void ()
{if (dbconnection.connect ()) {// sada ga ponovo 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); fill (255, 0, 0, 160); text ("Otkrivena nepoznata stavka", 50, 300); kašnjenje (2000); } else if (token == 1) {Total = Total+Amount; dbconnection.query ("ažuriraj rfid set token = 2 gdje je ID ="+a [0]+""); println ("Ok"); textFont (f, 24); fill (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 ("Ok"); textFont (f, 24); fill (255, 0, 0, 160); // tekst ("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); fill (0, 0, 255, 160); tekst (Ime, 10, pozicija); fill (0, 0, 0, 160); tekst (iznos, 215, pozicija); položaj = položaj+30; }} dbconnection.close (); }
Korak 5: Izvršavanje programa
Pokrenite program klikom na dugme Pokreni Ne zatvaraj skočni prozor. Zatvaranje skočnog prozora će zaustaviti izvršavanje i ispod upita za pregled pohranjenih podataka u MySQL -u …
Korak 6: Zaključak
Želim 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 šta jer me to motivira da radim ove upute. slobodno postavljajte pitanja koja trebate znati …
Sretno kodiranje Arduina…
Preporučuje se:
Mini meteorološka stanica koja koristi Arduino i ThingSpeak: 4 koraka
Mini meteorološka stanica koja koristi Arduino i ThingSpeak: Pozdrav svima. U ovom Instructable -u vodit ću vas kroz korake za izradu personalizirane mini meteorološke stanice. Također, koristit ćemo ThingSpeak API za postavljanje naših vremenskih podataka na njihove poslužitelje, ili koja je svrha vremenske prognoze
Mašina za strašilo za Noć vještica koja koristi PIR, 3D ispisanu bundevu i kompatibilnu audio pranker/praktičnu šalu za šale Troll Arduino .: 5 koraka
Mašina za strahove za Noć vještica koja koristi PIR, 3D printanu bundevu i kompatibilnu audio pranker Troll Arduino ploču za šale: Ploča za trolove koju je stvorio Patrick Thomas Mitchell iz EngineeringShock Electronics, a nedavno je u potpunosti financirana od strane Kickstartera. Dobio sam nagradu nekoliko sedmica ranije da pomognem u pisanju primjera upotrebe i izgradnji Arduino biblioteke u pokušaju
Meteorološka stanica koja koristi Arduino UNO: 7 koraka
Meteorološka stanica koja koristi Arduino UNO: Autor: Hazel YangOvaj projekt je meteorološka stanica koja koristi Arduino UNO ploču za kontrolu protoka podataka, DHT22 senzor za prikupljanje podataka i OLED ekran za prikaz podataka
Jednostavna kućna automatizacija (prilagođena Bluetooth aplikacija): 6 koraka
Jednostavna kućna automatizacija (prilagođena Bluetooth aplikacija): u ovom vodiču ću vam 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 instrukcija opisuje kako možete stvoriti iOS aplikaciju s vrlo osnovnim funkcionalnostima. Ovaj Instructable neće proći kroz cijeli proces izrade iOS BLE aplikacije. To će samo dati visok nivo pregleda nekih važnih elemenata sa