- Komponen yang Digunakan:
- Penjelasan Kerja:
- Penerangan Litar:
- Memasang wiPi Library di Raspberry Pi:
- Penjelasan Pengaturcaraan:
Kami sebelumnya telah menggunakan RFID dalam banyak projek RFID kami dan telah membangun Sistem Kehadiran berdasarkan RFID menggunakan 8051, di sini kita akan membina Sistem Kehadiran Berasaskan RFID menggunakan Raspberry Pi.
Dalam projek Sistem Kehadiran berdasarkan RFID ini, kami akan menerangkan kepada anda bahawa bagaimana kami boleh memberi kebenaran dan menghitung kehadiran secara automatik dengan menggunakan kad RFID. Teknologi RFID (Pengenalpastian dan Pengesanan Frekuensi Radio) biasanya digunakan di sekolah, kolej, pejabat dan stesen untuk pelbagai tujuan untuk mengesan orang secara automatik. Di sini kita akan menghitung kehadiran orang yang diberi kuasa dengan menggunakan RFID.
Sekiranya anda tidak biasa dengan Raspberry Pi, kami telah membuat siri tutorial dan projek raspberry pi, dengan berinteraksi dengan semua komponen asas dan beberapa projek mudah untuk bermula, periksa.
Komponen yang Digunakan:
- Raspberry Pi (dengan kad SD boot)
- Tekan butang
- Buzzer
- LCD 16x2
- 10k periuk
- Perintang 10K
- LED
- Perintang 1k
- Papan roti
- Pembaca RFID
- Kuasa 5 volt
- Tag RFID atau Kad
- Kabel Ethernet
- Menyambung wayar
Pembaca dan Teg RFID:
RFID adalah alat elektronik yang mempunyai dua bahagian - satu adalah RFID Reader dan yang lain adalah tag RFID atau Kad Apabila kita meletakkan tag RFID dekat dengan pembaca RFID, ia membaca data tag secara bersiri. Tag RFID mempunyai kod aksara 12 digit dalam gegelung. RFID ini berfungsi pada kadar baud 9600 bps. RFID menggunakan elektromagnet untuk memindahkan data dari Pembaca ke Tag atau Tag ke Pembaca.
Penjelasan Kerja:
Di sini Raspberry Pi 3 mengendalikan keseluruhan proses projek ini (Pengguna boleh menggunakan mana-mana Raspberry Pi Board). Pembaca RFID membaca ID kad RFID, data ini diterima oleh Raspberry Pi melalui UART, kemudian RPi mengesahkan kad tersebut dan menunjukkan hasilnya di layar LCD.
Apabila seseorang meletakkan tag RFID mereka di dekat pembaca RFID untuk mengimbas, RFID membaca data tag dan mengirimkannya ke Raspberry Pi. Kemudian Raspberry Pi membaca Nombor Pengenalan Unik dari tag RFID itu dan kemudian membandingkan data ini dengan data atau maklumat yang telah ditetapkan. Sekiranya data dipadankan dengan data yang telah ditentukan, Raspberry Pi akan meningkatkan kehadiran orang teg dengan satu orang dan jika dipadankan tidak sesuai, maka mikrokontroler menunjukkan mesej 'Kad Tidak Sah' pada LCD dan bel berbunyi secara berterusan untuk beberapa waktu. Dan di sini kami juga menambah butang tekan untuk melihat jumlah keseluruhan. kehadiran semua pelajar. Di sini kami telah mengambil 4 tag RFID di mana tiga digunakan untuk mencatat kehadiran tiga pelajar dan satu digunakan sebagai kad yang tidak sah.
Penerangan Litar:
Gambarajah litar untuk Projek Sistem Kehadiran Raspberry Pi ini sangat mudah, yang mengandungi Raspberry Pi 3, Pembaca RFID, Tag RFID, buzzer, LED dan LCD. Di sini Raspberry Pi mengawal proses lengkap seperti Membaca Data yang berasal dari Pembaca, membandingkan data dengan data yang telah ditentukan, buzzer memandu, memandu LED Status dan menghantar status ke paparan LCD. RFID Reader digunakan untuk Membaca Tag RFID. Buzzer digunakan untuk petunjuk dan didorong oleh transistor NPN terbina dalam. LCD digunakan untuk memaparkan status atau mesej di atasnya.
Sambungannya mudah. LCD disambungkan dengan Raspberry Pi dalam mod 4-bit. Pin RS, RW, dan EN LCD disambungkan secara langsung di wiringPi GPIO 11, gnd dan 10. Dan pin data disambungkan pada wiringPi GPIO 6, 5, 4 dan 1. Pot 10K digunakan untuk mengatur kontras atau kecerahan LCD. Buzzer disambungkan pada pendawaianPi GPIO pin 7 sehubungan dengan tanah. Tiga LED disambungkan untuk petunjuk pelajar dengan kad RFID masing-masing. Dan satu LED digunakan untuk menunjukkan bahawa sistem sudah siap untuk mengimbas kad RFID. Butang tekan juga disambungkan pada pendawaianPi GPIO pin 12 untuk memaparkan Attendance Count. Pembaca RFID disambungkan pada pin UART (pendawaian GPIO pin 16).
Memasang wiPi Library di Raspberry Pi:
Seperti di Python kita mengimport import RPi.GPIO sebagai fail header IO untuk menggunakan Pin GPIO Raspberry Pi, di sini dalam bahasa C kita perlu menggunakan wiringPi Library untuk menggunakan Pin GPIO dalam Program C kita. Kami dapat memasangnya dengan menggunakan perintah di bawah satu demi satu, anda boleh menjalankan perintah ini dari Terminal atau dari beberapa klien SSH seperti Putty (jika anda menggunakan Windows). Ikuti tutorial Bermula dengan Raspberry Pi kami untuk mengetahui lebih lanjut mengenai cara mengendalikan Raspberry Pi.
sudo apt-get install git-core sudo apt-get update sudo apt-get upgrade git clone git: //git.drogon.net/wiringPi cd wiringPi git pull origin cd wiringPi./build
Uji pemasangan perpustakaan wiringPi, gunakan arahan di bawah:
bacaan semula gpio -v gpio
Penjelasan Pengaturcaraan:
Sekarang pertama kita memasukkan beberapa perpustakaan dan menentukan pin yang perlu kita gunakan dalam kod ini.
#sertakan
Selepas itu, tentukan beberapa pemboleh ubah dan susunan untuk pengiraan dan simpan nilai & rentetan.
int sp; int count1 = 0, count2 = 0, count3 = 0; char ch; char rfid; int i = 0; temp char;
Kemudian Fungsi telah ditulis untuk melaksanakan keseluruhan proses. Sebahagian daripadanya diberikan di bawah:
Diberi fungsi lcdcmd void digunakan untuk menghantar arahan ke LCD
batal lcdcmd (int tidak bertanda tangan) {int temp = 0x80; digitalWrite (D4, temp & ch << 3); digitalWrite (D5, temp & ch << 2); digitalWrite (D6, temp & ch << 1); digitalWrite (D7, temp & ch); digitalWrite (RS, RENDAH); digitalWrite (EN, TINGGI);……………..
Memandangkan menulis tidak sah fungsi digunakan untuk menghantar data ke LCD.
kekosongan tulis (int tidak ditandatangani) {int temp = 0x80; digitalWrite (D4, temp & ch << 3); digitalWrite (D5, temp & ch << 2); digitalWrite (D6, temp & ch << 1); digitalWrite (D7, temp & ch); digitalWrite (RS, TINGGI); digitalWrite (EN, TINGGI);……………..
Diberi fungsi void clear () digunakan untuk membersihkan LCD, void setCursor digunakan untuk mengatur posisi kursor dan cetakan kosong untuk mengirim tali ke LCD.
kosongkan kosong () {lcdcmd (0x01); } void setCursor (int x, int y) {int set = 0; jika (y == 0) set = 128 + x; jika (y == 1) set = 192 + x; lcdcmd (set); } cetak tidak sah (char * str) {sambil (* str) {tulis (* str); str ++; }}
fungsi start void digunakan untuk menginisialisasi LCD dalam Mode 4-bit.
kekosongan bermula (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
fungsi void buzzer () dan void waiting () digunakan untuk membunyikan buzzer dan menunggu untuk meletakkan semula kad. Fungsi serialbegin tidak berfungsi digunakan untuk memulakan komunikasi bersiri.
buzzer kosong () {digitalWrite (buzz, TINGGI); kelewatan (1000); digitalWrite (buzz, RENDAH); } batal tunggu () {digitalWrite (led5, LOW); kelewatan (3000); } batal serialbegin (int baud) {if ((sp = serialOpen ("/ dev / ttyS0", baud)) <0) {jelas (); cetak ("Tidak dapat dibuka"); setCursor (0,1); cetak ("Port bersiri"); }}
Dalam fungsi setup void (), kita memulakan semua GPIO, LCD dan UART bersiri.
batal persediaan () {if (wiringPiSetup () == -1) {jelas (); cetak ("Tidak dapat memulakan"); setCursor (0,1); cetak ("wiringPi"); } pinMode (led1, OUTPUT); pinMode (led2, OUTPUT);……………………
Diberi void get_card () Fungsi digunakan untuk mendapatkan data dari pembaca RFID.
Dalam fungsi void main () , kami telah menunjukkan beberapa mesej di LCD dan membandingkan data tag dengan data yang telah ditentukan untuk mengesahkan kad dengan kod di bawah.
……………… jika (strncmp (rfid, "0900711B6003", 12) == 0) {count1 ++; jelas (); cetak ("Attd. Berdaftar"); setCursor (0,1); cetak ("Studnet 1"); digitalWrite (led1, TINGGI); buzzer (); digitalWrite (led1, RENDAH); tunggu (); } lain jika (strncmp (rfid, "090070FE6EE9", 12) == 0) {count2 ++; jelas (); cetak ("Attd. Berdaftar"); setCursor (0,1);………………
Akhirnya fungsi void check_button () digunakan untuk menunjukkan jumlah kehadiran pada butang tekan
batal check_button () {if (digitalRead (in1) == 0) {digitalWrite (led5, LOW); jelas (); setCursor (0,0); cetak ("std1 std2 std3");……………..
Lihat Kod Penuh untuk Sistem Kehadiran Raspberry Pi di bawah ini.