![Жөнөкөй супермаркеттин колдонмосу RFID RC-522 жана Arduino Mega: 6 кадам Жөнөкөй супермаркеттин колдонмосу RFID RC-522 жана Arduino Mega: 6 кадам](https://i.howwhatproduce.com/images/003/image-8505-21-j.webp)
Мазмуну:
2025 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2025-01-23 14:51
![Жөнөкөй супермаркеттин колдонмосу RFID RC-522 жана Arduino Mega менен Жөнөкөй супермаркеттин колдонмосу RFID RC-522 жана Arduino Mega менен](https://i.howwhatproduce.com/images/003/image-8505-22-j.webp)
Балдарымды бул жерде менин дагы бир окуу куралымда кайрадан көрүү жакшы, бул жерде мен сизге жөнөкөй GUI түзүү үчүн RFID RC-522 жана Arduino менен жөнөкөй супермаркет тиркемесин түзүүгө жардам берейин деп жатам.
Эскертүү: кодду иштетип жатканда Arduino сериялык мониторун иштетпеңиз, анткени порт конфликти пайда болот, анткени экөө тең бир портту колдонушу керек
Сизге керек:
- Arduino Mega же Arduino Uno (Мен Мега колдондум)
- RFID-RC522
- 7 эркектен аялга секирүүчү зымдар
- Кээ бир ID карталар (милдеттүү эмес)
- RFID китепканасы (Төмөндөгү шилтеме)
- Wamp сервер
- IDE 2.2.1 иштетилүүдө (андан чоңун колдонбоңуз)
- Иштетүү үчүн BezierSQLib-0.2.0 китепканасы (Төмөндөгү шилтемени жүктөп алуу)
Андан кийин Төмөндөгү RFID китепканасын жүктөп алып, Sketch-> Китепкананы кошуу-> Файл менюсунда. Zip Китепканасын кошуу менен Arduino IDEге кошуңуз.
1-кадам: Arduino жана RFID RC-522 орнотуу (Физикалык туташуу)
![Arduino жана RFID RC-522 орнотуу (физикалык туташуу) Arduino жана RFID RC-522 орнотуу (физикалык туташуу)](https://i.howwhatproduce.com/images/003/image-8505-23-j.webp)
жөн гана ардуинону RFID-RC522 менен жогорудагы сүрөттө көрсөтүлгөндөй туташтырыңыз. Эскертүү: болгону 3.3В менен камсыз кылуу, антпесе модуль күйүп кетет
Uno/Nano жана Mega үчүн чыкылдатыңыз
RC522 MODULE Uno/Nano MEGASDA D10 D9 SCK D13 D52 MOSI D11 D51 MISO D12 D50 IRQ 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 reader = 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 орнотуу](https://i.howwhatproduce.com/images/003/image-8505-24-j.webp)
- MySQL үчүн Wamp серверин орнотуңуз жана маалыматты сактоо үчүн конфигурациялаңыз (
- Wamp сервисин иштетүү MySQL консолун иштетүү
- маалымат базасын тандоо
- Андан кийин маалыматыңыз үчүн стол түзүңүз
стол rfid түзүү (ID int (8), токен int (1), Name varchar (20), Сумма int (4));
Эми бул шилтемени көрүп, RFID тегиңиздин баасын кантип алуу керектигин билиңиз, андан кийин маалыматтарды киргизүү үчүн төмөнкү кодду колдонуңуз. Документтин идентификаторунун маанисин RFID тегинин мааниси менен алмаштырууну унутпаңыз.
rfid маанилерине киргизүү (3756178, 1, 'Pencil', 20);
токендин маанисин 1 катары колдонуңуз, ошондо тегдин маанисин биринчи жолу окугандан кийин ал автоматтык түрдө 2 болуп өзгөрөт, ДБга киргизилбеген картаны окуп жатканда токендин мааниси үчүн 0 колдонбоңуз, ал 0ду дайындайт, андан кийин аны Белгисиз карта катары көрсөтөт..
4 -кадам: IDE иштетүүнү орнотуу
![IDE иштетилүүдө IDE иштетилүүдө](https://i.howwhatproduce.com/images/003/image-8505-25-j.webp)
- Processing IDE 2.2.1ди жүктөп алып, орнотуңуз
- Жогорудагы ZIPти MyDocuments/Processing/Librariesке бөлүп алыңыз
- Эми IDE иштетүүнү ачыңыз жана китепкананын жогорудагы сүрөттөгүдөй туура же туура эмес орнотулганын текшериңиз
- Андан кийин иштетүү үчүн төмөнкү кодду көчүрүп алып, өзүңүздүн атыңызды бериңиз
импорт de.bezier.data.sql.*; импорттоо иштетүү.сериал.*; // java.math. BigInteger импорттоо;
// fjenett тарабынан 2005-05-10 түзүлгөн
// жаңыртылган fjenett 20080605
MySQL dbconnection;
String s = ""; int Wheight = 700; int Wwidth = 1200; узун ID; int token; int суммасы; int Total = 0;
String a = {"NULL", "NULL"};
int end = 10; // 10 саны linefeed үчүн ASCII болуп саналат (serial.println аягы), кийинчерээк муну жеке билдирүүлөрдү үзүү үчүн издейбиз String serial; // "сериялык" деп аталган жаңы сапты жарыялоо. Сап - символдордун ырааттуулугу (маалыматтын түрү "char" катары белгилүү) Сериялык порт; String Curr, prev, Name; PFont f;
жараксыз орнотуу ()
{// өлчөмү (Width, Wheight); өлчөмү (700, 500); f = createFont ("Arial", 24, true); // бул мисал // mysql серверин жергиликтүү түрдө иштетип жатканыңызды болжолдойт ("localhost" боюнча). // // mysql-аккаунтуңуз менен --username--, --password-- алмаштырыңыз. // String user = "root"; String pass = ""; // колдонула турган маалымат базасынын аты // String database = "IOT_Database"; // түзүлө турган таблицанын аты String table = ""; // "localhost" серверинин маалымат базасына туташуу dbconnection = new MySQL (бул, "localhost", маалымат базасы, колдонуучу, өтмөк); порт = жаңы Сериал (бул, Serial.list () [0], 9600); // портту жана берүү ылдамдыгын дайындоо менен объектти инициализациялоо (Arduino менен дал келиши керек) port.clear (); // функциясы сериялык китепканадан, биринчи окууну ыргытып жиберет, эгерде биз Arduino serial = port.readStringUntil (аягында) сабынын ортосунда окуй баштасак; // функциясы сапты сериялык порттон println ге чейин окуп, андан кийин саптын өзгөрмөсүнө сапты дайындайт ('serial' деп аталат) serial = null; } void draw () {background (255); textFont (f, 24); толтуруу (0); текст ("Жалпы сумма Rs:", 400, 400); текст (Бардыгы, 585, 400); маалыматтар (); while (port.available ()> 0) {// сериялык порттон келген маалыматтар бар болсо, аны окуп, аны сериал = port.readStringUntil (аягында) сактаңыз; } if (serial! = null) {prev = Curr; Curr = a [1]; a = бөлүнүү (сериялык, ','); // баалуулуктарды өзүнчө уячаларга сактай турган жаңы массив ("а" деп аталат) ((Arduino программаңызда үтүр менен ажыратылган) if ((Curr). equals (prev)) {//} else {// println ("Curr ", Curr); // println ("Мурунку", мурунку); function (); }}}
боштук функциясы ()
{if (dbconnection.connect ()) {// эми кайра окуп чыккыла // dbconnection.query ("SEFE * rfidден ID ="+a [0]+""); while (dbconnection.next ()) {ID = dbconnection.getInt ("ID"); токен = dbconnection.getInt ("токен"); Сумма = dbconnection.getInt ("Сумма"); } if (токен == 0) {println ("Ok"); textFont (f, 54); толтуруу (255, 0, 0, 160); текст ("Белгисиз пункт аныкталды", 50, 300); кечигүү (2000); } else if (токен == 1) {Бардыгы = Бардыгы+Сумма; dbconnection.query ("update rfid set token = 2 where ID ="+a [0]+""); println ("Ok"); textFont (f, 24); толтуруу (255, 0, 0, 160); // текст ("пункт кошулду", 10, 30); кечигүү (1000); } else if (token == 2) {Total = Total-Amount; dbconnection.query ("update rfid set token = 1 where ID ="+a [0]+""); println ("Ok"); textFont (f, 24); толтуруу (255, 0, 0, 160); // текст ("Элемент алынып салынды", 10, 30); кечигүү (1000); } else {} dbconnection.close (); } башка {// туташуу ишке ашкан жок! }}
жараксыз маалыматтар ()
{int position = 100; if (dbconnection.connect ()) {dbconnection.query ("SELECT * rfidден кайда токен = 2"); while (dbconnection.next ()) {Name = dbconnection.getString ("Аты"); Сумма = dbconnection.getInt ("Сумма"); textFont (f, 24); толтуруу (0, 0, 255, 160); текст (Аты, 10, орду); толтуруу (0, 0, 0, 160); текст (Сумма, 215, позиция); позиция = позиция+30; }} dbconnection.close (); }
5 -кадам: Программаны аткаруу
![Программаны аткаруу Программаны аткаруу](https://i.howwhatproduce.com/images/003/image-8505-26-j.webp)
![Программаны аткаруу Программаны аткаруу](https://i.howwhatproduce.com/images/003/image-8505-27-j.webp)
![Программаны аткаруу Программаны аткаруу](https://i.howwhatproduce.com/images/003/image-8505-28-j.webp)
![Программаны аткаруу Программаны аткаруу](https://i.howwhatproduce.com/images/003/image-8505-29-j.webp)
Программаны иштетүү баскычын чыкылдатуу менен иштетүү, калкып чыкма терезени жаппоо, аткарууну токтотот жана MySQLде сакталган маалыматтарды көрүү үчүн төмөнкү сурам …
6 -кадам: Жыйынтык
Окутуу куралымды окуганыңыз үчүн сизге рахмат айткым келет. Эгер сиз муну пайдалуу деп тапсаңыз жана жактырууну (сүйүктүү) калтырсаңыз же менден бир нерсе сурасаңыз, мен ыраазы болом, анткени ал мага бул көрсөтмөлөрдү кылууга түрткү берет. билишиңиз керек болгон суроолорду берүүдөн тартынбаңыз …
Бактылуу коддоо Arduino…
Сунушталууда:
ANDROID КОЛДОНМОСУ БАШКАРЫЛДЫ Жөнөкөй RGB LED стол чырагы: 5 кадам
![ANDROID КОЛДОНМОСУ БАШКАРЫЛДЫ Жөнөкөй RGB LED стол чырагы: 5 кадам ANDROID КОЛДОНМОСУ БАШКАРЫЛДЫ Жөнөкөй RGB LED стол чырагы: 5 кадам](https://i.howwhatproduce.com/images/005/image-13048-j.webp)
ANDROID КОЛДОНМОСУ БАШКАРЫЛГАН Жөнөкөй RGB LED стол чырагы: андыктан бул үйрөткүчтө мен сизге Android смартфону менен rgbди кантип башкарууну көрсөтөм. RGB леддери ар кандай көлөкөнүн, башкача айтканда, кызыл, жашыл жана көк түстөрдүн айкалышынын негизги түшүнүгү боюнча иштейт. Бардык түстөрдө бул жөнөкөй түстөр бар
Smart Home Arduino MKR1000 жана M.I.T. Android колдонмосу: 4 кадам
![Smart Home Arduino MKR1000 жана M.I.T. Android колдонмосу: 4 кадам Smart Home Arduino MKR1000 жана M.I.T. Android колдонмосу: 4 кадам](https://i.howwhatproduce.com/images/006/image-17301-j.webp)
Smart Home Arduino MKR1000 жана M.I.T. Android колдонмосу: Бул үйрөткүчтө мен сиздин акылдуу үйүңүздү бир нече компоненттер менен кантип жакшыртуу керектигин сүрөттөп берем. Бул акылдуу үй дизайнынын жүрөгү - Arduino MKR1000 тактасы, колдонмо менен башкарылат, M.I.T. (Массачусетс институту
THINGSPEAK ТЕМПЕРАТУРАСЫ ЖАНА ЫЛДАМДЫК КОЛДОНМОСУ ESP8266 КОЛДОНУП: 9 кадам
![THINGSPEAK ТЕМПЕРАТУРАСЫ ЖАНА ЫЛДАМДЫК КОЛДОНМОСУ ESP8266 КОЛДОНУП: 9 кадам THINGSPEAK ТЕМПЕРАТУРАСЫ ЖАНА ЫЛДАМДЫК КОЛДОНМОСУ ESP8266 КОЛДОНУП: 9 кадам](https://i.howwhatproduce.com/images/010/image-28263-j.webp)
THINGSPEAK ТЕМПЕРАТУРАСЫ ЖАНА НЫМДЫК КОЛДОНМОСУ ESP8266 КОЛДОНУЛУУСУ: Электрондук буюмдарым менен алпурушуп жатып, менде интернетке негизделген аба ырайы колдонмосун түзүү идеясы пайда болду. Бул веб-колдонмо SHT31 сенсорун колдонуп, реалдуу убакытта температура жана нымдуулук маалыматын алат. Биз долбоорубузду ESP8266 WiFi модулуна жайгаштырдык. Онлайн же оффлайн
Arduino 4 Wheel Drive Bluetooth RC Car UNO R3, HC-05 жана L293D Motorshield коддоо жана Android колдонмосу менен: 8 кадам
![Arduino 4 Wheel Drive Bluetooth RC Car UNO R3, HC-05 жана L293D Motorshield коддоо жана Android колдонмосу менен: 8 кадам Arduino 4 Wheel Drive Bluetooth RC Car UNO R3, HC-05 жана L293D Motorshield коддоо жана Android колдонмосу менен: 8 кадам](https://i.howwhatproduce.com/images/005/image-12768-8-j.webp)
Arduino 4 Wheel Drive Bluetooth RC Car UNO R3, HC-05 жана L293D Motorshield менен коддоо жана Android тиркемесин колдонуп: Бүгүн мен сизге HC 05, L293 мотор калканчын колдонуу менен arduino 4 дөңгөлөктүү bluetooth RC машинасын кантип жасоо жөнүндө айтып берейин. 4 DC мотору, коддоону жана андроиддин машинаны башкарууга колдонмосун колдонот. Компонент колдонулат: -1-Arduino UNO R32-Bluetooth HC-053-Motorshield L293
BLE модулдары үчүн жөнөкөй IOS колдонмосу: 4 кадам
![BLE модулдары үчүн жөнөкөй IOS колдонмосу: 4 кадам BLE модулдары үчүн жөнөкөй IOS колдонмосу: 4 кадам](https://i.howwhatproduce.com/images/001/image-2402-46-j.webp)
BLE модулдары үчүн жөнөкөй IOS тиркемеси: Бул көрсөтмө сиз эң негизги функциялары бар iOS колдонмосун кантип түзө алсаңыз болот. Бул Instructable iOS BLE тиркемесин түзүүнүн бардык процессинен өтпөйт. Бул бир гана кээ бир маанилүү элементтерге жогорку деңгээлде обзор берет