Innholdsfortegnelse:

Enkel supermarked-app ved bruk av RFID RC-522 og Arduino Mega: 6 trinn
Enkel supermarked-app ved bruk av RFID RC-522 og Arduino Mega: 6 trinn

Video: Enkel supermarked-app ved bruk av RFID RC-522 og Arduino Mega: 6 trinn

Video: Enkel supermarked-app ved bruk av RFID RC-522 og Arduino Mega: 6 trinn
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Juli
Anonim
Enkel supermarked-app ved bruk av RFID RC-522 og Arduino Mega
Enkel supermarked-app ved bruk av RFID RC-522 og Arduino Mega

Det er godt å se dere igjen her på min andre opplæring, her skal jeg hjelpe deg med å lage en enkel supermarkedapplikasjon ved hjelp av RFID RC-522 og Arduino med prosessering for å lage enkel GUI.

Merk: Ikke kjør Arduino seriell skjerm mens du kjører behandlingskode fordi portkonflikt vil oppstå, da begge må bruke den samme porten

Du trenger:

  1. Arduino Mega eller Arduino Uno (jeg brukte Mega)
  2. RFID-RC522
  3. 7 hoppetråder fra mann til hunn
  4. Noen ID -kort (valgfritt)
  5. RFID -bibliotek (må, lenke nedenfor)
  6. Wamp -server
  7. Behandler IDE 2.2.1 (ikke bruk større enn det)
  8. BezierSQLib-0.2.0 bibliotek for behandling (Last ned lenke nedenfor)

Last deretter ned RFID-biblioteket nedenfor og legg det til i Arduino IDE ved å klikke Sketch-> Include Library-> Add. Zip Library i filmenyen

Trinn 1: Konfigurere Arduino og RFID RC-522 (fysisk tilkobling)

Sette opp Arduino og RFID RC-522 (fysisk tilkobling)
Sette opp Arduino og RFID RC-522 (fysisk tilkobling)

Bare koble arduinoen til RFID-RC522 som vist på bildet ovenfor. Advarsel: bare 3,3V forsyning, ellers vil modulen brenne ut

Pin Out for Uno/Nano og 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

Trinn 2: Arduino -kode.,

Kopier koden nedenfor og last den opp på 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*//*Inkluder standard Arduino SPI -bibliotek */ #include/ *Inkluder RFID -biblioteket */ #include

/* Definer DIO som brukes for SDA (SS) og RST (reset) pins. */

#define SDA_DIO 9 #define RESET_DIO 8

/ * Opprett en forekomst av RFID -biblioteket */

RFID RC522 (SDA_DIO, RESET_DIO); int -leser = 0;

ugyldig oppsett ()

{Serial.begin (9600); / * Aktiver SPI -grensesnittet */ SPI.begin (); / * Initialiser RFID -leseren */ RC522.init (); }

hulrom ()

{ / * Midlertidig sløyfeteller * / byte i;

/* Har et kort blitt oppdaget? */

if (RC522.isCard ()) { / * I så fall får du serienummeret * / RC522.readCardSerial ();

/ * Skriv ut serienummeret til UART */ for (i = 0; i <= 2; i ++) {Serial.print (RC522.serNum , DEC); //Serial.print(RC522.serNum , HEX); } Serial.print (","); Serial.print (leser ++); Serial.println (); } forsinkelse (1000); }

Trinn 3: Konfigurere MySQL

Sette opp MySQL
Sette opp MySQL
  1. Installer Wamp -serveren for MySQL og konfigurer den til å lagre data (
  2. Kjør wamp serveropen MySQL -konsoll
  3. velg database
  4. Lag deretter tabellen for dataene dine

lage tabell rfid (ID int (8), token int (1), Navn varchar (20), Beløp int (4));

Se nå på denne lenken for å lære hvordan du får verdien for RFID -taggen din, og bruk deretter koden nedenfor for å sette inn data. Ikke glem å erstatte ID -verdien med RFID -taggen din

sett inn i rfid -verdier (3756178, 1, 'Pencil', 20);

bruk token verdi som 1 slik at etter å ha lest tag -verdien for første gang vil den automatisk endres til 2, ikke bruk 0 for token verdi når lesekort som ikke er satt inn i DB, vil det tildele 0 og deretter vise det som Ukjent kort..

Trinn 4: Konfigurere Processing IDE

Konfigurere behandling av IDE
Konfigurere behandling av IDE
  1. Last ned og installer Processing IDE 2.2.1
  2. Pakk ut den ovennevnte ZIP -en til MyDocuments/Processing/Libraries
  3. Åpne nå prosessering IDE og kontroller at biblioteket er installert riktig eller ikke som i bildet ovenfor
  4. Kopier deretter koden nedenfor til behandling og navngi den din egen

import de.bezier.data.sql.*; import processing.serial.*; // import java.math. BigInteger;

// opprettet 2005-05-10 av fjenett

// oppdatert fjenett 20080605

MySQL dbconnection;

String s = ""; int Vekt = 700; int Bredde = 1200; lang ID; int token; int Beløp; int Total = 0;

String a = {"NULL", "NULL"};

int ende = 10; // tallet 10 er ASCII for linefeed (slutten av serial.println), senere vil vi se etter dette for å bryte opp individuelle meldinger String serial; // erklære en ny streng som kalles 'seriell'. En streng er en sekvens av tegn (datatype kjent som "char") Seriell port; String curr, prev, Name; PFont f;

ugyldig oppsett ()

{// størrelse (bredde, vekt); størrelse (700, 500); f = createFont ("Arial", 24, true); // dette eksemplet forutsetter at du kjører // mysql -serveren lokalt (på "localhost"). // // erstatte --brukernavn--, --passord-- med mysql-kontoen din. // String user = "root"; Stringpass = ""; // navn på databasen som skal brukes // String database = "IOT_Database"; // navn på tabellen som skal opprettes String table = ""; // koble til databasen til serveren "localhost" dbconnection = ny MySQL (dette, "localhost", database, bruker, pass); port = ny Serial (dette, Serial.list () [0], 9600); // initialisere objektet ved å tilordne en port og baud rate (må samsvare med Arduino) port.clear (); // funksjon fra seriell bibliotek som kaster ut den første lesingen, i tilfelle vi begynte å lese midt i en streng fra Arduino serial = port.readStringUntil (end); // funksjon som leser strengen fra seriell port til en println og deretter tilordner streng til vår strengvariabel (kalt 'seriell') serial = null; } void draw () {bakgrunn (255); textFont (f, 24); fyll (0); tekst ("Totalbeløp Rs:", 400, 400); tekst (totalt, 585, 400); data(); mens (port.available ()> 0) {// så lenge det kommer data fra seriell port, les den og lagre den serial = port.readStringUntil (end); } hvis (seriell! = null) {prev = curr; curr = a [1]; a = split (seriell, ','); // en ny matrise (kalt 'a') som lagrer verdier i separate celler (atskilt med komma spesifisert i Arduino -programmet) hvis ((curr).equals (prev)) {//} else {// println ("curr ", curr); // println ("Forrige", forrige); funksjon(); }}}

ugyldig funksjon ()

{if (dbconnection.connect ()) {// les den nå ut igjen // dbconnection.query ("SELECT * fra rfid hvor ID ="+a [0]+""); while (dbconnection.next ()) {ID = dbconnection.getInt ("ID"); token = dbconnection.getInt ("token"); Beløp = dbconnection.getInt ("Beløp"); } if (token == 0) {println ("Ok"); textFont (f, 54); fyll (255, 0, 0, 160); tekst ("Ukjent gjenstand oppdaget", 50, 300); forsinkelse (2000); } annet hvis (token == 1) {Total = Total+Beløp; dbconnection.query ("oppdater rfid set token = 2 hvor ID ="+a [0]+""); println ("Ok"); textFont (f, 24); fyll (255, 0, 0, 160); // tekst ("Element lagt til", 10, 30); forsinkelse (1000); } annet hvis (token == 2) {Total = Total-Beløp; dbconnection.query ("oppdater rfid set token = 1 hvor ID ="+a [0]+""); println ("Ok"); textFont (f, 24); fyll (255, 0, 0, 160); // tekst ("Element fjernet", 10, 30); forsinkelse (1000); } annet {} dbconnection.close (); } annet {// tilkobling mislyktes! }}

ugyldige data ()

{int posisjon = 100; if (dbconnection.connect ()) {dbconnection.query ("SELECT * fra rfid hvor token = 2"); while (dbconnection.next ()) {Navn = dbconnection.getString ("Navn"); Beløp = dbconnection.getInt ("Beløp"); textFont (f, 24); fyll (0, 0, 255, 160); tekst (navn, 10, posisjon); fyll (0, 0, 0, 160); tekst (Beløp, 215, posisjon); posisjon = posisjon+30; }} dbconnection.close (); }

Trinn 5: Gjennomføring av programmet

Gjennomføring av programmet
Gjennomføring av programmet
Gjennomføring av programmet
Gjennomføring av programmet
Gjennomføring av programmet
Gjennomføring av programmet
Gjennomføring av programmet
Gjennomføring av programmet

Kjør programmet ved å klikke på kjør -knappen ikke lukk popup -vinduet lukking vil stoppe utførelsen og under spørringen for å se lagrede data i MySQL …

Trinn 6: Konklusjon

Jeg vil takke deg for at du leste opplæringen min. Jeg ville sette pris på om du syntes det var nyttig og slippe en liker (favoritt) eller spør meg om noe som det holder meg motivert til å gjøre disse instruksjonene. still gjerne spørsmål du trenger å vite …

Happy Coding Arduino …

Anbefalt: