Indholdsfortegnelse:

Enkel supermarked-app ved hjælp af RFID RC-522 og Arduino Mega: 6 trin
Enkel supermarked-app ved hjælp af RFID RC-522 og Arduino Mega: 6 trin

Video: Enkel supermarked-app ved hjælp af RFID RC-522 og Arduino Mega: 6 trin

Video: Enkel supermarked-app ved hjælp af RFID RC-522 og Arduino Mega: 6 trin
Video: Пэтти Маас + Пранав Мистри: Встречайте «Шестое чувство» 2024, November
Anonim
Enkel supermarked-app ved hjælp af RFID RC-522 og Arduino Mega
Enkel supermarked-app ved hjælp af RFID RC-522 og Arduino Mega

Det er godt at se jer igen her på min anden vejledning, her skal jeg hjælpe jer med at oprette en simpel supermarkedsprogram ved hjælp af RFID RC-522 og Arduino med Processing til at oprette enkel GUI.

Bemærk: Kør ikke Arduino seriel skærm, mens du kører behandlingskode, fordi der opstår portkonflikt, da begge skal bruge den samme port

Du mangler:

  1. Arduino Mega eller Arduino Uno (jeg brugte Mega)
  2. RFID-RC522
  3. 7 tråde fra han til hun
  4. Nogle ID -kort (valgfrit)
  5. RFID -bibliotek (skal, link nedenfor)
  6. Wamp server
  7. Behandler IDE 2.2.1 (brug ikke større end det)
  8. BezierSQLib-0.2.0 bibliotek til behandling (downloadlink herunder)

Download derefter nedenstående RFID-bibliotek og tilføj det til din Arduino IDE ved at klikke på Skitse-> Inkluder bibliotek-> Tilføj. Zip-bibliotek i filmenuen

Trin 1: Opsætning af Arduino og RFID RC-522 (fysisk forbindelse)

Opsætning af Arduino og RFID RC-522 (fysisk forbindelse)
Opsætning af Arduino og RFID RC-522 (fysisk forbindelse)

tilslut simpelthen arduinoen med RFID-RC522 som vist på billedet ovenfor. Advarsel: kun 3,3 V forsyning ellers brænder modulet ud

Pin Out for Uno/Nano og Mega

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

Trin 2: Arduino -kode.,

Kopiér nedenstående kode, og upload den derefter på din Arduino

/*PINOUT: RC522 MODULE 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 den DIO, der bruges til SDA (SS) og RST (reset) benene. */

#define SDA_DIO 9 #define RESET_DIO 8

/ * Opret en forekomst af RFID -biblioteket */

RFID RC522 (SDA_DIO, RESET_DIO); int læser = 0;

ugyldig opsætning ()

{Serial.begin (9600); / * Aktiver SPI -grænsefladen */ SPI.begin (); / * Initialiser RFID -læseren */ RC522.init (); }

hulrum ()

{ / * Midlertidig sløjfe tæller * / byte i;

/* Er der fundet et kort? */

if (RC522.isCard ()) { / * Hvis ja, så få sit serienummer * / RC522.readCardSerial ();

/ * Udfør serienummeret til UART */ for (i = 0; i <= 2; i ++) {Serial.print (RC522.serNum , DEC); //Serial.print(RC522.serNum , HEX); } Serial.print (","); Serial.print (læser ++); Serial.println (); } forsinkelse (1000); }

Trin 3: Opsætning af MySQL

Opsætning af MySQL
Opsætning af MySQL
  1. Installer Wamp -server til MySQL, og konfigurer den til at gemme data (
  2. Kør wamp serveropen MySQL -konsol
  3. vælg database
  4. Opret derefter tabellen til dine data

oprette tabel rfid (ID int (8), token int (1), Navn varchar (20), Beløb int (4));

Se nu dette link for at lære, hvordan du får din RFID -tagværdi, og brug derefter nedenstående kode til at indsætte data. Glem ikke at erstatte ID -værdi med din RFID -tagværdi

indsæt i rfid -værdier (3756178, 1, 'Pencil', 20);

brug tokenværdi som 1, så efter at have læst tagværdien for første gang, skifter den automatisk til 2, brug ikke 0 til tokenværdi, når læsekort, der ikke er indsat i DB, vil den tildele 0 og derefter vise den som Ukendt kort..

Trin 4: Opsætning af Processing IDE

Opsætning af behandling af IDE
Opsætning af behandling af IDE
  1. Download og installer Processing IDE 2.2.1
  2. Uddrag det ovenstående givne ZIP til MyDocuments/Processing/Libraries
  3. Åbn nu behandlings -IDE, og kontroller, at biblioteket er installeret korrekt eller ikke som i ovenstående billede
  4. Kopier derefter nedenstående kode til behandling og navngiv den selv

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

// oprettet 2005-05-10 af fjenett

// opdateret fjenett 20080605

MySQL db -forbindelse;

String s = ""; int Vægt = 700; int Bredde = 1200; langt ID; int token; int Beløb; int Total = 0;

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

int ende = 10; // tallet 10 er ASCII for linefeed (slut på serial.println), senere vil vi kigge efter dette for at opdele individuelle meddelelser String serial; // erklære en ny streng kaldet 'seriel'. En streng er en sekvens af tegn (datatype kendt som "char") Seriel port; String curr, prev, Name; PFont f;

ugyldig opsætning ()

{// størrelse (bredde, vægt); størrelse (700, 500); f = createFont ("Arial", 24, true); // dette eksempel antager, at du kører // mysql -serveren lokalt (på "localhost"). // // erstat --brugernavn--, --password-- med din mysql-konto. // String user = "root"; Stringpass = ""; // navn på den database, der skal bruges // String database = "IOT_Database"; // navn på tabellen, der vil blive oprettet String table = ""; // oprette forbindelse til database med serveren "localhost" dbconnection = ny MySQL (denne, "localhost", database, bruger, pass); port = ny Serial (denne, Serial.list () [0], 9600); // initialisere objektet ved at tildele en port og baudrate (skal matche Arduino) port.clear (); // funktion fra serielt bibliotek, der kaster den første læsning ud, hvis vi begyndte at læse midt i en streng fra Arduino serial = port.readStringUntil (ende); // funktion, der læser strengen fra seriel port indtil en println og derefter tildeler streng til vores strengvariabel (kaldet 'seriel') serial = null; } void draw () {baggrund (255); textFont (f, 24); fyld (0); tekst ("Samlet beløb Rs:", 400, 400); tekst (i alt, 585, 400); data(); mens (port.available ()> 0) {// så længe der kommer data fra seriel port, skal du læse den og gemme den serial = port.readStringUntil (end); } hvis (seriel! = null) {prev = curr; curr = a [1]; a = split (seriel, ','); // en ny matrix (kaldet 'a'), der gemmer værdier i separate celler (adskilt med kommaer angivet i dit Arduino -program) hvis ((curr).equals (prev)) {//} else {// println ("curr ", curr); // println ("Forrige", forrige); fungere(); }}}

void -funktion ()

{if (dbconnection.connect ()) {// læs det nu tilbage // dbconnection.query ("SELECT * fra rfid hvor ID ="+a [0]+""); mens (dbconnection.next ()) {ID = dbconnection.getInt ("ID"); token = dbconnection.getInt ("token"); Beløb = dbconnection.getInt ("Beløb"); } hvis (token == 0) {println ("Ok"); textFont (f, 54); fyld (255, 0, 0, 160); tekst ("Ukendt genstand opdaget", 50, 300); forsinkelse (2000); } ellers hvis (token == 1) {Total = Total+Beløb; dbconnection.query ("opdater rfid set token = 2 hvor ID ="+a [0]+""); println ("Ok"); textFont (f, 24); fyld (255, 0, 0, 160); // tekst ("Artikel tilføjet", 10, 30); forsinkelse (1000); } ellers hvis (token == 2) {Total = Total-Amount; dbconnection.query ("opdater rfid set token = 1 hvor ID ="+a [0]+""); println ("Ok"); textFont (f, 24); fyld (255, 0, 0, 160); // tekst ("Element fjernet", 10, 30); forsinkelse (1000); } andet {} dbconnection.close (); } andet {// forbindelsen mislykkedes! }}

ugyldige data ()

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

Trin 5: Udførelse af programmet

Udførelse af programmet
Udførelse af programmet
Udførelse af programmet
Udførelse af programmet
Udførelse af programmet
Udførelse af programmet
Udførelse af programmet
Udførelse af programmet

Kør programmet ved at klikke på kør -knappen, ikke luk popup -vinduet lukning stopper udførelsen og forespørgsel nedenfor for at se lagrede data i MySQL …

Trin 6: Konklusion

Jeg vil gerne takke dig, fordi du læste min tutorial. Jeg ville sætte pris på, hvis du syntes det var nyttigt og slippe et like (favorit) eller spørge mig om noget, da det holder mig motiveret til at lave disse instruktioner. stil gerne de spørgsmål, du har brug for at vide …

Glad kodning Arduino …

Anbefalede: