Inhoudsopgave:
- Stap 1: Arduino en RFID RC-522 instellen (fysieke verbinding)
- Stap 2: Arduino-code.,
- Stap 3: MySQL instellen
- Stap 4: Verwerkings-IDE instellen
- Stap 5: Het programma uitvoeren
- Stap 6: Conclusie
Video: Eenvoudige supermarkt-app met RFID RC-522 en Arduino Mega - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Het is goed om jullie hier weer te zien in mijn andere tutorial, hier ga ik je helpen om een eenvoudige supermarkt-applicatie te maken met RFID RC-522 en Arduino met Processing om een eenvoudige GUI te maken.
Opmerking: voer geen Arduino seriële monitor uit terwijl de verwerkingscode wordt uitgevoerd, omdat er poortconflicten zullen optreden omdat beide dezelfde poort moeten gebruiken
Jij hebt nodig:
- Arduino Mega of Arduino Uno (ik gebruikte Mega)
- RFID-RC522
- 7 mannelijke naar vrouwelijke jumperdraden
- Sommige ID-kaarten (optioneel)
- RFID-bibliotheek (must, link hieronder)
- Wamp-server
- IDE 2.2.1 verwerken (gebruik niet meer dan dat)
- BezierSQLib-0.2.0-bibliotheek voor verwerking (downloadlink hieronder)
Download vervolgens de onderstaande RFID-bibliotheek en voeg deze toe aan uw Arduino IDE door te klikken op Sketch->Include Library-> Add. Zip Library in file menu
Stap 1: Arduino en RFID RC-522 instellen (fysieke verbinding)
sluit de arduino eenvoudig aan met RFID-RC522 zoals weergegeven in de bovenstaande afbeelding. Waarschuwing: voer slechts 3,3 V aan, anders zal de module doorbranden
Pin Out voor Uno/Nano en 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
Stap 2: Arduino-code.,
Kopieer de onderstaande code en upload deze vervolgens naar uw 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 */ /* Inclusief de standaard Arduino SPI-bibliotheek */ #include /* Voeg de RFID-bibliotheek toe */ #include
/* Definieer de DIO die wordt gebruikt voor de SDA (SS) en RST (reset) pinnen. */
#define SDA_DIO 9 #define RESET_DIO 8
/* Maak een instantie van de RFID-bibliotheek */
RFID RC522 (SDA_DIO, RESET_DIO); int-lezer = 0;
ongeldige setup()
{ Serieel.begin (9600); /* Schakel de SPI-interface in */ SPI.begin(); /* Initialiseer de RFID-lezer */ RC522.init(); }
lege lus()
{ /* Tijdelijke lusteller */ byte i;
/* Is er een kaart gedetecteerd? */
if (RC522.isCard()) { /* Zo ja, vraag dan het serienummer aan */ RC522.readCardSerial();
/* Voer het serienummer uit naar de UART */ for(i = 0; i <= 2; i++) { Serial.print(RC522.serNum, DEC); //Serial.print(RC522.serNum, HEX); } Serieel.print(", "); Serial.print(reader++); Serieel.println(); } vertraging (1000); }
Stap 3: MySQL instellen
- Installeer Wamp-server voor MySQL en configureer deze om gegevens op te slaan (
- Voer wamp-server uit open MySQL-console
- selecteer database
- Maak vervolgens de tabel voor uw gegevens
maak tabel rfid(ID int(8), token int(1), naam varchar(20), bedrag int(4));
Bekijk nu deze link om te leren hoe u uw RFID-tagwaarde kunt krijgen en gebruik vervolgens de onderstaande code om gegevens in te voegen. vergeet niet de ID-waarde te vervangen door uw RFID-tagwaarde
invoegen in rfid-waarden (3756178, 1, 'Potlood', 20);
gebruik tokenwaarde als 1 zodat na het lezen van de tagwaarde voor de eerste keer deze automatisch verandert in 2, gebruik geen 0 voor tokenwaarde bij het lezen van een kaart die niet in DB is geplaatst, deze zal 0 toewijzen en deze vervolgens weergeven als onbekende kaart..
Stap 4: Verwerkings-IDE instellen
- Download en installeer de verwerkings-IDE 2.2.1
- Pak de hierboven gegeven ZIP uit naar MyDocuments/Processing/Bibliotheken
- Open nu de verwerkings-IDE en controleer of de bibliotheek correct is geïnstalleerd of niet zoals in de bovenstaande afbeelding
- Kopieer vervolgens de onderstaande code naar verwerking en noem deze zelf
import de.bezier.data.sql.*;import processing.serial.*; //import java.math. BigInteger;
// gemaakt 2005-05-10 door fjenett
// bijgewerkt fjenett 20080605
MySQL db-verbinding;
Tekenreeks s=" "; int Gewicht = 700; int Breedte=1200; lang identiteitsbewijs; int-token; int Bedrag; int Totaal=0;
String a={"NULL", "NULL"};
int einde = 10; // het nummer 10 is ASCII voor linefeed (einde van serial.println), later zullen we dit zoeken om individuele berichten op te splitsen. String serial; // declareer een nieuwe string met de naam 'serial'. Een string is een reeks karakters (datatype bekend als "char") Seriële poort; Tekenreeks curr, vorige, Naam; PFont f;
ongeldige setup()
{ // maat (breedte, gewicht); maat (700, 500); f=createFont("Arial", 24, true); // dit voorbeeld gaat ervan uit dat u de // mysql-server lokaal uitvoert (op "localhost"). // // vervang --gebruikersnaam--, --wachtwoord-- door uw mysql-account. // String gebruiker = "root"; String pass = ""; // naam van de te gebruiken database // String database = "IOT_Database"; // naam van de tabel die zal worden gemaakt String table = ""; // verbind met de database van de server "localhost" dbconnection = new MySQL (this, "localhost", database, user, pass); poort = nieuw Serieel(this, Serial.list()[0], 9600); // initialiseren van het object door een poort en baudrate toe te wijzen (moet overeenkomen met die van Arduino) port.clear(); // functie van seriële bibliotheek die de eerste meting weggooit, voor het geval we in het midden van een string van Arduino begonnen te lezen serial = port.readStringUntil(end); // functie die de string van de seriële poort tot een println leest en vervolgens een string toewijst aan onze stringvariabele ('serial' genaamd) serial = null; } void draw() { background(255); tekstlettertype(f, 24); vul(0); text("Totaal bedrag Rs:", 400, 400); tekst(Totaal, 585, 400); gegevens(); while (port.available() > 0) { // zolang er gegevens uit de seriële poort komen, lees deze en sla ze op serial = port.readStringUntil(end); } if (serieel != null) { prev=curr; curr=a[1]; a = split (serieel, ', '); // een nieuwe array (genaamd 'a') die waarden opslaat in afzonderlijke cellen (gescheiden door komma's gespecificeerd in uw Arduino-programma) if((curr).equals(prev)) { // } else { //println("curr ", ker); //println("Vorige", vorige); functie(); } } }
ongeldige functie()
{ if (dbconnection.connect()) { // lees het nu terug // dbconnection.query("SELECT * from rfid where ID="+a[0]+""); while (dbconnection.next()) { ID = dbconnection.getInt("ID"); token = dbconnection.getInt("token"); Bedrag = dbconnection.getInt("Bedrag"); } if(token==0) { println("Ok"); tekstlettertype(f, 54); vullen (255, 0, 0, 160); text("Onbekend item gedetecteerd", 50, 300); vertraging (2000); } else if(token==1) { Totaal=Totaal+Bedrag; dbconnection.query("update rfid set token=2 waar ID="+a[0]+""); println("Ok"); tekstlettertype(f, 24); vullen (255, 0, 0, 160); //text ("Item toegevoegd", 10, 30); vertraging (1000); } else if(token==2) { Totaal=Totaalbedrag; dbconnection.query("update rfid set token=1 waar ID="+a[0]+""); println("Ok"); tekstlettertype(f, 24); vullen (255, 0, 0, 160); //text ("Item verwijderd", 10, 30); vertraging (1000); } else { } dbconnection.close(); } else { // verbinding mislukt! } }
ongeldige gegevens()
{ int-positie = 100; if (dbconnection.connect()) { dbconnection.query("SELECT * from rfid waar token=2"); while (dbconnection.next()) { Naam = dbconnection.getString("Naam"); Bedrag = dbconnection.getInt("Bedrag"); tekstlettertype(f, 24); vul (0, 0, 255, 160); tekst (Naam, 10, positie); vul (0, 0, 0, 160); tekst (Bedrag, 215, positie); positie=positie+30; } } dbverbinding.close(); }
Stap 5: Het programma uitvoeren
Voer het programma uit door op de knop Uitvoeren te klikken. Sluit het pop-upvenster niet. Sluiten stopt de uitvoering en ondervraag om opgeslagen gegevens in MySQL te bekijken…
Stap 6: Conclusie
Ik wil je bedanken voor het lezen van mijn tutorial. Ik zou het op prijs stellen als je het nuttig vindt en een like (favoriet) laat vallen of me iets vraagt, omdat het me gemotiveerd houdt om deze instructables te doen. voel je vrij om al je vragen te stellen die je wilt weten…
Gelukkig coderen Arduino…
Aanbevolen:
Eenvoudige RFID-scanner op batterijen (MiFare, MFRC522, Oled, Lipo, TP4056): 5 stappen
Eenvoudige RFID-scanner op batterijen (MiFare, MFRC522, Oled, Lipo, TP4056): In deze instructable laat ik je zien hoe ik een eenvoudige RFID UID-lezer heb gemaakt die de UID van een Mifare RFID-kaart leest. Het programma is vrij eenvoudig en op een breadboard de reader was snel gemaakt. Daarna soldeerde ik het allemaal op een stuk perfboard en ontwierp ik
Hoe maak je een eenvoudige audioversterker binnen Rs. 100 ($ 2) met de naam Handy Speaky: 6 stappen (met afbeeldingen)
Hoe maak je een eenvoudige audioversterker binnen Rs. 100 ($ 2) genaamd Handy Speaky: in het project van vandaag laat ik je zien hoe je de eenvoudigste mini-geluidsversterker maakt op basis van LM386. Deze geluidsversterker is zeer eenvoudig te maken, bovendien is hij zeer compact, werkend met slechts één stroombron met een kleine belasting van 6-12 volt. Deze i
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
Een computer demonteren met eenvoudige stappen en afbeeldingen: 13 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Een computer demonteren met eenvoudige stappen en afbeeldingen: dit is een instructie over het demonteren van een pc. De meeste basiscomponenten zijn modulair en gemakkelijk te verwijderen. Wel is het belangrijk dat je er goed over georganiseerd bent. Dit zal helpen voorkomen dat u onderdelen kwijtraakt, en ook bij het maken van de hermontage e
PCB-ontwerp met eenvoudige en gemakkelijke stappen: 30 stappen (met afbeeldingen)
PCB-ontwerp met eenvoudige en gemakkelijke stappen: HELLO VRIENDEN Het is een zeer nuttige en gemakkelijke tutorial voor diegenen die PCB-ontwerp willen leren, laten we beginnen