Inhaltsverzeichnis:

Einfache Supermarkt-App mit RFID RC-522 und Arduino Mega - Gunook
Einfache Supermarkt-App mit RFID RC-522 und Arduino Mega - Gunook

Video: Einfache Supermarkt-App mit RFID RC-522 und Arduino Mega - Gunook

Video: Einfache Supermarkt-App mit RFID RC-522 und Arduino Mega - Gunook
Video: RFID am Arduino auslesen mit MFRC-522 Card Reader 2024, Juli
Anonim
Einfache Supermarkt-App mit RFID RC-522 und Arduino Mega
Einfache Supermarkt-App mit RFID RC-522 und Arduino Mega

Es ist gut, Sie hier in meinem anderen Tutorial wiederzusehen. Hier werde ich Ihnen helfen, eine einfache Supermarktanwendung mit RFID RC-522 und Arduino mit Verarbeitung zu erstellen, um eine einfache GUI zu erstellen.

Hinweis: Führen Sie den seriellen Arduino-Monitor nicht aus, während Sie Verarbeitungscode ausführen, da ein Portkonflikt auftritt, da beide denselben Port verwenden müssen

Du brauchst:

  1. Arduino Mega oder Arduino Uno (ich habe Mega verwendet)
  2. RFID-RC522
  3. 7 männliche zu weibliche Überbrückungsdrähte
  4. Einige Ausweise (optional)
  5. RFID-Bibliothek (Muss, Link unten)
  6. Wamp-Server
  7. Verarbeitung von IDE 2.2.1 (verwenden Sie nicht mehr als das)
  8. BezierSQLib-0.2.0-Bibliothek zur Verarbeitung (Download-Link unten)

Laden Sie dann die unten stehende RFID-Bibliothek herunter und fügen Sie sie Ihrer Arduino-IDE hinzu, indem Sie auf Sketch-> Include Library-> Add. Zip Library im Dateimenü klicken

Schritt 1: Einrichten von Arduino und RFID RC-522 (physikalische Verbindung)

Einrichten von Arduino und RFID RC-522 (Physische Verbindung)
Einrichten von Arduino und RFID RC-522 (Physische Verbindung)

Verbinden Sie das Arduino einfach mit RFID-RC522 wie im obigen Bild gezeigt. Achtung: nur 3,3 V liefern, sonst brennt das Modul durch

Pin Out für Uno/Nano und 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

Schritt 2: Arduino-Code.,

Kopieren Sie den folgenden Code und laden Sie ihn dann auf Ihren Arduino hoch

/*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 */ /* Beinhaltet die Standard Arduino SPI Bibliothek */ #include /* Füge die RFID-Bibliothek ein */ #include

/* Definiere das DIO, das für die SDA (SS) und RST (Reset) Pins verwendet wird. */

#define SDA_DIO 9 #define RESET_DIO 8

/* Erstellen Sie eine Instanz der RFID-Bibliothek */

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

Void-Setup ()

{ Serial.begin (9600); /* SPI-Schnittstelle aktivieren */ SPI.begin(); /* RFID-Leser initialisieren */ RC522.init(); }

Leere Schleife ()

{ /* Temporärer Schleifenzähler */ Byte i;

/* Wurde eine Karte erkannt? */

if (RC522.isCard()) { /* Wenn ja, dann erhalte die Seriennummer */ RC522.readCardSerial();

/* Seriennummer an den UART ausgeben */ for(i = 0; i <= 2; i++) { Serial.print(RC522.serNum, DEC); //Serial.print (RC522.serNum, HEX); } Serial.print (, "); Serial.print (Leser ++); Serial.println(); } Verzögerung (1000); }

Schritt 3: MySQL einrichten

MySQL einrichten
MySQL einrichten
  1. Installieren Sie den Wamp-Server für MySQL und konfigurieren Sie ihn zum Speichern von Daten (
  2. Führen Sie den Wamp-Server aus, öffnen Sie die MySQL-Konsole
  3. Datenbank auswählen
  4. Dann erstellen Sie die Tabelle für Ihre Daten

Tabelle erstellen rfid(ID int(8), Token int(1), Name varchar(20), Betrag int(4));

Sehen Sie sich nun diesen Link an, um zu erfahren, wie Sie Ihren RFID-Tag-Wert erhalten, und verwenden Sie dann den folgenden Code, um Daten einzufügen. Vergessen Sie nicht, den ID-Wert durch Ihren RFID-Tag-Wert zu ersetzen

in rfid-Werte einfügen (3756178, 1, 'Bleistift', 20);

Verwenden Sie den Token-Wert als 1, damit sich der Tag-Wert nach dem ersten Lesen automatisch auf 2 ändert. Verwenden Sie keine 0 für den Token-Wert, wenn Sie eine Karte lesen, die nicht in die DB eingesteckt ist, weist sie 0 zu und zeigt sie als Unbekannte Karte an..

Schritt 4: Einrichten der Verarbeitungs-IDE

Verarbeitungs-IDE einrichten
Verarbeitungs-IDE einrichten
  1. Laden Sie die Verarbeitungs-IDE 2.2.1 herunter und installieren Sie sie
  2. Extrahieren Sie die oben angegebene ZIP nach MyDocuments/Processing/Libraries
  3. Öffnen Sie nun die Verarbeitungs-IDE und überprüfen Sie, ob die Bibliothek richtig installiert ist oder nicht wie im obigen Bild
  4. Dann kopiere den untenstehenden Code in die Verarbeitung und benenne ihn selbst

de.bezier.data.sql.* importieren;Verarbeitung.serial importieren.*; //java.math. BigInteger importieren;

// erstellt 2005-05-10 von fjenett

// aktualisierte fjenett 20080605

MySQL-Datenbankverbindung;

Zeichenfolge s=" "; int-Gewicht = 700; int Wwidth=1200; lange ID; int-Token; int Betrag; int Gesamt=0;

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

int end = 10; // die Zahl 10 ist ASCII für Zeilenvorschub (Ende von serial.println), später werden wir danach suchen, um einzelne Nachrichten aufzubrechen String serial; // einen neuen String namens 'serial' deklarieren. Ein String ist eine Folge von Zeichen (Datentyp bekannt als "char") Serieller Port; String curr, prev, Name; PFont f;

Void-Setup ()

{ // Größe (Bbreite, Gewicht); Größe (700, 500); f=createFont("Arial", 24, true); // In diesem Beispiel wird davon ausgegangen, dass Sie den // mysql-Server lokal ausführen (auf "localhost"). // // ersetze --username--, --password-- durch deinen mysql-account. // String user = "root"; String pass = ""; // Name der zu verwendenden Datenbank // String database = "IOT_Database"; // Name der zu erstellenden Tabelle String table = ""; // Verbindung zur Datenbank des Servers "localhost" dbconnection = new MySQL(this, "localhost", database, user, pass); port = new Serial (dies, Serial.list () [0], 9600); // Initialisieren des Objekts durch Zuweisen eines Ports und einer Baudrate (muss mit der von Arduino übereinstimmen) port.clear(); // Funktion aus der seriellen Bibliothek, die die erste Lesung auswirft, falls wir mitten in einer Zeichenfolge von Arduino begonnen haben serial = port.readStringUntil (end); // Funktion, die den String vom seriellen Port bis zu einem println liest und dann String unserer String-Variablen (genannt 'serial') zuweist serial = null; aufrechtzuerhalten. Void Draw () { Hintergrund (255); textFont(f, 24); füllen(0); text("Gesamtbetrag Rs:", 400, 400); Text(Gesamt, 585, 400); Daten(); while (port.available () > 0) {//Solange Daten von der seriellen Schnittstelle kommen, lesen und speichern Sie sie serial = port.readStringUntil (end); } if (seriell != null) { prev=curr; curr=a[1]; a = split(seriell, ', '); // ein neues Array (genannt 'a'), das Werte in separaten Zellen speichert (getrennt durch Kommas, die in Ihrem Arduino-Programm angegeben sind) if((curr).equals(prev)) { // } else { //println("curr ", curr); //println("Vorher", Vorher); Funktion(); } } }

Leere Funktion ()

{ if (dbconnection.connect()) { // jetzt wieder auslesen // dbconnection.query("SELECT * from rfid where ID="+a[0]+""); while (dbconnection.next()) { ID = dbconnection.getInt("ID"); Token = dbconnection.getInt("Token"); Betrag = dbconnection.getInt("Betrag"); } if(token==0) { println("Ok"); textFont(f, 54); füllen (255, 0, 0, 160); text("Unbekanntes Element erkannt", 50, 300); Verzögerung (2000); aufrechtzuerhalten. Sonst if (token = = 1) { Gesamt = Gesamt + Betrag; dbconnection.query("update rfid set token=2 where ID="+a[0]+""); println("OK"); textFont(f, 24); füllen (255, 0, 0, 160); //text("Element hinzugefügt", 10, 30); Verzögerung (1000); } else if(token==2) { Total=Total-Amount; dbconnection.query("update rfid set token=1 where ID="+a[0]+""); println("OK"); textFont(f, 24); füllen (255, 0, 0, 160); //text("Gegenstand entfernt", 10, 30); Verzögerung (1000); } else {} dbconnection.close(); } else { // Verbindung fehlgeschlagen! } }

Leere Daten()

{ int-Position = 100; if (dbconnection.connect()) { dbconnection.query("SELECT * from rfid where token=2"); while (dbconnection.next()) { Name = dbconnection.getString("Name"); Betrag = dbconnection.getInt("Betrag"); textFont(f, 24); füllen (0, 0, 255, 160); text(Name, 10, Position); füllen (0, 0, 0, 160); text(Betrag, 215, Position); Position=Position+30; } } dbconnection.close(); }

Schritt 5: Ausführen des Programms

Ausführen des Programms
Ausführen des Programms
Ausführen des Programms
Ausführen des Programms
Ausführen des Programms
Ausführen des Programms
Ausführen des Programms
Ausführen des Programms

Führen Sie das Programm aus, indem Sie auf die Schaltfläche Ausführen klicken. Schließen Sie das Popup-Fenster nicht.

Schritt 6: Fazit

Ich möchte Ihnen danken, dass Sie mein Tutorial gelesen haben. Ich würde mich freuen, wenn Sie es nützlich finden und ein Like (Favorit) fallen lassen oder mich etwas fragen, da es mich motiviert, diese instructables zu tun. Fühlen Sie sich frei, alle Fragen zu stellen, die Sie wissen müssen…

Fröhliches Programmieren von Arduino…

Empfohlen: