Агуулгын хүснэгт:

RFID RC-522 ба Arduino Mega: 6 алхамыг ашигладаг энгийн супермаркетын програм
RFID RC-522 ба Arduino Mega: 6 алхамыг ашигладаг энгийн супермаркетын програм

Видео: RFID RC-522 ба Arduino Mega: 6 алхамыг ашигладаг энгийн супермаркетын програм

Видео: RFID RC-522 ба Arduino Mega: 6 алхамыг ашигладаг энгийн супермаркетын програм
Видео: Знакомство с RFID и подключение модуля RC522 к Arduino 2024, Оны зургадугаар сарын
Anonim
RFID RC-522 ба Arduino Mega ашиглан энгийн супермаркетын програм
RFID RC-522 ба Arduino Mega ашиглан энгийн супермаркетын програм

Залуус та бүхэнтэй миний өөр хичээл дээр дахин уулзах сайхан байна, энд би энгийн GUI үүсгэхийн тулд RFID RC-522 ба Arduino ашиглан энгийн супермаркетын програмыг бий болгоход туслах болно.

Анхаарна уу: кодыг боловсруулах явцад Arduino цуваа мониторыг бүү ажиллуулаарай, учир нь хоёулаа нэг портыг ашиглах шаардлагатай тул порт зөрчилдөх болно

Чамд хэрэгтэй:

  1. Arduino Mega эсвэл Arduino Uno (би мега ашигласан)
  2. RFID-RC522
  3. 7 эрэгтэй, эмэгтэй холбогч утас
  4. Зарим иргэний үнэмлэх (заавал биш)
  5. RFID номын сан (заавал байх ёстой, доорх линк)
  6. Wamp сервер
  7. IDE 2.2.1 боловсруулж байна (үүнээс ихийг бүү ашиглаарай)
  8. Боловсруулах BezierSQLib-0.2.0 номын сан (Доорх линкийг татаж авна уу)

Дараа нь RFID доорх номын санг татаж аваад Arketino IDE дээрээ нэмээд Sketch-> Номын сан оруулах

Алхам 1: Arduino болон RFID RC-522-ийг тохируулах (Физик холболт)

Arduino болон RFID RC-522-ийг тохируулах (физик холболт)
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 -ийг тохируулж байна
MySQL -ийг тохируулж байна
  1. MySQL -д зориулсан Wamp серверийг суулгаад өгөгдлийг хадгалахаар тохируулна уу (
  2. MySQL консолыг wamp серверт ажиллуулна уу
  3. мэдээллийн санг сонгох
  4. Дараа нь өгөгдөлдөө зориулж хүснэгт үүсгэнэ үү

хүснэгт 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 -ийг тохируулж байна
Боловсруулах IDE -ийг тохируулж байна
  1. Боловсруулах IDE 2.2.1 -ийг татаж суулгана уу
  2. Дээрх ZIP -ийг MyDocuments/Processing/Libraries руу задална уу
  3. Одоо IDE боловсруулалтыг нээгээд номын сан дээрх зураг дээрх шиг зөв суулгасан эсэхийг шалгаарай
  4. Дараа нь боловсруулахын тулд доорх кодыг хуулж, өөрийн нэрээр нэрлэнэ үү

импорт 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…

Зөвлөмж болгож буй: