Mündəricat:

RFID RC-522 və Arduino Mega istifadə edərək sadə bir Supermarket Tətbiqi: 6 addım
RFID RC-522 və Arduino Mega istifadə edərək sadə bir Supermarket Tətbiqi: 6 addım

Video: RFID RC-522 və Arduino Mega istifadə edərək sadə bir Supermarket Tətbiqi: 6 addım

Video: RFID RC-522 və Arduino Mega istifadə edərək sadə bir Supermarket Tətbiqi: 6 addım
Video: Arduino proqramlaşdırmanızı təkmilləşdirin! #2 Arduino Sensor məlumatlarının yumşaldılması 2024, Iyul
Anonim
RFID RC-522 və Arduino Mega istifadə edərək sadə bir Supermarket Tətbiqi
RFID RC-522 və Arduino Mega istifadə edərək sadə bir Supermarket Tətbiqi

Sizi başqa bir dərsliyimdə yenidən görmək xoşdur, burada sadə GUI yaratmaq üçün RFID RC-522 və Arduino ilə işləməklə sadə bir supermarket proqramı yaratmağınıza kömək edəcəyəm.

Qeyd: İşləmə kodu işləyərkən Arduino serial monitorunu işə salmayın, çünki hər ikisi eyni portu istifadə etməli olduğu üçün liman qarşıdurması meydana gələcək

Ehtiyacınız var:

  1. Arduino Mega və ya Arduino Uno (Mega istifadə etdim)
  2. RFID-RC522
  3. 7 kişi -dişi tullanan tel
  4. Bəzi şəxsiyyət vəsiqələri (isteğe bağlı)
  5. RFID Kitabxanası (Aşağıdakı link olmalıdır)
  6. Wamp server
  7. IDE 2.2.1 işlənir (bundan böyük istifadə etməyin)
  8. BezierSQLib-0.2.0 kitabxana emal üçün (Aşağıdakı linkdən yükləyin)

Sonra Aşağıdakı RFID kitabxanasını yükləyin və Sketch-> Kitabxanaya daxil et-> Fayl menyusunda Zip Kitabxanası əlavə edərək Arduino IDE-yə əlavə edin.

Addım 1: Arduino və RFID RC-522 qurmaq (Fiziki Bağlantı)

Arduino və RFID RC-522 (Fiziki Bağlantı) qurulması
Arduino və RFID RC-522 (Fiziki Bağlantı) qurulması

sadəcə yuxarıdakı şəkildə göstərildiyi kimi arduino-nu RFID-RC522 ilə bağlayın. Xəbərdarlıq: yalnız 3.3V təchiz edin, əks halda modul yanacaq

Uno/Nano və Mega üçün qeyd edin

RC522 MODÜLÜ Uno/Nano MEGASDA D10 D9 SCK D13 D52 MOSI D11 D51 MISO D12 D50 IRQ Yoxdur GND GND GND RST D9 D8 3.3V 3.3V 3.3V

Addım 2: Arduino Kodu.,

Aşağıdakı kodu kopyalayın və Arduino -ya yükləyin

/*PINOUT: RC522 MODÜLÜ 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*//*Standart Arduino SPI kitabxanasını daxil edin */ #include/ *RFID kitabxanasını daxil et */ #include

/* SDA (SS) və RST (sıfırlama) pinləri üçün istifadə olunan DIO -nu təyin edin. */

#SDA_DIO 9 təyin edin #RESET_DIO 8 təyin edin

/ * RFID kitabxanasının bir nümunəsini yaradın */

RFID RC522 (SDA_DIO, RESET_DIO); int oxucu = 0;

boş quraşdırma ()

{Serial.begin (9600); / * SPI interfeysini aktiv edin */ SPI.begin (); / * RFID oxuyucusunu işə salın */ RC522.init (); }

boşluq döngəsi ()

{ / * Müvəqqəti döngə sayğacı * / bayt i;

/* Bir kart aşkar edildi? */

if (RC522.isCard ()) { / * Əgər belədirsə, seriya nömrəsini alın * / RC522.readCardSerial ();

/ * Seriya nömrəsini UART -a çıxarın */ for (i = 0; i <= 2; i ++) {Serial.print (RC522.serNum , DEC); //Serial.print(RC522.serNum , HEX); } Serial.print (","); Serial.print (oxucu ++); Serial.println (); } gecikmə (1000); }

Addım 3: MySQL qurmaq

MySQL -in qurulması
MySQL -in qurulması
  1. MySQL üçün Wamp serverini qurun və məlumatları saxlamaq üçün konfiqurasiya edin (
  2. MySQL konsolunu açmaq üçün wamp xidmətini işə salın
  3. verilənlər bazası seçin
  4. Sonra məlumatlarınız üçün cədvəl yaradın

cədvəl yaratmaq rfid (ID int (8), token int (1), Ad varchar (20), Məbləğ int (4));

İndi RFID etiket dəyərinizi necə əldə edəcəyinizi öyrənmək üçün bu linki izləyin və sonra məlumat daxil etmək üçün aşağıdakı kodu istifadə edin. İD dəyərini RFID etiket dəyərinizlə əvəz etməyi unutmayın.

rfid dəyərlərinə daxil edin (3756178, 1, 'Qələm', 20);

etiket dəyərini ilk dəfə oxuduqdan sonra avtomatik olaraq 2 olaraq dəyişəcək, DB -yə daxil edilməmiş kartı oxuduqda 0 -u təyin etməyəcək və sonra Naməlum Kart kimi göstərəcək ki, token dəyərini 1 olaraq istifadə edin..

Addım 4: İşlənən IDE -nin qurulması

IDE -nin İşlənməsi Qurulur
IDE -nin İşlənməsi Qurulur
  1. Qenerasiya IDE 2.2.1 -ni yükləyin və quraşdırın
  2. Yuxarıda göstərilən ZIP -ı MyDocuments/Processing/Libraries -ə çıxarın
  3. İndi IDE emalını açın və kitabxananın yuxarıdakı şəkildəki kimi düzgün quraşdırıldığını yoxlayın
  4. Sonra işləmək üçün aşağıdakı kodu kopyalayın və öz adınızı verin

idxal de.bezier.data.sql.*; idxal emalı.serial.*; // java.math. BigInteger idxal edin;

// 2005-05-10 fjenett tərəfindən yaradılmışdır

// yenilənmiş fjenett 20080605

MySQL db bağlantısı;

String s = ""; int Wheight = 700; int Genişlik = 1200; uzun şəxsiyyət vəsiqəsi; int token; int Miqdarı; int Cəmi = 0;

Sətir a = {"NULL", "NULL"};

int end = 10; // 10 nömrəsi linefeed üçün ASCII -dir (serial.println sonu), daha sonra fərdi mesajları parçalamaq üçün bunu axtaracağıq String serial; // 'serial' adlı yeni bir sətir elan edin. Bir simli bir simvol ardıcıllığıdır (məlumat növü "char" olaraq bilinir) Serial port; String Curr, əvvəlki, Ad; PFont f;

boş quraşdırma ()

{// ölçüsü (Genişlik, Sükan); ölçü (700, 500); f = createFont ("Arial", 24, doğru); // bu nümunə // mysql serverini lokal olaraq ("localhost" da) işlədiyinizi güman edir. // //-istifadəçi adını-,-şifrəni-- mysql hesabınızla əvəz edin. // String istifadəçisi = "kök"; String keçid = ""; // istifadə ediləcək verilənlər bazasının adı // String database = "IOT_Database"; // yaradılacaq cədvəlin adı String table = ""; // server "localhost" verilənlər bazasına qoşulmaq dbconnection = yeni MySQL (bu, "localhost", verilənlər bazası, istifadəçi, keçid); port = yeni Serial (bu, Serial.list () [0], 9600); // port və baud dərəcəsi (Arduino ilə eyni olmalıdır) təyin edərək obyekti işə salmaq port.clear (); // Arduino serial = port.readStringUntil (son) bir sətrin ortasında oxumağa başlamağımız halında, ilk oxunuşu atan serial kitabxanasının funksiyası; // serialı portdan printlnə qədər oxuyan və sonra simli dəyişənimizə simvol təyin edən ('serial' adlanan) serial = null funksiyası; } void draw () {background (255); textFont (f, 24); doldurun (0); mətn ("Toplam Məbləğ Rs:", 400, 400); mətn (Cəmi, 585, 400); məlumatlar (); while (port.available ()> 0) {// serial portdan gələn məlumatlar olduğu müddətcə oxuyun və saxlayın serial = port.readStringUntil (end); } if (serial! = sıfır) {prev = Curr; cərəyan = a [1]; a = split (serial, ','); // dəyərləri ayrı hüceyrələrə (Arduino proqramınızda göstərilən vergüllərlə ayrılmış) saxlayan yeni bir sıra ('a' adlanır) əgər ((Curr). bərabərdir (əvvəlki)) {//} başqa {// println ("Curr ", qarağat); // println ("Əvvəlki", əvvəlki); funksiya (); }}}

boşluq funksiyası ()

{if (dbconnection.connect ()) {// indi yenidən oxuyun // dbconnection.query ("ID ="+a [0]+"" olan rfiddən "SELECT *"); while (dbconnection.next ()) {ID = dbconnection.getInt ("ID"); mö'cüzə = dbconnection.getInt ("mö'cüzə"); Məbləğ = dbconnection.getInt ("Məbləğ"); } if (token == 0) {println ("Ok"); textFont (f, 54); doldurun (255, 0, 0, 160); mətn ("Naməlum maddə aşkarlandı", 50, 300); gecikmə (2000); } else if (token == 1) {Total = Total+Məbləği; dbconnection.query ("ID ="+a [0]+"" "rfid set token = 2 yeniləmə); println ("Ok"); textFont (f, 24); doldurun (255, 0, 0, 160); // mətn ("maddə əlavə edildi", 10, 30); gecikmə (1000); } if if (token == 2) {Total = Total-Miqdarı; dbconnection.query ("ID ="+a [0]+"" olan rfid set token = 1 yeniləmə); println ("Ok"); textFont (f, 24); doldurun (255, 0, 0, 160); // mətn ("Maddə Silindi", 10, 30); gecikmə (1000); } başqa {} dbconnection.close (); } başqa {// əlaqə uğursuz oldu! }}

boş məlumat ()

{int mövqeyi = 100; if (dbconnection.connect ()) {dbconnection.query ("Token = 2 olan rfiddən SELECT *"); while (dbconnection.next ()) {Ad = dbconnection.getString ("Ad"); Məbləğ = dbconnection.getInt ("Məbləğ"); textFont (f, 24); doldurun (0, 0, 255, 160); mətn (Ad, 10, vəzifə); doldurun (0, 0, 0, 160); mətn (Məbləğ, 215, mövqe); mövqe = mövqe+30; }} dbconnection.close (); }

Addım 5: Proqramın icrası

Proqramın icrası
Proqramın icrası
Proqramın icrası
Proqramın icrası
Proqramın icrası
Proqramın icrası
Proqramın icrası
Proqramın icrası

Proqramı çalıştır düyməsini basaraq işə salın, açılan pəncərəni bağlamayın, icra dayandırılacaq və MySQL -də saxlanılan məlumatları görmək üçün sorğunun altındadır …

Addım 6: Nəticə

Dərsliyimi oxuduğunuz üçün sizə təşəkkür etmək istəyirəm. Faydalı tapsanız və bəyəndiyiniz (sevdiyiniz) bir şəkil atsanız və ya mənə bir şey soruşsanız, bu təlimatları etməyə həvəsləndirdiyim üçün minnətdar olaram. bilmək istədiyiniz hər hansı bir sual verməkdən çekinmeyin …

Xoşbəxt Kodlaşdırma Arduino…

Tövsiyə: