- Kullanılan Bileşenler:
- Çalışma Açıklaması:
- Devre Tanımı:
- Raspberry Pi'de kablolama Pi Kitaplığı kurulumu:
- Programlama Açıklaması:
Daha önce RFID projelerimizin çoğunda RFID kullandık ve 8051 kullanarak RFID tabanlı bir Seyirci Sistemi kurduk, burada Raspberry Pi kullanarak RFID Tabanlı Seyirci Sistemi kuracağız .
Bu RFID tabanlı Seyirci Sistemi projesinde, RFID kartlarını kullanarak katılımı otomatik olarak nasıl yetkilendirip sayabileceğimizi size açıklayacağız. RFID Teknolojisi (Radyo Frekansı Tanımlama ve Algılama), insanları otomatik olarak takip etmek için okullarda, kolejlerde, ofislerde ve istasyonlarda çeşitli amaçlarla yaygın olarak kullanılmaktadır. Burada yetkili bir kişinin katılımını RFID kullanarak sayacağız.
Raspberry Pi'ye aşina değilseniz, tüm temel bileşenlerle arayüz oluşturarak ve başlamak için bazı basit projelerle bir dizi eğitim ve ahududu pi projesi oluşturduk, kontrol edin.
Kullanılan Bileşenler:
- Raspberry Pi (booted SD kart ile)
- Butona basınız
- Buzzer
- 16x2 LCD
- 10k pot
- 10K Direnç
- LED
- 1k Direnç
- Ekmek tahtası
- RFID Okuyucu
- Güç 5 volt
- RFID etiketleri veya Kartları
- Ethernet kablosu
- Bağlantı telleri
RFID Okuyucu ve Etiketleri:
RFID, biri RFID Okuyucu ve diğeri RFID etiketi veya Kart olmak üzere iki parçadan oluşan bir elektronik cihazdır. RFID etiketini RFID okuyucunun yanına koyduğumuzda, etiket verilerini seri olarak okur. RFID etiketi, bir bobinde 12 haneli karakter koduna sahiptir. Bu RFID, 9600 bps baud hızında çalışıyor. RFID, verileri Reader'dan Etikete veya Etiketten Reader'a aktarmak için elektromıknatıs kullanır.
Çalışma Açıklaması:
Burada Raspberry Pi 3 bu projenin tüm sürecini kontrol ediyor (Kullanıcı herhangi bir Raspberry Pi Board kullanabilir). RFID Okuyucu, RFID kart kimliğini okur , bu veriler Raspberry Pi tarafından UART aracılığıyla alınır, ardından RPi kartı doğrular ve sonuçları LCD ekranda gösterir.
Bir kişi taramak için RFID etiketini RFID okuyucunun yakınına koyduğunda, RFID etiketin verilerini okur ve bunu Raspberry Pi'ye gönderir. Ardından Raspberry Pi, o RFID etiketinin Benzersiz Kimlik Numarasını okur ve ardından bu verileri önceden tanımlanmış veriler veya bilgilerle karşılaştırır. Veriler önceden tanımlanmış verilerle eşleştirilirse, Raspberry Pi etiketin kişisinin katılımını bir artırır ve eşleşmezse mikro denetleyici LCD'de 'Geçersiz Kart' mesajını gösterir ve sesli uyarı bir süre sürekli bip sesi çıkarır. Ve burada ayrıca toplam no'yu görmek için bir düğme ekledik. tüm öğrencilerin katılımı. Burada, üç öğrencinin devamını kaydetmek için kullanılan ve biri geçersiz kart olarak kullanılan 4 RFID etiketi aldık.
Devre Tanımı:
Raspberry Pi Seyirci Sistemi Projesi için devre şeması çok basittir ve Raspberry Pi 3, RFID Okuyucu, RFID Etiketleri, sesli uyarı, LED ve LCD içerir. Burada Raspberry Pi, Okuyucudan gelen Verilerin Okunması, verileri önceden tanımlanmış verilerle karşılaştırması, sesli uyarı, sürüş Durum LED'i ve durumu LCD ekrana gönderme gibi tüm süreci kontrol eder. RFID Okuyucu, RFID Etiketlerini Okumak için kullanılır. Buzzer, göstergeler için kullanılır ve dahili NPN transistör tarafından sürülür. LCD, üzerindeki durum veya mesajları görüntülemek için kullanılır.
Bağlantılar basit. LCD, Raspberry Pi ile 4 bit modunda bağlanır. LCD'nin RS, RW ve EN pini doğrudan kablolamaPi GPIO 11, gnd ve 10'a bağlanır. Ve veri pini kablolamaPi GPIO 6, 5, 4 ve 1'e bağlanır. LCD'nin kontrastını veya parlaklığını ayarlamak için bir 10K pot kullanılır. Buzzer, topraklama ile ilgili olarak Pi GPIO pin 7'ye bağlanır. Öğrenci gösterimi için ilgili RFID kartıyla üç LED bağlanır. Ve sistemin RFID kartını taramaya hazır olduğunu göstermek için bir LED kullanılır. Katılım Sayısını görüntülemek için kablo bağlantı noktasına bir basma düğmesi de bağlanmıştır. RFID okuyucu, UART pinine bağlanır (kablolama GPIO pin 16).
Raspberry Pi'de kablolama Pi Kitaplığı kurulumu:
Python'da olduğu gibi , Raspberry Pi'nin GPIO Pinlerini kullanmak için RPi.GPIO'yu IO başlık dosyası olarak içe aktarıyoruz , burada C dilinde GPIO Pinlerini C Programımızda kullanmak için wiringPi Kitaplığı kullanmamız gerekiyor. Aşağıdaki komutları tek tek kullanarak kurabiliriz, bu komutu Terminal'den veya Putty gibi bazı SSH istemcilerinden (Windows kullanıyorsanız) çalıştırabilirsiniz. Raspberry Pi'yi kullanma hakkında daha fazla bilgi edinmek için Raspberry Pi'ye Başlarken eğitimimizi inceleyin.
sudo apt-get install git-core sudo apt-get update sudo apt-get upgrade git clone git: //git.drogon.net/wiringPi cd wiringPi git orijinli cd wiringPi./build çekin
WiringPi kitaplığının kurulumunu test edin, aşağıdaki komutları kullanın:
gpio -v gpio readall
Programlama Açıklaması:
Şimdi önce bazı kitaplıkları ekledik ve bu kodda kullanmamız gereken pinleri tanımladık.
#Dahil etmek
Bundan sonra, hesaplama için bazı değişkenler ve diziler tanımlayın ve değerleri ve dizeleri saklayın.
int sp; int count1 = 0, count2 = 0, count3 = 0; char ch; char rfid; int i = 0; karakter sıcaklığı;
Daha sonra tüm süreci yürütmek için Fonksiyonlar yazılmıştır. Bazıları aşağıda verilmiştir:
Verilen void lcdcmd işlevi, LCD'ye komut göndermek için kullanılır
void lcdcmd (işaretsiz int ch) {int temp = 0x80; digitalWrite (D4, temp & ch << 3); digitalWrite (D5, temp & ch << 2); digitalWrite (D6, temp & ch << 1); digitalWrite (D7, temp & ch); digitalWrite (RS, DÜŞÜK); digitalWrite (EN, HIGH);……………..
Verilen boş yazma işlevi, verileri LCD'ye göndermek için kullanılır.
void write (unsigned int ch) {int temp = 0x80; digitalWrite (D4, temp & ch << 3); digitalWrite (D5, temp & ch << 2); digitalWrite (D6, temp & ch << 1); digitalWrite (D7, temp & ch); digitalWrite (RS, YÜKSEK); digitalWrite (EN, HIGH);……………..
Verilen boşluk berrak () fonksiyonu LCD temizlemek için kullanılır, boşluk setCursor seti imleç konumu ve kullanılır boşluk baskı LCD dize göndermek için.
void clear () {lcdcmd (0x01); } void setCursor (int x, int y) {int set = 0; eğer (y == 0) set = 128 + x; eğer (y == 1) set = 192 + x; lcdcmd (ayarlı); } void print (char * str) {while (* str) {write (* str); str ++; }}
LCD'yi 4 bit Modunda başlatmak için geçersiz başlatma işlevi kullanılır.
void başlangıç (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
void buzzer () ve void wait () fonksiyonları buzzerin çalması ve kartın tekrar yerleştirilmesi için bekle için kullanılır. İşlev void serialbegin , seri iletişimi başlatmak için kullanılır.
void buzzer () {digitalWrite (buzz, HIGH); gecikme (1000); digitalWrite (buzz, DÜŞÜK); } void wait () {digitalWrite (led5, LOW); gecikme (3000); } void serialbegin (int baud) {if ((sp = serialOpen ("/ dev / ttyS0", baud)) <0) {clear (); print ("Açılamıyor"); setCursor (0,1); print ("seri Bağlantı Noktası"); }}
In boşluk kurulum () fonksiyonu hepimiz GPIOs, LCD ve seri UART initiaze.
geçersiz kurulum () {if (wiringPiSetup () == -1) {clear (); print ("Başlatılamıyor"); setCursor (0,1); baskı ("wiringPi"); } pinMode (led1, OUTPUT); pinMode (led2, OUTPUT);……………………
Verilen void get_card () Fonksiyonu RFID okuyucudan veri almak için kullanılır.
In void main () fonksiyonu, biz LCD bazı mesajlar gösterdi ve kodunun altına olan kart doğrulamak için önceden tanımlanmış veri ile etiket verilerini karşılaştırdık.
……………… if (strncmp (rfid, "0900711B6003", 12) == 0) {count1 ++; açık(); print ("Attd. Registered"); setCursor (0,1); baskı ("Studnet 1"); digitalWrite (led1, YÜKSEK); sesli uyarı (); digitalWrite (led1, DÜŞÜK); Bekle(); } else if (strncmp (rfid, "090070FE6EE9", 12) == 0) {count2 ++; açık(); print ("Attd. Registered"); setCursor (0,1);………………
Son olarak, düğmeye basıldığında toplam katılımı göstermek için void check_button () işlevi kullanılır.
void check_button () {if (digitalRead (in1) == 0) {digitalWrite (led5, LOW); açık(); setCursor (0,0); baskı ("std1 std2 std3");……………..
Bu Raspberry Pi Katılım Sistemi için aşağıdaki Tam Kodu kontrol edin.