Innehållsförteckning:

Enkel app för stormarknader med RFID RC-522 och Arduino Mega: 6 steg
Enkel app för stormarknader med RFID RC-522 och Arduino Mega: 6 steg

Video: Enkel app för stormarknader med RFID RC-522 och Arduino Mega: 6 steg

Video: Enkel app för stormarknader med RFID RC-522 och Arduino Mega: 6 steg
Video: Quattro Vidcom presenterar: Korthållaren – Card safe 2024, November
Anonim
Enkel stormarknadsapp med RFID RC-522 och Arduino Mega
Enkel stormarknadsapp med RFID RC-522 och Arduino Mega

Det är bra att se er igen här på min andra handledning, här ska jag hjälpa dig att skapa en enkel stormarknadsprogram med RFID RC-522 och Arduino med Processing för att skapa enkelt GUI.

Obs! Kör inte Arduino seriell bildskärm medan du kör bearbetningskoden eftersom portkonflikt uppstår eftersom båda måste använda samma port

Du behöver:

  1. Arduino Mega eller Arduino Uno (jag använde Mega)
  2. RFID-RC522
  3. 7 bygel till hane
  4. Vissa ID -kort (tillval)
  5. RFID -bibliotek (måste, länk nedan)
  6. Wamp -server
  7. Bearbetar IDE 2.2.1 (använd inte större än så)
  8. BezierSQLib-0.2.0 bibliotek för bearbetning (nedladdningslänk nedan)

Ladda sedan ner RFID-biblioteket nedan och lägg till det i din Arduino IDE genom att klicka på Sketch-> Inkludera bibliotek-> Lägg till. Zip-bibliotek i filmenyn

Steg 1: Konfigurera Arduino och RFID RC-522 (fysisk anslutning)

Konfigurera Arduino och RFID RC-522 (fysisk anslutning)
Konfigurera Arduino och RFID RC-522 (fysisk anslutning)

anslut helt enkelt arduino med RFID-RC522 som visas i bilden ovan.

Pin Out för Uno/Nano och 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

Steg 2: Arduino -kod.,

Kopiera koden nedan och ladda upp den 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*//*Inkludera det vanliga Arduino SPI -biblioteket */ #include/ *Inkludera RFID -biblioteket */ #include

/* Definiera DIO som används för SDA (SS) och RST (reset) stiften. */

#define SDA_DIO 9 #define RESET_DIO 8

/ * Skapa en instans av RFID -biblioteket */

RFID RC522 (SDA_DIO, RESET_DIO); int läsare = 0;

void setup ()

{Serial.begin (9600); / * Aktivera SPI -gränssnittet */ SPI.begin (); / * Initiera RFID -läsaren */ RC522.init (); }

void loop ()

{ / * Tillfällig slingräknare * / byte i;

/* Har ett kort upptäckts? */

if (RC522.isCard ()) { / * Om så är fallet får du dess serienummer * / RC522.readCardSerial ();

/ * Mata ut serienumret till UART */ för (i = 0; i <= 2; i ++) {Serial.print (RC522.serNum , DEC); //Serial.print(RC522.serNum , HEX); } Serial.print (","); Serial.print (läsare ++); Serial.println (); } fördröjning (1000); }

Steg 3: Konfigurera MySQL

Konfigurera MySQL
Konfigurera MySQL
  1. Installera Wamp -server för MySQL och konfigurera den för att lagra data (
  2. Kör wamp serveropen MySQL -konsol
  3. välj databas
  4. Skapa sedan tabellen för dina data

skapa tabell rfid (ID int (8), token int (1), Namn varchar (20), Belopp int (4));

Se nu den här länken för att lära dig hur du får ditt RFID -taggvärde och använd sedan koden nedan för att infoga data. Glöm inte att ersätta ID -värdet med ditt RFID -taggvärde

infoga i rfid -värden (3756178, 1, 'Penna', 20);

använd token -värde som 1 så att efter att ha läst taggvärdet för första gången ändras det automatiskt till 2, använd inte 0 för token -värde när läsningskort som inte sätts in i DB kommer att tilldela 0 och visa det sedan som Okänt kort..

Steg 4: Konfigurera Processing IDE

Konfigurera Processing IDE
Konfigurera Processing IDE
  1. Ladda ner och installera Processing IDE 2.2.1
  2. Extrahera ovanstående ZIP till MyDocuments/Processing/Libraries
  3. Öppna nu bearbetning IDE och kontrollera att biblioteket är installerat korrekt eller inte som i bilden ovan
  4. Kopiera sedan koden nedan till bearbetningen och ge den din egen namn

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

// skapad 2005-05-10 av fjenett

// uppdaterad fjenett 20080605

MySQL dbconnection;

Sträng s = ""; int Vikt = 700; int Bredd = 1200; långt ID; int token; int Belopp; int Total = 0;

Sträng a = {"NULL", "NULL"};

int slut = 10; // siffran 10 är ASCII för linefeed (slutet av serial.println), senare kommer vi att leta efter detta för att bryta upp enskilda meddelanden String serial; // deklarera en ny sträng som heter 'seriell'. En sträng är en sekvens av tecken (datatyp kallad "char") Seriell port; String curr, prev, Namn; PFont f;

void setup ()

{// storlek (bredd, vikt); storlek (700, 500); f = createFont ("Arial", 24, true); // detta exempel förutsätter att du kör // mysql -servern lokalt (på "localhost"). // // ersätt-användarnamn--,-lösenord-- med ditt mysql-konto. // String user = "root"; Strängpass = ""; // namn på databasen som ska användas // Stringdatabas = "IOT_Database"; // namn på tabellen som kommer att skapas Stringtabell = ""; // ansluta till databasen för servern "localhost" dbconnection = ny MySQL (detta, "localhost", databas, användare, pass); port = new Serial (this, Serial.list () [0], 9600); // initiera objektet genom att tilldela en port och överföringshastighet (måste matcha Arduino) port.clear (); // funktion från seriellt bibliotek som slänger ut den första läsningen, ifall vi började läsa i mitten av en sträng från Arduino serial = port.readStringUntil (end); // funktion som läser strängen från seriell port tills en println och sedan tilldelar sträng till vår strängvariabel (kallad 'seriell') serial = null; } void draw () {bakgrund (255); textFont (f, 24); fyllning (0); text ("Totalbelopp R:", 400, 400); text (totalt, 585, 400); data(); medan (port.available ()> 0) {// så länge det kommer data från seriell port, läs den och lagra den serial = port.readStringUntil (end); } if (seriell! = null) {prev = curr; curr = a [1]; a = split (seriell, ','); // en ny array (kallad 'a') som lagrar värden i separata celler (åtskilda med kommatecken som anges i ditt Arduino -program) om ((curr).equals (prev)) {//} else {// println ("curr ", curr); // println ("Föregående", föregående); fungera(); }}}

void -funktion ()

{if (dbconnection.connect ()) {// läs den nu igen // dbconnection.query ("SELECT * från rfid där ID ="+a [0]+""); medan (dbconnection.next ()) {ID = dbconnection.getInt ("ID"); token = dbconnection.getInt ("token"); Belopp = dbconnection.getInt ("Belopp"); } if (token == 0) {println ("Ok"); textFont (f, 54); fyllning (255, 0, 0, 160); text ("Okänt objekt upptäckt", 50, 300); fördröjning (2000); } annars if (token == 1) {Totalt = Totalt+Belopp; dbconnection.query ("uppdatera rfid set token = 2 där ID ="+a [0]+""); println ("Ok"); textFont (f, 24); fyllning (255, 0, 0, 160); // text ("Artikel tillagd", 10, 30); fördröjning (1000); } annars if (token == 2) {Total = Total-Amount; dbconnection.query ("uppdatera rfid set token = 1 där ID ="+a [0]+""); println ("Ok"); textFont (f, 24); fyllning (255, 0, 0, 160); // text ("Artikel borttagen", 10, 30); fördröjning (1000); } annat {} dbconnection.close (); } annat {// anslutning misslyckades! }}

ogiltiga data ()

{int position = 100; if (dbconnection.connect ()) {dbconnection.query ("SELECT * från rfid där token = 2"); while (dbconnection.next ()) {Namn = dbconnection.getString ("Namn"); Belopp = dbconnection.getInt ("Belopp"); textFont (f, 24); fyllning (0, 0, 255, 160); text (Namn, 10, position); fyllning (0, 0, 0, 160); text (Belopp, 215, position); position = position+30; }} dbconnection.close (); }

Steg 5: Kör programmet

Utför programmet
Utför programmet
Utför programmet
Utför programmet
Utför programmet
Utför programmet
Utför programmet
Utför programmet

Kör programmet genom att klicka på kör -knappen, stäng inte popup -fönstret, stängningen avbryter körningen och frågan nedan för att visa lagrad data i MySQL …

Steg 6: Slutsats

Jag vill tacka dig för att du läste min handledning. Jag skulle uppskatta om du tyckte att det var användbart och släpp en gilla (favorit) eller fråga mig något eftersom det håller mig motiverad att göra dessa instruktioner. ställ gärna frågor som du behöver veta …

Glad kodning Arduino …

Rekommenderad: