Агуулгын хүснэгт:
- Алхам 1: Arduino болон RFID RC-522-ийг тохируулах (Физик холболт)
- Алхам 2: Arduino код.,
- Алхам 3: MySQL -ийг тохируулах
- Алхам 4: Боловсруулах IDE -ийг тохируулах
- Алхам 5: Хөтөлбөрийг гүйцэтгэх
- Алхам 6: Дүгнэлт
Видео: RFID RC-522 ба Arduino Mega: 6 алхамыг ашигладаг энгийн супермаркетын програм
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:03
Залуус та бүхэнтэй миний өөр хичээл дээр дахин уулзах сайхан байна, энд би энгийн GUI үүсгэхийн тулд RFID RC-522 ба Arduino ашиглан энгийн супермаркетын програмыг бий болгоход туслах болно.
Анхаарна уу: кодыг боловсруулах явцад Arduino цуваа мониторыг бүү ажиллуулаарай, учир нь хоёулаа нэг портыг ашиглах шаардлагатай тул порт зөрчилдөх болно
Чамд хэрэгтэй:
- Arduino Mega эсвэл Arduino Uno (би мега ашигласан)
- RFID-RC522
- 7 эрэгтэй, эмэгтэй холбогч утас
- Зарим иргэний үнэмлэх (заавал биш)
- RFID номын сан (заавал байх ёстой, доорх линк)
- Wamp сервер
- IDE 2.2.1 боловсруулж байна (үүнээс ихийг бүү ашиглаарай)
- Боловсруулах BezierSQLib-0.2.0 номын сан (Доорх линкийг татаж авна уу)
Дараа нь RFID доорх номын санг татаж аваад Arketino IDE дээрээ нэмээд Sketch-> Номын сан оруулах
Алхам 1: Arduino болон RFID RC-522-ийг тохируулах (Физик холболт)
Дээрх зурагт үзүүлсэн шиг arduino-г RFID-RC522-тэй холбоход л хангалттай. Анхааруулга: зөвхөн 3.3 В хүчдэл өгөхгүй бол модуль шатах болно.
Uno/Nano, Mega -д зориулан Pin Out хийгээрэй
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
Алхам 2: Arduino код.,
Доорх кодыг хуулж аваад 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*//*Arduino SPI стандарт номын санг оруулна уу. */ #include/ *RFID номын санг оруулах */ #include
/* SDA (SS) ба RST (дахин тохируулах) тээглүүрүүдэд ашигладаг DIO -г тодорхойлно уу. */
#SDA_DIO 9 -ийг тодорхойлох #RESET_DIO 8 -ийг тодорхойлох
/ * RFID номын сангийн жишээ үүсгэх */
RFID RC522 (SDA_DIO, RESET_DIO); int уншигч = 0;
хүчингүй тохиргоо ()
{Serial.begin (9600); / * SPI интерфэйсийг идэвхжүүлэх */ SPI.begin (); / * RFID уншигчийг эхлүүлэх */ RC522.init (); }
хоосон давталт ()
{ / * Түр давталтын тоолуур * / байт i;
/* Карт илэрсэн үү? */
if (RC522.isCard ()) { / * Хэрэв тийм бол серийн дугаараа аваарай * / RC522.readCardSerial ();
/ * Серийн дугаарыг UART -д гаргана */ for (i = 0; i <= 2; i ++) {Serial.print (RC522.serNum , DEC); //Serial.print(RC522.serNum , HEX); } Serial.print (","); Serial.print (уншигч ++); Serial.println (); } саатал (1000); }
Алхам 3: MySQL -ийг тохируулах
- MySQL -д зориулсан Wamp серверийг суулгаад өгөгдлийг хадгалахаар тохируулна уу (
- MySQL консолыг wamp серверт ажиллуулна уу
- мэдээллийн санг сонгох
- Дараа нь өгөгдөлдөө зориулж хүснэгт үүсгэнэ үү
хүснэгт rfid (ID int (8), token int (1), Name varchar (20), Intount int (4)) үүсгэх;
Одоо энэ холбоосыг үзээд RFID хаягийнхаа утгыг хэрхэн олж авах талаар олж мэдээд доорх кодыг ашиглан өгөгдлийг оруулна уу. ID -ийн утгыг RFID шошгоны утгаар орлуулахаа бүү мартаарай.
rfid утгуудыг оруулах (3756178, 1, 'Pencil', 20);
тэмдгийн утгыг 1 болгон ашигла, ингэснээр шошгын утгыг анх удаа уншсаны дараа автоматаар 2 болж өөрчлөгдөх болно, DB -д ороогүй картыг уншихдаа токены утгыг 0 гэж бүү ашигла, тэгээд 0 -ийг оноож өгөөд үл мэдэгдэх карт хэлбэрээр харуул..
Алхам 4: Боловсруулах IDE -ийг тохируулах
- Боловсруулах IDE 2.2.1 -ийг татаж суулгана уу
- Дээрх ZIP -ийг MyDocuments/Processing/Libraries руу задална уу
- Одоо IDE боловсруулалтыг нээгээд номын сан дээрх зураг дээрх шиг зөв суулгасан эсэхийг шалгаарай
- Дараа нь боловсруулахын тулд доорх кодыг хуулж, өөрийн нэрээр нэрлэнэ үү
импорт de.bezier.data.sql.*; импорт боловсруулах.сериал.*; // java.math. BigInteger импортлох;
// 2005-05-10 онд fjenett бүтээсэн
// шинэчлэгдсэн fjenett 20080605
MySQL dbconnection;
Мөр s = ""; int Wheight = 700; int Өргөн = 1200; урт ID; int токен; int Хэмжээ; int Нийт = 0;
String a = {"NULL", "NULL"};
int end = 10; // 10 -р тоо нь linefeed -ийн ASCII (serial.println -ийн төгсгөл), дараа нь бид бие даасан зурвасуудыг задлахын тулд үүнийг хайх болно String serial; // 'цуваа' нэртэй шинэ мөрийг зарлах. Мөр бол тэмдэгтүүдийн дараалал (өгөгдлийн төрлийг "char" гэж нэрлэдэг) Цуваа порт; String Curr, prev, Name; PFont f;
хүчингүй тохиргоо ()
{// хэмжээ (Өргөн, Wheight); хэмжээ (700, 500); f = createFont ("Arial", 24, үнэн); // энэ жишээ нь та // mysql серверийг локал ("localhost" дээр) ажиллуулж байгаа гэж үзэж байна. // //-хэрэглэгчийн нэр-,-нууц үгийг-- өөрийн mysql дансаар солино уу. // String хэрэглэгч = "root"; String pass = ""; // ашиглах мэдээллийн сангийн нэр // String database = "IOT_Database"; // үүсгэх хүснэгтийн нэр String table = ""; // "localhost" серверийн мэдээллийн санд холбогдох dbconnection = шинэ MySQL (энэ, "localhost", мэдээллийн сан, хэрэглэгч, нэвтрэх); порт = шинэ Цуваа (энэ, Serial.list () [0], 9600); // порт болон дамжуулах хурд (Arduino -ийнхтой тохирч байх ёстой) өгснөөр объектыг эхлүүлэх port.clear (); // цуврал номын сангийн функц, хэрэв бид Arduino serial = port.readStringUntil (төгсгөлд) мөрийн дундуур уншиж эхэлсэн бол эхний уншилтыг хасдаг. // мөрийг цуваа портоос println хүртэл уншиж, дараа нь манай string хувьсагч руу мөрийг оноож өгдөг ('цуваа' гэж нэрлэдэг) serial = null; } void draw () {background (255); textFont (f, 24); бөглөх (0); текст ("Нийт дүн Rs:", 400, 400); текст (Нийт, 585, 400); өгөгдөл (); while (port.available ()> 0) {// цуваа портоос өгөгдөл ирсэн л бол түүнийг уншаад serial = port.readStringUntil (төгсгөлд) хадгална уу; } if (serial! = null) {prev = Curr; гүйдэл = a [1]; a = хуваах (цуваа, ','); // утгыг тусдаа нүдэнд хадгалдаг ('a' гэж нэрлэдэг) шинэ массив (таны Arduino програмд заасан таслалаар тусгаарлагдсан) if ((Curr). тэнцүү (өмнөх)) {//} өөр {// println ("Curr ", үхэр); // println ("Өмнөх", өмнөх); функц (); }}}
хоосон функц ()
{if (dbconnection.connect ()) {// одоо дахин уншина уу // dbconnection.query ("SEFE * rfid -ээс ID ="+a [0]+""); while (dbconnection.next ()) {ID = dbconnection.getInt ("ID"); жетон = dbconnection.getInt ("жетон"); Хэмжээ = dbconnection.getInt ("Хэмжээ"); } if (token == 0) {println ("Ok"); textFont (f, 54); дүүргэх (255, 0, 0, 160); текст ("Үл мэдэгдэх зүйлийг илрүүлсэн", 50, 300); саатал (2000); } if if (токен == 1) {Нийт = Нийт+дүн; dbconnection.query ("update rfid set token = 2 энд ID ="+a [0]+""); println ("За"); textFont (f, 24); дүүргэх (255, 0, 0, 160); // текст ("Зүйлийг нэмсэн", 10, 30); саатал (1000); } if if (token == 2) {Total = Total-Amount; dbconnection.query ("update rfid set token = 1 энд ID ="+a [0]+""); println ("За"); textFont (f, 24); дүүргэх (255, 0, 0, 160); // текст ("Зүйлийг хассан", 10, 30); саатал (1000); } өөр {} dbconnection.close (); } өөр {// холболт амжилтгүй боллоо! }}
хүчингүй өгөгдөл ()
{int байрлал = 100; if (dbconnection.connect ()) {dbconnection.query ("SEFE * rfid -ээс токен = 2"); while (dbconnection.next ()) {Нэр = dbconnection.getString ("Нэр"); Хэмжээ = dbconnection.getInt ("Хэмжээ"); textFont (f, 24); бөглөх (0, 0, 255, 160); текст (Нэр, 10, албан тушаал); бөглөх (0, 0, 0, 160); текст (Хэмжээ, 215, албан тушаал); байрлал = байрлал+30; }} dbconnection.close (); }
Алхам 5: Хөтөлбөрийг гүйцэтгэх
Програмыг ажиллуулах товчлуур дээр дарж ажиллуулах нь гарч ирэх цонхыг хааж болохгүй.
Алхам 6: Дүгнэлт
Миний хичээлийг уншсан танд баярлалаа гэж хэлмээр байна. Хэрэв танд энэ нь хэрэгтэй санагдаж, дуртай (дуртай) хаях эсвэл надаас ямар нэгэн зүйл асуувал энэ зааварчилгааг хийх урам зориг өгөхөд би талархах болно. Мэдэх шаардлагатай бүх асуултаа чөлөөтэй асуугаарай …
Аз жаргалтай кодлох Arduino…
Зөвлөмж болгож буй:
Google туслах - Гэрийн автоматжуулалт Esp8266: 6 алхамыг ашигладаг
Google туслах | Esp8266 ашиглан гэрийн автоматжуулалт: Энэ зааварт би танд google туслахаар хянагддаг гэрийн автоматжуулалтыг үзүүлэх болно
P10 Led (DMD) Arduino Nano V.3: 4 алхамыг ашигладаг
P10 Led (DMD) Arduino Nano V.3 -ийг ашиглах нь: Өмнөх нийтлэлдээ. Би Arduino дээр Output төхөөрөмжийг хэрхэн ашиглах талаар аль хэдийн харуулсан. Гаралтын төхөөрөмжүүд нь " 7-сегмент ", " RGB бөгж ", " Led матриц " ба "2x16 LCD". Энэ нийтлэлд би танд хэрхэн яаж
MAX7219 LED Matrix MQTT нь Esp8266: 6 алхамыг ашигладаг
MAX7219 LED Matrix MQTT Esp8266 ашиглан: Би MAX7219 LED дэлгэцээ MQTT серверт холбож, MQTT захиалгаас текстийг хүлээн авахыг оролдож байсан боловч интернетэд тохирох код аваагүй тул би өөрөө бүтээж эхлэв. … мөн үр дүн нь маш сайн ирдэг … та чадна
Arduino: Potentio заагч нь LED Matrix MAX7219: 4 алхамыг ашигладаг
Arduino: Potentio индикатор нь LED матрицыг ашигладаг MAX7219: Өмнөх заавар дээр би RGB бөгжний нео пикселийг ашиглан потенциометрийн заалт хийсэн. Та үүнийг "Потенцио индикатор нь RGB неопикселийг ашигладаг" гэсэн нийтлэлээс харж болно, мөн өнөөдөр би MAX7219 удирдсан метат ашиглан хүчжүүлэгч индикаторыг үзүүлэх болно
ESP8266: 8 алхамыг ашигладаг IoT -ийн шилдэг төслүүд
ESP8266 ашигладаг IoT -ийн шилдэг төслүүд: Өнөө үед Машин нь үүл дээр хуваалцах боломжтой өгөгдлийг хянах, дүн шинжилгээ хийх, идэвхжүүлэгчийг идэвхжүүлэх гэх мэт олон зорилгоор ашигладаг. Машинууд хоорондоо ярьж байна. ESP8266 нь уг ажлыг гүйцэтгэдэг модулийн нэг юм