Talaan ng mga Nilalaman:

Simpleng Supermarket App Gamit ang RFID RC-522 at Arduino Mega: 6 na Hakbang
Simpleng Supermarket App Gamit ang RFID RC-522 at Arduino Mega: 6 na Hakbang

Video: Simpleng Supermarket App Gamit ang RFID RC-522 at Arduino Mega: 6 na Hakbang

Video: Simpleng Supermarket App Gamit ang RFID RC-522 at Arduino Mega: 6 na Hakbang
Video: Buying USED or Second Hand CAR? Know this Important TIPS 2024, Nobyembre
Anonim
Simpleng Supermarket App Gamit ang RFID RC-522 at Arduino Mega
Simpleng Supermarket App Gamit ang RFID RC-522 at Arduino Mega

Masarap na makita kayo ulit dito sa aking isa pang tutorial, narito matutulungan ko kayo upang lumikha ng isang simpleng aplikasyon ng supermarket gamit ang RFID RC-522 at Arduino sa Pagproseso upang lumikha ng simpleng GUI.

Tandaan: huwag patakbuhin ang serial monitor ng Arduino habang tumatakbo ang code sa pagproseso dahil magaganap ang salungatan sa port dahil pareho ang dapat gumamit ng parehong port

Kailangan mo:

  1. Arduino Mega o Arduino Uno (Gumamit ako ng Mega)
  2. RFID-RC522
  3. 7 lalaki hanggang babaeng jumper wires
  4. Ang ilang mga ID card (opsyonal)
  5. RFID Library (Dapat, Mag-link sa ibaba)
  6. Wamp server
  7. Pagproseso ng IDE 2.2.1 (huwag gumamit ng higit sa na)
  8. BezierSQLib-0.2.0 library para sa pagproseso (I-download ang link sa ibaba)

Pagkatapos I-download ang library sa ibaba RFID at Idagdag ito sa iyong Arduino IDE sa pamamagitan ng pag-click sa Sketch-> Isama ang Library-> Idagdag. Zip Library sa menu ng file

Hakbang 1: Pag-set up ng Arduino at RFID RC-522 (Physical Connection)

Pag-set up ng Arduino at RFID RC-522 (Physical Connection)
Pag-set up ng Arduino at RFID RC-522 (Physical Connection)

ikonekta lamang ang arduino sa RFID-RC522 tulad ng ipinakita sa imahe sa itaas. Babala: magbigay lamang ng 3.3V kung hindi man ay masusunog ang module

I-pin Out para sa Uno / Nano at 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

Hakbang 2: Arduino Code.,

Kopyahin ang Below code pagkatapos ay i-upload ito sa iyong 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 * / / * Isama ang karaniwang Arduino SPI library * / # isama / * Isama ang RFID library * / # isama

/ * Tukuyin ang DIO na ginamit para sa mga SDA (SS) at RST (reset) na mga pin. * /

# tukuyin ang SDA_DIO 9 # tukuyin ang RESET_DIO 8

/ * Lumikha ng isang halimbawa ng RFID library * /

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

walang bisa ang pag-setup ()

{Serial.begin (9600); / * Paganahin ang interface ng SPI * / SPI.begin (); / * Inisyal ang RFID reader * / RC522.init (); }

walang bisa loop ()

{/ * Pansamantalang loop counter * / byte i;

/ * May nakita bang kard? * /

kung (RC522.isCard ()) {/ * Kung gayon kumuha ng serial number nito * / RC522.readCardSerial ();

/ * I-output ang serial number sa UART * / para sa (i = 0; i <= 2; i ++) {Serial.print (RC522.serNum , DEC); //Serial.print(RC522.serNum, HEX); } Serial.print (","); Serial.print (mambabasa ++); Serial.println (); } pagkaantala (1000); }

Hakbang 3: Pagse-set up ng MySQL

Pagse-set up ng MySQL
Pagse-set up ng MySQL
  1. I-install ang Wamp server para sa MySQL at i-configure ito upang mag-imbak ng data (
  2. Patakbuhin ang wamp serveropen MySQL console
  3. pumili ng database
  4. Pagkatapos ay likhain ang talahanayan para sa iyong data

lumikha ng talahanayan rfid (ID int (8), token int (1), Pangalan varchar (20), Halaga int (4));

Ngayon tingnan ang link na ito upang malaman kung paano makuha ang iyong halaga ng tag ng RFID pagkatapos ay gamitin ang code sa ibaba upang magsingit ng data. Huwag kalimutang palitan ang halaga ng ID sa iyong halaga ng RFID tag

ipasok sa mga halagang rfid (3756178, 1, 'Pencil', 20);

gumamit ng token halaga bilang 1 upang pagkatapos mabasa ang halaga ng tag sa unang pagkakataon awtomatiko itong babaguhin sa 2, huwag gumamit ng 0 para sa halaga ng token kapag ang card ng pagbabasa na hindi naipasok sa DB ay magtatalaga ng 0 pagkatapos ay ipakita ito bilang Hindi Kilalang Card..

Hakbang 4: Pag-set up ng Processing IDE

Pag-set up ng Processing IDE
Pag-set up ng Processing IDE
  1. I-download at I-install ang Processing IDE 2.2.1
  2. I-extract ang nabanggit na ZIP sa MyDocuments / Processing / Library
  3. Ngayon buksan ang pagproseso ng IDE at suriin ang aklatan na naka-install nang tama o hindi tulad ng sa imahe sa itaas
  4. Pagkatapos Kopyahin ang code sa ibaba sa pagproseso at pangalanan ito ng iyong sarili

import de.bezier.data.sql. *; iproseso ang pag-import.serial. *; // import java.math. BigInteger;

// nilikha 2005-05-10 ni fjenett

// updated fjenett 20080605

MySQL dbconnection;

String s = ""; int Wheight = 700; int Wwidth = 1200; mahabang ID; int token; int Halaga; int Kabuuan = 0;

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

int pagtatapos = 10; // ang bilang 10 ay ASCII para sa linefeed (pagtatapos ng serial.println), sa paglaon ay hanapin namin ito upang masira ang mga indibidwal na mensahe String serial; // ideklara ang isang bagong string na tinatawag na 'serial'. Ang isang string ay isang pagkakasunud-sunod ng mga character (ang uri ng data ay kilala bilang "char") Serial port; String curr, prev, Pangalan; PFont f;

walang bisa ang pag-setup ()

{// laki (Wwidth, Wheight); laki (700, 500); f = createFont ("Arial", 24, totoo); // ang halimbawang ito ay ipinapalagay na pinapatakbo mo ang // MySQL server nang lokal (sa "localhost"). // // palitan ang --username--, --password-- ng iyong MySQL account. // String user = "root"; String pass = ""; // name of the database to use // String database = "IOT_Database"; // pangalan ng talahanayan na lilikha ng String table = ""; // connect to database of server "localhost" dbconnection = bagong MySQL (ito, "localhost", database, user, pass); port = bagong Serial (ito, Serial.list () [0], 9600); // pagsisimula ng bagay sa pamamagitan ng pagtatalaga ng isang port at baud rate (dapat na tumugma sa Arduino) port.clear (); // function mula sa serial library na nagtatapon ng unang pagbasa, kung sakaling nagsimula kaming magbasa sa gitna ng isang string mula sa Arduino serial = port.readStringUntil (end); // function na binabasa ang string mula sa serial port hanggang sa isang println at pagkatapos ay nagtatalaga ng string sa aming variable ng string (tinatawag na 'serial') serial = null; } walang bisa na pagguhit () {background (255); textFont (f, 24); punan (0); teksto ("Kabuuang Halaga Rs:", 400, 400); teksto (Kabuuan, 585, 400); data (); habang (port.available ()> 0) {// hangga't may data na nagmumula sa serial port, basahin ito at iimbak ito serial = port.readStringUntil (end); } kung (serial! = null) {prev = curr; kurso = a [1]; a = split (serial, ','); // isang bagong array (tinatawag na 'a') na nag-iimbak ng mga halaga sa magkakahiwalay na mga cell (pinaghiwalay ng mga kuwit na tinukoy sa iyong programa ng Arduino) kung ((curr).equals (prev)) {//} iba pa {// println ("curr ", kurso); // println ("Nakaraan", prev); pagpapaandar (); }}}

walang bisa na pagpapaandar ()

{if (dbconnection.connect ()) {// now read it back out // dbconnection.query ("SELECT * from rfid where ID =" + a [0] + ""); habang (dbconnection.next ()) {ID = dbconnection.getInt ("ID"); token = dbconnection.getInt ("token"); Halaga = dbconnection.getInt ("Halaga"); } kung (token == 0) {println ("Ok"); textFont (f, 54); punan (255, 0, 0, 160); teksto ("Hindi kilalang Item na Natukoy", 50, 300); pagkaantala (2000); } iba pa kung (token == 1) {Kabuuan = Kabuuan + Halaga; dbconnection.query ("i-update ang rfid set token = 2 kung saan ang ID =" + a [0] + ""); println ("Ok"); textFont (f, 24); punan (255, 0, 0, 160); // text ("Naidagdag ang Item", 10, 30); pagkaantala (1000); } iba pa kung (token == 2) {Kabuuan = Kabuuang-Halaga; dbconnection.query ("i-update ang rfid set token = 1 kung saan ang ID =" + a [0] + ""); println ("Ok"); textFont (f, 24); punan (255, 0, 0, 160); // text ("Inalis ang Item", 10, 30); pagkaantala (1000); } iba pa {} dbconnection.close (); } iba pa {// nabigo ang koneksyon! }}

walang bisa ang data ()

{int posisyon = 100; kung (dbconnection.connect ()) {dbconnection.query ("SELECT * mula sa rfid kung saan token = 2"); habang (dbconnection.next ()) {Pangalan = dbconnection.getString ("Pangalan"); Halaga = dbconnection.getInt ("Halaga"); textFont (f, 24); punan (0, 0, 255, 160); teksto (Pangalan, 10, posisyon); punan (0, 0, 0, 160); teksto (Halaga, 215, posisyon); posisyon = posisyon + 30; }} dbconnection.close (); }

Hakbang 5: Pagpapatupad ng Program

Pagpapatupad ng Program
Pagpapatupad ng Program
Pagpapatupad ng Program
Pagpapatupad ng Program
Pagpapatupad ng Program
Pagpapatupad ng Program
Pagpapatupad ng Program
Pagpapatupad ng Program

Patakbuhin ang programa sa pamamagitan ng pag-click sa run button huwag isara ang popup window na pagsasara ay titigil sa pagpapatupad at sa ibaba ng query upang matingnan ang nakaimbak na data sa MySQL…

Hakbang 6: Konklusyon

Nais kong magpasalamat sa iyo sa pagbabasa ng aking tutorial. Masisiyahan ako kung nalaman mong kapaki-pakinabang ito at nag-drop ng tulad (paborito) o tanungin ako ng anuman dahil pinapanatili akong maganyak na gawin ang mga itinuturo na ito. huwag mag-atubiling magtanong ng anumang mga katanungan na kailangan mong malaman…

Maligayang Coding Arduino…

Inirerekumendang: