Talaan ng mga Nilalaman:
- Hakbang 1: Pag-set up ng Arduino at RFID RC-522 (Physical Connection)
- Hakbang 2: Arduino Code.,
- Hakbang 3: Pagse-set up ng MySQL
- Hakbang 4: Pag-set up ng Processing IDE
- Hakbang 5: Pagpapatupad ng Program
- Hakbang 6: Konklusyon
Video: Simpleng Supermarket App Gamit ang RFID RC-522 at Arduino Mega: 6 na Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
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:
- Arduino Mega o Arduino Uno (Gumamit ako ng Mega)
- RFID-RC522
- 7 lalaki hanggang babaeng jumper wires
- Ang ilang mga ID card (opsyonal)
- RFID Library (Dapat, Mag-link sa ibaba)
- Wamp server
- Pagproseso ng IDE 2.2.1 (huwag gumamit ng higit sa na)
- 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)
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
- I-install ang Wamp server para sa MySQL at i-configure ito upang mag-imbak ng data (
- Patakbuhin ang wamp serveropen MySQL console
- pumili ng database
- 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
- I-download at I-install ang Processing IDE 2.2.1
- I-extract ang nabanggit na ZIP sa MyDocuments / Processing / Library
- Ngayon buksan ang pagproseso ng IDE at suriin ang aklatan na naka-install nang tama o hindi tulad ng sa imahe sa itaas
- 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
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:
Subukan ang Bare Arduino, Gamit ang Software ng Laro Gamit ang Capacitive Input at LED: 4 na Hakbang
Subukan ang Bare Arduino, Gamit ang Software ng Laro Gamit ang Capacitive Input at LED: " Push-It " Interactive na laro gamit ang isang hubad na Arduino board, walang mga panlabas na bahagi o mga kable na kinakailangan (gumagamit ng isang capacitive 'touch' input). Ipinapakita sa itaas, ipinapakita ang pagtakbo nito sa dalawang magkakaibang board. Push-Mayroon itong dalawang layunin. Upang mabilis na maipakita / v
Paano Gawin ang Iyong Unang Simpleng Software Gamit ang Python: 6 Hakbang
Paano Gawin ang Iyong Unang Simpleng Software Gamit ang Python: Kumusta, maligayang pagdating sa Mga Instructionable na ito. Narito ko sasabihin kung paano gumawa ng iyong sariling software. Oo kung mayroon kang isang ideya … ngunit alam upang ipatupad o interesado sa paglikha ng mga bagong bagay pagkatapos ito ay para sa iyo …… Pangangailangan: Dapat magkaroon ng pangunahing kaalaman sa P
Simpleng Gesture Control - Kontrolin ang Iyong Mga Laruan sa RC Gamit ang Kilusan ng Iyong Braso: 4 na Hakbang (na may Mga Larawan)
Simpleng Pagkontrol ng Kilos - Kontrolin ang Iyong Mga Laruan sa RC Gamit ang Kilusan ng Iyong Braso: Maligayang pagdating sa aking 'ible' # 45. Kamakailan lamang ay gumawa ako ng isang ganap na gumaganang bersyon ng BB8 gamit ang mga bahagi ng Lego Star Wars … ang Force Band na ginawa ni Sphero, naisip ko: " Ok, I c
Internet Clock: Ipakita ang Petsa at Oras Gamit ang isang OLED Gamit ang ESP8266 NodeMCU Sa NTP Protocol: 6 na Hakbang
Internet Clock: Display Date and Time With an OLED Gamit ang ESP8266 NodeMCU With NTP Protocol: Kumusta mga tao sa mga itinuturo na ito na magtatayo kami ng isang orasan sa internet na magkakaroon ng oras mula sa internet kaya't ang proyektong ito ay hindi mangangailangan ng anumang RTC upang tumakbo, kakailanganin lamang nito ang isang nagtatrabaho koneksyon sa internet At para sa proyektong ito kailangan mo ng isang esp8266 na magkakaroon ng
Kontrolin ang Arduino Gamit ang Smartphone Sa pamamagitan ng USB Gamit ang Blynk App: 7 Mga Hakbang (na may Mga Larawan)
Kontrolin ang Arduino Gamit ang Smartphone Sa Pamamagitan ng USB Sa Blynk App: Sa tutorial na ito, matututunan namin kung paano gamitin ang Blynk app at Arduino upang makontrol ang lampara, ang kumbinasyon ay sa pamamagitan ng USB serial port. Ang layunin ng pagtuturo na ito ay upang ipakita ang pinakasimpleng solusyon sa malayo-pagkontrol ng iyong Arduino o c