İçindekiler:
- Adım 1: Arduino ve RFID RC-522'yi Ayarlama (Fiziksel Bağlantı)
- Adım 2: Arduino Kodu.,
- 3. Adım: MySQL'i Ayarlama
- Adım 4: İşleme IDE'sini Ayarlama
- Adım 5: Programın Yürütülmesi
- 6. Adım: Sonuç
Video: RFID RC-522 ve Arduino Mega Kullanan Basit Süpermarket Uygulaması: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
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:
- Arduino Mega veya Arduino Uno (Mega kullandım)
- RFID-RC522
- 7 erkek dişi atlama teli
- Bazı kimlik kartları (isteğe bağlı)
- RFID Kitaplığı (Zorunlu, Bağlantı Aşağıda)
- Wamp sunucusu
- IDE 2.2.1 işleniyor (bundan daha fazlasını kullanmayın)
- İş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'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çin Wamp sunucusunu kurun ve veri depolamak için yapılandırın (
- wamp serveropen MySQL konsolunu çalıştırın
- veritabanı seç
- 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
- Processing IDE 2.2.1'i İndirin ve Kurun
- Yukarıda verilen ZIP'yi Belgelerim/İşleme/Kütüphaneler'e çıkarın
- Şimdi işleme IDE'sini açın ve kitaplığın yukarıdaki resimdeki gibi doğru kurulup kurulmadığını kontrol edin.
- 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
Ç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:
Basit Bir Nintendo LABO Hedef Uygulaması Nasıl Yapılır: 13 Adım
Basit Bir Nintendo LABO Hedef Uygulaması Nasıl Yapılır: Kız kardeşim ve ben yakın zamanda bir Nintendo Switch satın aldık. Tabii ki onunla birlikte gitmek için bazı oyunlarımız var. Bunlardan biri de Nintendo LABO Variety Kit'ti. Sonunda Toy-Con Garajına rastladım. Bazı şeyleri denedim ve işte o zaman
Telegram Uygulaması ile Basit Bir Nesnelerin İnterneti Nasıl Yapılır: 5 Adım
Telegram Uygulaması ile Basit Bir Nesnelerin İnterneti Nasıl Yapılır: Mevcut nesilde İnternet her şeydir. Nesnelerin İnterneti günümüz dünyasında önemli bir rol oynamaktadır. Çok fazla zaman kaybetmeden IoT'nin pratik çalışmasına geçebiliriz. Burada led'i kontrol edeceğiz ve ayrıca o
Basit Ev Otomasyonu (özel Bluetooth Uygulaması): 6 Adım
Basit Ev Otomasyonu (özel Bluetooth Uygulaması): Bu derste size basit bir ev otomasyonunun nasıl kurulacağını göstereceğim (yani ev aletlerimizi akıllı telefonumuzla kontrol edebiliriz)
Kodlama ve Android Uygulaması ile UNO R3, HC-05 ve L293D Motorshield Kullanan Arduino 4 Wheel Drive Bluetooth RC Araba: 8 Adım
UNO R3, HC-05 ve L293D Motorshield ile Kodlama ve Android Uygulaması Kullanan Arduino 4 Wheel Drive Bluetooth RC Car: Bugün sizlere HC 05, L293 motor shield kullanarak arduino 4 çeker bluetooth RC araba nasıl yapılır onu anlatacağım, 4 DC motor, arabayı kontrol etmek için android için kodlama ve uygulama ile. Kullanılan bileşen:-1-Arduino UNO R32-Bluetooth HC-053-Motorshield L293
BLE Modülleri için Basit IOS Uygulaması: 4 Adım
BLE Modülleri için Basit IOS Uygulaması: Bu Eğitilebilir Tablo, çok temel işlevselliğe sahip bir iOS uygulamasını nasıl oluşturabileceğinizi açıklar. Bu Eğitilebilir Tablo, bir iOS BLE uygulaması yapma sürecinin tamamından geçmeyecektir. Yalnızca bazı önemli unsurlara yüksek düzeyde bir genel bakış sunacaktır