Innehållsförteckning:
- Steg 1: Konfigurera Arduino och RFID RC-522 (fysisk anslutning)
- Steg 2: Arduino -kod.,
- Steg 3: Konfigurera MySQL
- Steg 4: Konfigurera Processing IDE
- Steg 5: Kör programmet
- Steg 6: Slutsats
Video: Enkel app för stormarknader med RFID RC-522 och Arduino Mega: 6 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
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:
- Arduino Mega eller Arduino Uno (jag använde Mega)
- RFID-RC522
- 7 bygel till hane
- Vissa ID -kort (tillval)
- RFID -bibliotek (måste, länk nedan)
- Wamp -server
- Bearbetar IDE 2.2.1 (använd inte större än så)
- 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)
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
- Installera Wamp -server för MySQL och konfigurera den för att lagra data (
- Kör wamp serveropen MySQL -konsol
- välj databas
- 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
- Ladda ner och installera Processing IDE 2.2.1
- Extrahera ovanstående ZIP till MyDocuments/Processing/Libraries
- Öppna nu bearbetning IDE och kontrollera att biblioteket är installerat korrekt eller inte som i bilden ovan
- 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
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:
Väggfäste för iPad som kontrollpanel för hemautomation, med servostyrd magnet för att aktivera skärmen: 4 steg (med bilder)
Väggfäste för iPad Som kontrollpanel för hemautomation, med servostyrd magnet för att aktivera skärmen: På senare tid har jag ägnat ganska mycket tid åt att automatisera saker i och runt mitt hus. Jag använder Domoticz som min hemautomationsapplikation, se www.domoticz.com för mer information. I min sökning efter en instrumentpanelapplikation som visar all Domoticz -information tillsammans
Arduino 4-hjulsdriven Bluetooth RC-bil med UNO R3, HC-05 och L293D Motorshield med kodning och Android-app: 8 steg
Arduino 4 Wheel Drive Bluetooth RC Car Using UNO R3, HC-05 and L293D Motorshield With Coding and Android App: Idag ska jag berätta om hur man gör en arduino 4 wheel drive bluetooth RC car using HC 05, L293 motor shield, 4 likströmsmotor, med kodning och app för android för att styra bil.Komponent som används: -1-Arduino UNO R32-Bluetooth HC-053-Motorshield L293
8 Reläkontroll med NodeMCU och IR -mottagare med WiFi och IR -fjärrkontroll och Android -app: 5 steg (med bilder)
8 Reläkontroll med NodeMCU och IR -mottagare med WiFi och IR -fjärrkontroll och Android -app: Styrning av 8 reläväxlar med nodemcu och IR -mottagare via wifi och IR -fjärrkontroll och Android -app. Fjärrkontrollen fungerar oberoende av wifi -anslutning. HÄR ÄR EN UPPDATERAD VERSIONKLICK HÄR
Motorhanteringssystem för lyftapplikation med Arduino Mega 2560 och IoT: 8 steg (med bilder)
Motorhanteringssystem för lyftapplikationer med Arduino Mega 2560 och IoT: I dag används IoT -baserade mikrokontroller i stor utsträckning i industriell applikation. Ekonomiskt används de istället för en dator. Syftet med projektet är att fullt digitalisera kontroll, datalogger och övervaka 3 -fas induktionsmotorn med
Temperatur och fuktighet Display och datainsamling med Arduino och bearbetning: 13 steg (med bilder)
Temperatur- och luftfuktighetsvisning och datainsamling med Arduino och bearbetning: Intro: Detta är ett projekt som använder ett Arduino -kort, en sensor (DHT11), en Windows -dator och ett bearbetningsprogram (ett gratis nedladdningsbart) för att visa temperatur, luftfuktighetsdata i digital och stapeldiagramform, visa tid och datum och kör en räkningstid