Obsah:

Jednoduchá aplikace pro supermarket využívající RFID RC-522 a Arduino Mega: 6 kroků
Jednoduchá aplikace pro supermarket využívající RFID RC-522 a Arduino Mega: 6 kroků

Video: Jednoduchá aplikace pro supermarket využívající RFID RC-522 a Arduino Mega: 6 kroků

Video: Jednoduchá aplikace pro supermarket využívající RFID RC-522 a Arduino Mega: 6 kroků
Video: Petr Koubský: Počítače nezměnily ekonomiku, ale společnost 2024, Červenec
Anonim
Jednoduchá aplikace pro supermarkety využívající RFID RC-522 a Arduino Mega
Jednoduchá aplikace pro supermarkety využívající RFID RC-522 a Arduino Mega

Rád vás znovu uvidím, kluci, v mém dalším tutoriálu, zde vám pomůžu vytvořit jednoduchou aplikaci pro supermarkety pomocí RFID RC-522 a Arduino se zpracováním pro vytvoření jednoduchého GUI.

Poznámka: Nespouštějte sériový monitor Arduino během zpracování kódu, protože dojde ke konfliktu portů, protože oba musí používat stejný port

Potřebuješ:

  1. Arduino Mega nebo Arduino Uno (použil jsem Mega)
  2. RFID-RC522
  3. 7 propojovacích kabelů mezi mužem a ženou
  4. Některé průkazy totožnosti (volitelně)
  5. Knihovna RFID (nutné, odkaz níže)
  6. Wamp server
  7. Zpracování IDE 2.2.1 (nepoužívejte větší než to)
  8. Knihovna BezierSQLib-0.2.0 ke zpracování (odkaz ke stažení níže)

Poté si stáhněte níže uvedenou knihovnu RFID a přidejte ji do svého Arduino IDE kliknutím na Sketch-> Include Library-> Add. Zip Library in file menu

Krok 1: Nastavení Arduina a RFID RC-522 (fyzické připojení)

Nastavení Arduina a RFID RC-522 (fyzické připojení)
Nastavení Arduina a RFID RC-522 (fyzické připojení)

jednoduše připojte arduino k RFID-RC522, jak je znázorněno na výše uvedeném obrázku. Varování: napájení pouze 3,3 V, jinak se modul spálí

Pin Out pro Uno/Nano a Mega

MODUL RC522 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,3 V 3,3 V 3,3 V

Krok 2: Arduino kód.,

Zkopírujte níže uvedený kód a poté jej nahrajte do svého Arduina

/*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*//*Zahrnuje standardní Arduino knihovnu SPI */ #include/ *Zahrnout knihovnu RFID */ #include

/* Definujte DIO používané pro piny SDA (SS) a RST (reset). */

#define SDA_DIO 9 #define RESET_DIO 8

/ * Vytvořte instanci knihovny RFID */

RFID RC522 (SDA_DIO, RESET_DIO); int reader = 0;

neplatné nastavení ()

{Serial.begin (9600); / * Povolit rozhraní SPI */ SPI.begin (); / * Inicializujte čtečku RFID */ RC522.init (); }

prázdná smyčka ()

{ / * Dočasný čítač smyčky * / byte i;

/* Byla detekována karta? */

if (RC522.isCard ()) { / * Pokud ano, získejte jeho sériové číslo * / RC522.readCardSerial ();

/ * Výstup sériového čísla do UART */ pro (i = 0; i <= 2; i ++) {Serial.print (RC522.serNum , DEC); //Serial.print(RC522.serNum, HEX); } Serial.print (","); Serial.print (čtečka ++); Serial.println (); } zpoždění (1000); }

Krok 3: Nastavení MySQL

Nastavení MySQL
Nastavení MySQL
  1. Nainstalujte server Wamp pro MySQL a nakonfigurujte jej pro ukládání dat (
  2. Spusťte konzolu MySQL wamp serveropen
  3. vyberte databázi
  4. Poté vytvořte tabulku pro svá data

vytvořit tabulku rfid (ID int (8), token int (1), název varchar (20), částka int (4));

Nyní se podívejte na tento odkaz, kde se dozvíte, jak získat hodnotu značky RFID, a poté pomocí níže uvedeného kódu vložte data. Nezapomeňte nahradit hodnotu ID hodnotou značky RFID

vložte do hodnot rfid (3756178, 1, 'Pencil', 20);

použijte hodnotu tokenu jako 1, takže po prvním načtení hodnoty tagu se automaticky změní na 2, nepoužívejte 0 pro hodnotu tokenu při čtení karty, která není vložena do DB, přiřadí 0 a poté ji zobrazí jako neznámou kartu..

Krok 4: Nastavení zpracování IDE

Nastavení zpracování IDE
Nastavení zpracování IDE
  1. Stáhněte a nainstalujte Processing IDE 2.2.1
  2. Extrahujte výše uvedené ZIP do MyDocuments/Processing/Libraries
  3. Nyní otevřete zpracování IDE a zkontrolujte, zda je knihovna nainstalována správně nebo ne, jako na výše uvedeném obrázku
  4. Potom zkopírujte níže uvedený kód ke zpracování a pojmenujte ho podle svého

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

// vytvořil 2005-05-10 od fjenett

// aktualizováno fjenett 20080605

MySQL dbconnection;

Řetězec s = ""; int Wheight = 700; int Šířka = 1200; dlouhé ID; int token; int Částka; int Celkem = 0;

Řetězec a = {"NULL", "NULL"};

int konec = 10; // číslo 10 je ASCII pro linefeed (konec serial.println), později to budeme hledat, abychom rozdělili jednotlivé zprávy String serial; // deklarujte nový řetězec s názvem 'serial'. Řetězec je posloupnost znaků (datový typ známý jako „char“) Sériový port; Řetězcový proud, předchozí, Název; PFont f;

neplatné nastavení ()

{// size (Wwidth, Wheight); velikost (700, 500); f = createFont ("Arial", 24, true); // tento příklad předpokládá, že // mysql server provozujete lokálně (na "localhost"). // // nahraďte --username--, --password-- svým účtem mysql. // Uživatel řetězce = "root"; String pass = ""; // název databáze, která se má použít // Řetězec databáze = "IOT_Database"; // název tabulky, která bude vytvořena Řetězec table = ""; // připojení k databázi serveru "localhost" dbconnection = nové MySQL (toto, "localhost", databáze, uživatel, heslo); port = new Serial (this, Serial.list () [0], 9600); // inicializace objektu přiřazením portu a přenosové rychlosti (musí odpovídat rychlosti Arduina) port.clear (); // funkce ze sériové knihovny, která vyhodí první čtení, v případě, že jsme začali číst uprostřed řetězce z Arduino serial = port.readStringUntil (end); // funkce, která čte řetězec ze sériového portu do println a poté přiřadí řetězec naší řetězcové proměnné (nazývané 'sériové') serial = null; } void draw () {pozadí (255); textFont (f, 24); vyplnit (0); text („Celková částka Rs:“, 400, 400); text (Celkem, 585, 400); data(); while (port.available ()> 0) {// pokud jsou data přicházející ze sériového portu, přečtěte si je a uložte serial = port.readStringUntil (end); } if (serial! = null) {předchozí = proud; proud = a [1]; a = rozdělení (sériové, ','); // nové pole (nazývané 'a'), které ukládá hodnoty do samostatných buněk (oddělených čárkami specifikovanými v programu Arduino), pokud ((proud). rovná se (předchozí)) {//} else {// println ("proud ", proud); // println ("Předchozí", předchozí); funkce(); }}}

prázdná funkce ()

{if (dbconnection.connect ()) {// nyní si to přečtěte zpět // dbconnection.query ("SELECT * from rfid where ID ="+a [0]+""); while (dbconnection.next ()) {ID = dbconnection.getInt ("ID"); token = dbconnection.getInt ("token"); Částka = dbconnection.getInt ("Částka"); } if (token == 0) {println ("Ok"); textFont (f, 54); vyplnit (255, 0, 0, 160); text ("Zjištěna neznámá položka", 50, 300); zpoždění (2000); } else if (token == 1) {Celkem = Celkem+Částka; dbconnection.query ("update rfid set token = 2 where ID ="+a [0]+""); println ("Ok"); textFont (f, 24); vyplnit (255, 0, 0, 160); // text ("Položka přidána", 10, 30); zpoždění (1000); } else if (token == 2) {Total = Total-Amount; dbconnection.query ("update rfid set token = 1 where ID ="+a [0]+""); println ("Ok"); textFont (f, 24); vyplnit (255, 0, 0, 160); // text ("Položka odstraněna", 10, 30); zpoždění (1000); } else {} dbconnection.close (); } else {// připojení se nezdařilo! }}

neplatná data ()

{int pozice = 100; if (dbconnection.connect ()) {dbconnection.query ("SELECT * from rfid where token = 2"); while (dbconnection.next ()) {Název = dbconnection.getString ("Název"); Částka = dbconnection.getInt ("Částka"); textFont (f, 24); vyplnit (0, 0, 255, 160); text (jméno, 10, pozice); vyplnit (0, 0, 0, 160); text (Částka, 215, pozice); pozice = pozice+30; }} dbconnection.close (); }

Krok 5: Spuštění programu

Spuštění programu
Spuštění programu
Spuštění programu
Spuštění programu
Spuštění programu
Spuštění programu
Spuštění programu
Spuštění programu

Spusťte program kliknutím na tlačítko Spustit nezavírejte vyskakovací okno zavřením se zastaví provádění a pod dotazem se zobrazí uložená data v MySQL…

Krok 6: Závěr

Chtěl bych vám poděkovat za přečtení mého tutoriálu. Ocenil bych, kdybyste to považovali za užitečné a zanechali lajk (oblíbený) nebo se mě na cokoli zeptali, protože mě to motivovalo k provádění těchto pokynů. neváhejte se zeptat na jakékoli otázky, které potřebujete vědět…

Happy Coding Arduino…

Doporučuje: