- Komponen yang Digunakan:
- Penjelasan Kerja:
- Deskripsi Sirkuit:
- Menginstal Perpustakaan wiringPi di Raspberry Pi:
- Penjelasan Pemrograman:
Kami sebelumnya telah menggunakan RFID di banyak proyek RFID kami dan telah membangun Sistem Absensi berbasis RFID menggunakan 8051, di sini kami akan membangun Sistem Absensi Berbasis RFID menggunakan Raspberry Pi.
Dalam proyek Sistem Absensi berbasis RFID ini, kami akan menjelaskan kepada Anda bahwa bagaimana kami dapat mengotorisasi dan menghitung kehadiran secara otomatis dengan menggunakan kartu RFID. Teknologi RFID (Radio Frequency Identification and Detection) biasanya digunakan di sekolah, perguruan tinggi, kantor, dan stasiun untuk berbagai keperluan guna melacak orang secara otomatis. Di sini kami akan menghitung kehadiran orang yang berwenang dengan menggunakan RFID.
Jika Anda tidak terbiasa dengan Raspberry Pi, kami telah membuat serangkaian tutorial dan proyek raspberry pi, dengan antarmuka dengan semua komponen dasar dan beberapa proyek sederhana untuk memulai, lakukan pengecekan.
Komponen yang Digunakan:
- Raspberry Pi (dengan kartu SD yang di-boot)
- Tekan tombol
- Bel
- LCD 16x2
- 10k pot
- Resistor 10K
- LED
- 1k Resistor
- Papan roti
- Pembaca RFID
- Daya 5 volt
- Tag atau Kartu RFID
- Kabel Ethernet
- Menghubungkan kabel
Pembaca dan Tag RFID:
RFID adalah perangkat elektronik yang memiliki dua bagian - satu adalah Pembaca RFID dan lainnya adalah tag atau Kartu RFID. Ketika kita meletakkan tag RFID di dekat pembaca RFID, itu membaca data tag secara serial. Tag RFID memiliki 12 digit kode karakter dalam sebuah kumparan. RFID ini bekerja pada baud rate 9600 bps. RFID menggunakan elektromagnet untuk mentransfer data dari Pembaca ke Tag atau Tag ke Pembaca.
Penjelasan Kerja:
Di sini Raspberry Pi 3 mengendalikan seluruh proses proyek ini (Pengguna dapat menggunakan Papan Raspberry Pi apa saja). Pembaca RFID membaca ID kartu RFID, data ini diterima oleh Raspberry Pi melalui UART, kemudian RPi memvalidasi kartu tersebut dan menunjukkan hasilnya pada layar LCD.
Ketika seseorang meletakkan tag RFID mereka di dekat pembaca RFID untuk dipindai, RFID membaca data tag dan mengirimkannya ke Raspberry Pi. Kemudian Raspberry Pi membaca Unique Identification Number dari tag RFID tersebut dan kemudian membandingkan data ini dengan data atau informasi yang telah ditentukan sebelumnya. Jika data cocok dengan data yang telah ditentukan, maka Raspberry Pi menambah kehadiran orang dari tag tersebut satu per satu dan jika cocok tidak cocok maka mikrokontroler akan menampilkan pesan 'Kartu Tidak Valid' pada LCD dan bel berbunyi bip terus menerus selama beberapa waktu. Dan di sini kami juga menambahkan tombol push untuk melihat total no. kehadiran semua siswa. Di sini kami telah mengambil 4 tag RFID di mana tiga digunakan untuk mencatat kehadiran tiga siswa dan satu digunakan sebagai kartu yang tidak valid.
Deskripsi Sirkuit:
Diagram rangkaian untuk Proyek Sistem Absensi Raspberry Pi ini sangat sederhana, yang berisi Raspberry Pi 3, Pembaca RFID, Tag RFID, buzzer, LED dan LCD. Di sini Raspberry Pi mengontrol proses lengkap seperti Membaca Data yang berasal dari Pembaca, membandingkan data dengan data yang telah ditentukan, menggerakkan bel, LED Status mengemudi dan mengirim status ke layar LCD. Pembaca RFID digunakan untuk Membaca Tag RFID. Buzzer digunakan untuk indikasi dan digerakkan oleh transistor NPN bawaan. LCD digunakan untuk menampilkan status atau pesan di dalamnya.
Koneksi itu sederhana. LCD terhubung dengan Raspberry Pi dalam mode 4-bit. Pin LCD RS, RW, dan EN terhubung langsung ke wiringPi GPIO 11, gnd dan 10. Dan pin data terhubung ke wiringPi GPIO 6, 5, 4 dan 1. Pot 10K digunakan untuk mengatur kontras atau kecerahan LCD. Buzzer terhubung ke wiringPi GPIO pin 7 dengan memperhatikan ground. Tiga LED terhubung untuk indikasi siswa dengan masing-masing kartu RFID. Dan satu LED digunakan untuk menunjukkan bahwa sistem siap untuk memindai kartu RFID. Sebuah tombol tekan juga terhubung ke wiringPi GPIO pin 12 untuk menampilkan Hitungan Kehadiran. Pembaca RFID terhubung pada pin UART (kabel GPIO pin 16).
Menginstal Perpustakaan wiringPi di Raspberry Pi:
Seperti di Python kami mengimpor impor RPi.GPIO sebagai file header IO untuk menggunakan Pin GPIO dari Raspberry Pi, di sini dalam bahasa C kita perlu menggunakan Perpustakaan wiringPi untuk menggunakan Pin GPIO di Program C kami. Kami dapat menginstalnya dengan menggunakan perintah di bawah ini satu per satu, Anda dapat menjalankan perintah ini dari Terminal atau dari beberapa klien SSH seperti Putty (jika Anda menggunakan Windows). Buka tutorial Memulai Raspberry Pi kami untuk mempelajari lebih lanjut tentang menangani 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 instalasi pustaka wiringPi, gunakan perintah di bawah ini:
gpio -v gpio readall
Penjelasan Pemrograman:
Sekarang pertama-tama kami telah menyertakan beberapa pustaka dan menentukan pin yang perlu kami gunakan dalam kode ini.
#include
Setelah itu, tentukan beberapa variabel dan larik untuk kalkulasi dan simpan nilai & string.
int sp; int hitung1 = 0, hitung2 = 0, hitung3 = 0; char ch; char rfid; int i = 0; suhu arang;
Kemudian Fungsi telah ditulis untuk menjalankan seluruh proses. Beberapa dari mereka diberikan di bawah ini:
Diberikan fungsi lcdcmd void digunakan untuk mengirimkan perintah ke LCD
void lcdcmd (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, LOW); digitalWrite (EN, HIGH);……………..
Mengingat fungsi tulis kosong digunakan untuk mengirim data ke LCD.
batal tulis (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, HIGH); digitalWrite (EN, HIGH);……………..
Mengingat fungsi void clear () digunakan untuk membersihkan LCD, void setCursor digunakan untuk mengatur posisi kursor dan void print untuk mengirimkan string ke LCD.
batal jelas () {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); } void print (char * str) {while (* str) {write (* str); str ++; }}
Fungsi void begin digunakan untuk menginisialisasi LCD dalam Mode 4-bit.
batal mulai (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
Fungsi void buzzer () dan void wait () digunakan untuk membunyikan bel dan menunggu untuk menempatkan kembali kartu. Fungsi void serialbegin digunakan untuk menginisialisasi komunikasi serial.
void buzzer () {digitalWrite (buzz, HIGH); penundaan (1000); digitalWrite (buzz, LOW); } void wait () {digitalWrite (led5, LOW); penundaan (3000); } batal serialbegin (int baud) {if ((sp = serialOpen ("/ dev / ttyS0", baud)) <0) {clear (); print ("Tidak dapat membuka"); setCursor (0,1); cetak ("Port serial"); }}
Dalam fungsi void setup () kami memulai semua GPIO, LCD dan serial UART.
void setup () {if (wiringPiSetup () == -1) {clear (); print ("Tidak dapat memulai"); setCursor (0,1); cetak ("wiringPi"); } pinMode (led1, OUTPUT); pinMode (led2, OUTPUT);……………………
Diberikan void get_card () Fungsi digunakan untuk mendapatkan data dari RFID reader.
Pada fungsi void main () , kami telah menampilkan beberapa pesan pada LCD dan membandingkan data tag dengan data yang telah ditentukan untuk memvalidasi kartu dengan kode di bawah ini.
……………… if (strncmp (rfid, "0900711B6003", 12) == 0) {count1 ++; bersih(); print ("Attd. Terdaftar"); setCursor (0,1); cetak ("Studnet 1"); digitalWrite (led1, HIGH); bel(); digitalWrite (led1, LOW); Tunggu(); } lain jika (strncmp (rfid, "090070FE6EE9", 12) == 0) {count2 ++; bersih(); print ("Attd. Terdaftar"); setCursor (0,1);………………
Terakhir, fungsi void check_button () digunakan untuk menunjukkan jumlah kehadiran saat tombol ditekan.
void check_button () {if (digitalRead (in1) == 0) {digitalWrite (led5, LOW); bersih(); setCursor (0,0); cetak ("std1 std2 std3");……………..
Periksa Kode Lengkap untuk Sistem Kehadiran Raspberry Pi di bawah ini.