Sadržaj:

Jednostavna aplikacija za supermarket koja koristi RFID RC-522 i Arduino Mega: 6 koraka
Jednostavna aplikacija za supermarket koja koristi RFID RC-522 i Arduino Mega: 6 koraka

Video: Jednostavna aplikacija za supermarket koja koristi RFID RC-522 i Arduino Mega: 6 koraka

Video: Jednostavna aplikacija za supermarket koja koristi RFID RC-522 i Arduino Mega: 6 koraka
Video: 🚀 AMAZON 2.0 - ИНТЕРНЕТ МАГАЗИН с нуля за 6 часов [Next / React / Nest / PostgreSQL / Prisma / TS] 2024, Juli
Anonim
Jednostavna aplikacija za supermarket koja koristi RFID RC-522 i Arduino Mega
Jednostavna aplikacija za supermarket koja koristi RFID RC-522 i Arduino Mega

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:

  1. Arduino Mega ili Arduino Uno (koristio sam Mega)
  2. RFID-RC522
  3. 7 žica kratkospojnika za muškarce i žene
  4. Neke lične karte (opcionalno)
  5. RFID biblioteka (mora, veza ispod)
  6. Wamp server
  7. Obrada IDE 2.2.1 (nemojte koristiti veće od toga)
  8. 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)

Postavljanje Arduina i RFID RC-522 (fizička veza)
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

Postavljanje MySQL -a
Postavljanje MySQL -a
  1. Instalirajte Wamp server za MySQL i konfigurirajte ga za pohranu podataka (
  2. Pokrenite wamp serveropennu MySQL konzolu
  3. odaberite bazu podataka
  4. 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

Postavljanje IDE -a za obradu
Postavljanje IDE -a za obradu
  1. Preuzmite i instalirajte IDE za obradu 2.2.1
  2. Raspakirajte gore navedeni ZIP u MyDocuments/Processing/Libraries
  3. Sada otvorite IDE za obradu i provjerite je li biblioteka ispravno instalirana ili nije kao na gornjoj slici
  4. 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

Izvršavanje programa
Izvršavanje programa
Izvršavanje programa
Izvršavanje programa
Izvršavanje programa
Izvršavanje programa
Izvršavanje programa
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: