İçindekiler:

RFID RC-522 ve Arduino Mega Kullanan Basit Süpermarket Uygulaması: 6 Adım
RFID RC-522 ve Arduino Mega Kullanan Basit Süpermarket Uygulaması: 6 Adım

Video: RFID RC-522 ve Arduino Mega Kullanan Basit Süpermarket Uygulaması: 6 Adım

Video: RFID RC-522 ve Arduino Mega Kullanan Basit Süpermarket Uygulaması: 6 Adım
Video: Arduino Nedir? Nasıl Kurulur ve Neler Yapılabilir? #1 2024, Temmuz
Anonim
RFID RC-522 ve Arduino Mega Kullanan Basit Süpermarket Uygulaması
RFID RC-522 ve Arduino Mega Kullanan Basit Süpermarket Uygulaması

Sizi başka bir öğreticide tekrar burada görmek güzel, burada basit GUI oluşturmak için RFID RC-522 ve İşleme ile Arduino kullanarak basit bir süpermarket uygulaması oluşturmanıza yardımcı olacağım.

Not: İşlem kodunu çalıştırırken Arduino seri monitörünü çalıştırmayın, çünkü her ikisi de aynı bağlantı noktasını kullanmak zorunda olduğundan bağlantı noktası çakışması meydana gelir.

İhtiyacınız:

  1. Arduino Mega veya Arduino Uno (Mega kullandım)
  2. RFID-RC522
  3. 7 erkek dişi atlama teli
  4. Bazı kimlik kartları (isteğe bağlı)
  5. RFID Kitaplığı (Zorunlu, Bağlantı Aşağıda)
  6. Wamp sunucusu
  7. IDE 2.2.1 işleniyor (bundan daha fazlasını kullanmayın)
  8. İşleme için BezierSQLib-0.2.0 kitaplığı (Aşağıdaki indirme bağlantısı)

Ardından Aşağıdaki RFID kütüphanesini indirin ve dosya menüsünde Sketch->Include Library-> Add. Zip Library'yi tıklayarak Arduino IDE'nize ekleyin.

Adım 1: Arduino ve RFID RC-522'yi Ayarlama (Fiziksel Bağlantı)

Arduino ve RFID RC-522 (Fiziksel Bağlantı) Kurulumu
Arduino ve RFID RC-522 (Fiziksel Bağlantı) Kurulumu

arduino'yu yukarıdaki resimde gösterildiği gibi RFID-RC522 ile bağlamanız yeterlidir. Uyarı: sadece 3.3V sağlayın, aksi takdirde modül yanacaktır

Uno/Nano ve Mega için Pin Çıkışı

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

Adım 2: Arduino Kodu.,

Aşağıdaki kodu kopyalayın ve ardından Arduino'nuza yükleyin

/*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 */ /* Standart Arduino SPI kitaplığını içerir */ #include /* RFID kitaplığını dahil et */ #include

/* SDA (SS) ve RST (reset) pinleri için kullanılan DIO'yu tanımlayın. */

#define SDA_DIO 9 #define RESET_DIO 8

/* RFID kitaplığının bir örneğini oluştur */

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

geçersiz kurulum()

{ Serial.başlangıç(9600); /* SPI arabirimini etkinleştir */ SPI.begin(); /* RFID okuyucuyu başlat */ RC522.init(); }

boşluk döngüsü()

{ /* Geçici döngü sayacı */ bayt i;

/* Bir kart algılandı mı? */

if (RC522.isCard()) { /* Eğer öyleyse seri numarasını alın */ RC522.readCardSerial();

/* Seri numarasını UART'a yazdırın */ for(i = 0; i <= 2; i++) { Serial.print(RC522.serNum, DEC); //Serial.print(RC522.serNum, HEX); } Serial.print(", "); Serial.print(okuyucu++); Seri.println(); } gecikme(1000); }

3. Adım: MySQL'i Ayarlama

MySQL'i Kurma
MySQL'i Kurma
  1. MySQL için Wamp sunucusunu kurun ve veri depolamak için yapılandırın (
  2. wamp serveropen MySQL konsolunu çalıştırın
  3. veritabanı seç
  4. Ardından verileriniz için tablo oluşturun

tablo oluştur rfid(ID int(8), token int(1), Name varchar(20), Amount int(4));

Şimdi, RFID etiket değerinizi nasıl alacağınızı öğrenmek için bu bağlantıyı görüntüleyin, ardından veri eklemek için aşağıdaki kodu kullanın. Kimlik değerini RFID etiket değerinizle değiştirmeyi unutmayın.

rfid değerlerine ekleyin(3756178, 1, 'Kalem', 20);

belirteç değerini 1 olarak kullanın, böylece etiket değerini ilk kez okuduktan sonra otomatik olarak 2'ye değişecektir, DB'ye takılı olmayan kartı okurken belirteç değeri için 0 kullanmayın, 0 atayacak ve ardından Bilinmeyen Kart olarak görüntülenecektir..

Adım 4: İşleme IDE'sini Ayarlama

İşleme IDE'sini Ayarlama
İşleme IDE'sini Ayarlama
  1. Processing IDE 2.2.1'i İndirin ve Kurun
  2. Yukarıda verilen ZIP'yi Belgelerim/İşleme/Kütüphaneler'e çıkarın
  3. Şimdi işleme IDE'sini açın ve kitaplığın yukarıdaki resimdeki gibi doğru kurulup kurulmadığını kontrol edin.
  4. Ardından aşağıdaki kodu işlemek için kopyalayın ve kendinize ait bir ad verin

içe aktar de.bezier.data.sql.*;işlemeyi içe aktar.seri.*; //java.math. BigInteger'ı içe aktar;

// 2005-05-10 tarafından fjenett tarafından oluşturuldu

// fjenett 20080605 güncellendi

MySQL dbbağlantısı;

dizi s=" "; int Ağırlık=700; int Genişlik=1200; uzun kimlik; int belirteci; int Tutar; int Toplam=0;

String a={"NULL", "NULL"};

int bitiş = 10; // 10 sayısı satır besleme için ASCII'dir (seri.println sonu), daha sonra bireysel mesajları ayırmak için bunu arayacağız String serial; // 'seri' adında yeni bir dize tanımla. Bir dize, bir karakter dizisidir ("char" olarak bilinen veri türü) Seri bağlantı noktası; String curr, önceki, Ad; PFont f;

geçersiz kurulum()

{ //size(Genişlik, Ağırlık); boyut(700, 500); f=createFont("Arial", 24, doğru); // bu örnek, // mysql sunucusunu yerel olarak ("localhost" üzerinde) çalıştırdığınızı varsayar. // // --username--, --password--'ü mysql-hesabınızla değiştirin. // Kullanıcı dizisi = "kök"; Dize geçişi = ""; // kullanılacak veritabanının adı // String database = "IOT_Database"; // oluşturulacak tablonun adı String table = ""; // "localhost" sunucusunun veritabanına bağlanın dbconnection = new MySQL(bu, "localhost", veritabanı, kullanıcı, geçiş); port = new Serial(bu, Serial.list()[0], 9600); // bir port ve baud hızı atayarak nesneyi başlatma (Arduino ile eşleşmelidir) port.clear(); // Arduino'dan bir dizenin ortasında okumaya başlamamız durumunda, ilk okumayı atan seri kitaplıktan işlev serial = port.readStringUntil(end); // diziyi seri bağlantı noktasından bir println'ye kadar okuyan ve ardından dize değişkenimize ('seri' olarak adlandırılan) dize atayan fonksiyon serial = null; } geçersiz çizim() { arka plan(255); textFont(f, 24); doldur(0); text("Toplam Tutar:", 400, 400); metin(Toplam, 585, 400); veri(); while (port.available() > 0) { //seri porttan gelen veri olduğu sürece onu oku ve sakla serial = port.readStringUntil(end); } if (seri != boş) { prev=curr; curr=a[1]; a = split(seri, ', '); // değerleri ayrı hücrelerde saklayan yeni bir dizi ('a' olarak adlandırılır) (Arduino programınızda belirtilen virgülle ayrılmış) if((curr).equals(prev)) { // } else { //println("curr ", kür); //println("Önceki", önceki); işlev(); } } }

geçersiz işlev()

{ if (dbconnection.connect()) { // şimdi tekrar okuyun // dbconnection.query("SELECT * from rfid burada ID="+a[0]+""); while (dbconnection.next()) { ID = dbconnection.getInt("ID"); belirteç = dbconnection.getInt("belirteç"); Tutar = dbconnection.getInt("Miktar"); } if(belirteç==0) { println("Tamam"); textFont(f, 54); doldur(255, 0, 0, 160); text("Bilinmeyen Öğe Algılandı", 50, 300); gecikme(2000); } else if(token==1) { Toplam=Toplam+Miktar; dbconnection.query("güncelleme rfid set belirteci=2 burada ID="+a[0]+""); println("Tamam"); textFont(f, 24); doldur(255, 0, 0, 160); //text("Ürün Eklendi", 10, 30); gecikme(1000); } else if(token==2) { Toplam=Toplam-Miktar; dbconnection.query("güncelleme rfid set belirteci=1 burada ID="+a[0]+""); println("Tamam"); textFont(f, 24); doldur(255, 0, 0, 160); //text("Öğe Kaldırıldı", 10, 30); gecikme(1000); } başka { } dbconnection.close(); } başka { // bağlantı başarısız ! } }

geçersiz veri()

{ int konum=100; if (dbconnection.connect()) { dbconnection.query("rfid'den * SEÇ * burada belirteç=2"); while (dbconnection.next()) { İsim = dbconnection.getString("Ad"); Tutar = dbconnection.getInt("Miktar"); textFont(f, 24); doldur(0, 0, 255, 160); metin(Ad, 10, konum); doldur(0, 0, 0, 160); metin(Miktar, 215, pozisyon); pozisyon=konum+30; } } dbconnection.close(); }

Adım 5: Programın Yürütülmesi

Programın Yürütülmesi
Programın Yürütülmesi
Programın Yürütülmesi
Programın Yürütülmesi
Programın Yürütülmesi
Programın Yürütülmesi
Programın Yürütülmesi
Programın Yürütülmesi

Çalıştır düğmesine tıklayarak programı çalıştırın, açılır pencereyi kapatmayın, kapatma işlemi durduracak ve MySQL'de saklanan verileri görüntülemek için sorgunun altında…

6. Adım: Sonuç

Eğitimimi okuduğunuz için teşekkür etmek istiyorum. Yararlı bulup bir beğeni (favori) bırakırsanız veya bu talimatları yapmak için beni motive edecek herhangi bir şey sorarsanız sevinirim. merak ettiğiniz tüm soruları çekinmeden sorabilirsiniz…

Mutlu Kodlama Arduino…

Önerilen: