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, Srpanj
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 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š:

  1. Arduino Mega ili Arduino Uno (koristio sam Mega)
  2. RFID-RC522
  3. 7 žica kratkospojnika za muškarce i žene
  4. Neke osobne iskaznice (izborno)
  5. RFID knjižnica (mora, donja veza)
  6. Wamp poslužitelj
  7. Obrada IDE 2.2.1 (nemojte koristiti veće od toga)
  8. 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)

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 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

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

Postavljanje IDE -a za obradu
Postavljanje IDE -a za obradu
  1. Preuzmite i instalirajte IDE za obradu 2.2.1
  2. Raspakirajte gornji ZIP u MyDocuments/Processing/Libraries
  3. Sada otvorite IDE za obradu i provjerite je li knjižnica 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.*; 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

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 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: