Мазмұны:

RFID RC-522 мен Arduino Mega қолданатын қарапайым супермаркеттік бағдарлама: 6 қадам
RFID RC-522 мен Arduino Mega қолданатын қарапайым супермаркеттік бағдарлама: 6 қадам

Бейне: RFID RC-522 мен Arduino Mega қолданатын қарапайым супермаркеттік бағдарлама: 6 қадам

Бейне: RFID RC-522 мен Arduino Mega қолданатын қарапайым супермаркеттік бағдарлама: 6 қадам
Бейне: Arduino Interrupt 2024, Шілде
Anonim
RFID RC-522 және Arduino Mega көмегімен қарапайым супермаркеттік қосымша
RFID RC-522 және Arduino Mega көмегімен қарапайым супермаркеттік қосымша

Сізді тағы бір оқулықта көруге қуаныштымын, мұнда мен сізге қарапайым GUI құру үшін RFID RC-522 мен Arduino көмегімен қарапайым супермаркет қосымшасын құруға көмектесемін.

Ескерту: кодты өңдеу кезінде Arduino сериялық мониторын іске қоспаңыз, себебі порт қақтығысы пайда болады, себебі екеуі де бір портты пайдалану керек

Сізге қажет:

  1. Arduino Mega немесе Arduino Uno (мен Mega қолдандым)
  2. RFID-RC522
  3. 7 еркек пен әйел арасындағы секіргіш сымдар
  4. Кейбір жеке куәліктер (міндетті емес)
  5. RFID кітапханасы (міндетті түрде, төмендегі сілтеме)
  6. Wamp сервері
  7. IDE 2.2.1 өңделуде (бұдан үлкенін қолданбаңыз)
  8. Өңдеуге арналған BezierSQLib-0.2.0 кітапханасы (төмендегі сілтемені жүктеңіз)

Содан кейін төмендегі RFID кітапханасын жүктеп алып, оны Sketch-> Кітапхананы қосу->. Zip кітапханасын файл мәзірінен басу арқылы Arduino IDE-ге қосыңыз.

1-қадам: Arduino мен RFID RC-522 орнату (физикалық байланыс)

Arduino мен RFID RC-522 орнату (физикалық байланыс)
Arduino мен RFID RC-522 орнату (физикалық байланыс)

arduino-ны жоғарыдағы суретте көрсетілгендей 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 орнату
  1. MySQL үшін Wamp серверін орнатыңыз және оны деректерді сақтауға теңшеңіз (
  2. MySQL консолін ашатын wamp сервисін іске қосыңыз
  3. мәліметтер базасын таңдаңыз
  4. Содан кейін деректер үшін кесте құрыңыз

rfid кестесін құру (ID int (8), token int (1), Name varchar (20), Сумма int (4));

Енді RFID тегінің мәнін қалай алу керектігін білу үшін осы сілтемені қараңыз, содан кейін деректерді енгізу үшін төмендегі кодты қолданыңыз. Идентификатор мәнін RFID тегінің мәнімен ауыстыруды ұмытпаңыз.

rfid мәндерін енгізіңіз (3756178, 1, 'Pencil', 20);

таңбалауыш мәнін бірінші рет оқығаннан кейін ол автоматты түрде 2 -ге ауысатындай, токен мәнін 1 ретінде қолданыңыз, ДБ -ге енгізілмеген картаны оқу кезінде таңбалауыш мәні үшін 0 пайдаланбаңыз, ол 0 береді, содан кейін оны белгісіз карта ретінде көрсетеді..

4 -қадам: IDE өңдеуді орнату

IDE өңдеуді реттеу
IDE өңдеуді реттеу
  1. Processing IDE 2.2.1 жүктеу және орнату
  2. Жоғарыда берілген ZIP файлын MyDocuments/Processing/Libraries -ге шығарыңыз
  3. Енді IDE өңдеуді ашыңыз және кітапхананың жоғарыдағы суреттегідей дұрыс орнатылғанын тексеріңіз
  4. Содан кейін төмендегі кодты өңдеуге көшіріп, оны өзіңіз атаңыз

de.bezier.data.sql импорттау.*; импортты өңдеу.сериал.*; // java.math. BigInteger импорттау;

// fjenett жасаған 2005-05-10

// жаңартылған fjenett 20080605

MySQL қосылымы;

Жол s = «»; int Wheight = 700; int Ені = 1200; ұзын жеке куәлік; int таңбасы; int сомасы; int Барлығы = 0;

Жол a = {«NULL», «NULL»};

int end = 10; // 10 саны linefeed үшін ASCII болып табылады (serial.println соңы), кейінірек біз жеке хабарламаларды үзу үшін іздейміз String serial; // «сериялық» деп аталатын жаңа жолды жариялаңыз. Жол - бұл символдар тізбегі (деректер түрі «char» деп аталады) Сериялық порт; String Curr, prev, Name; PFont f;

жарамсыз орнату ()

{// size (Width, Wheight); мөлшері (700, 500); f = createFont («Arial», 24, true); // бұл мысал // mysql серверін жергілікті түрде («localhost») іске қосасыз деп болжайды. // // mysql-есептік жазбаңызбен --username--, --password-- ауыстырыңыз. // String user = «root»; Жолды өту = «»; // қолданылатын мәліметтер базасының атауы // String database = «IOT_Database»; // жасалатын кестенің атауы String table = «»; // «localhost» серверінің дерекқорына қосылу dbconnection = жаңа MySQL (бұл, «localhost», дерекқор, пайдаланушы, рұқсат); port = new Serial (this, Serial.list () [0], 9600); // порт пен жіберу жылдамдығын тағайындау арқылы нысанды инициализациялау (Arduino жылдамдығына сәйкес келуі керек) port.clear (); // функция, егер біз Arduino жолының ортасында оқи бастаған болсақ, бірінші оқуды шығаратын сериялық кітапханадан serial = port.readStringUntil (соңы); // жолды сериялық порттан println дейін оқитын, содан кейін жолды айнымалыға тағайындайтын («сериялық» деп аталады) 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; Curr = a [1]; a = бөліну (сериялық, ','); // мәндерді бөлек ұяшықтарға сақтайтын жаңа массив («а» деп аталады), егер сіздің (Arduino бағдарламасында үтірмен бөлінген) if ((Curr). equals (prev)) {//} else {// println («Curr «, ақша); // println («Алдыңғы», алдыңғы); функция (); }}}

void функциясы ()

{if (dbconnection.connect ()) {// енді оны қайта оқып шығыңыз // dbconnection.query («rfid ішінен» SELECT * мұнда 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); } else if (токен == 1) {Барлығы = Барлығы+Сомасы; dbconnection.query («rfid жиынтық белгісін жаңарту = 2, мұнда ID =»+a [0]+«»); println («Жарайды»); textFont (f, 24); толтыру (255, 0, 0, 160); // мәтін («Элемент қосылды», 10, 30); кешіктіру (1000); } if if (token == 2) {Total = Total-Amount; dbconnection.query («rfid жиынтық белгісін жаңарту = 1, мұнда ID =»+a [0]+«»); println («Жарайды»); textFont (f, 24); толтыру (255, 0, 0, 160); // мәтін («Элемент жойылды», 10, 30); кешіктіру (1000); } басқа {} dbconnection.close (); } басқа {// байланыс сәтсіз аяқталды! }}

жарамсыз деректер ()

{int позициясы = 100; if (dbconnection.connect ()) {dbconnection.query («rfid -ден SELECT * мұнда белгісі = 2»); while (dbconnection.next ()) {Name = dbconnection.getString («Name»); Сумма = dbconnection.getInt («Сома»); textFont (f, 24); толтыру (0, 0, 255, 160); мәтін (аты -жөні, 10, орны); толтыру (0, 0, 0, 160); мәтін (Сомасы, 215, орны); позиция = позиция+30; }} dbconnection.close (); }

5 -қадам: Бағдарламаны орындау

Бағдарламаны орындау
Бағдарламаны орындау
Бағдарламаны орындау
Бағдарламаны орындау
Бағдарламаны орындау
Бағдарламаны орындау
Бағдарламаны орындау
Бағдарламаны орындау

Бағдарламаны іске қосу түймесін басу арқылы іске қосыңыз, қалқымалы терезені жаппаңыз, орындалуды тоқтатады және MySQL -те сақталған деректерді қарау үшін төмендегі сұранысты тоқтатады …

6 -қадам: Қорытынды

Менің оқулығымды оқығаныңыз үшін алғыс айтқым келеді. Егер сіз оны пайдалы деп тапсаңыз және ұнатуды (ұнатқанды) тастасаңыз немесе маған бірдеңе сұрасаңыз, мен риза болар едім, себебі бұл мені осы нұсқауларды орындауға ынталандырады. білуге болатын кез келген сұрақтарыңызды қоюдан тартынбаңыз …

Бақытты кодтау Arduino…

Ұсынылған: