- Mga Ginamit na Mga Bahagi:
- Paggawa ng Paliwanag:
- Paglalarawan ng Circuit:
- Pag-install ng mga kablePi Library sa Raspberry Pi:
- Paliwanag sa Programming:
Ginamit namin dati ang RFID sa marami sa aming mga proyekto sa RFID at nakabuo na ng isang RFID based Attendance System na gumagamit ng 8051, dito bubuo kami ng RFID Base Attendance System gamit ang Raspberry Pi.
Sa proyektong Sistema ng Attendance System na batay sa RFID, ipapaliwanag namin sa iyo na paano namin pahihintulutan at mabibilang ang pagdalo nang awtomatiko sa pamamagitan ng paggamit ng mga RFID card. Ang Teknolohiya ng RFID (Radio Frequency Identification and Detection) ay karaniwang ginagamit sa mga paaralan, kolehiyo, tanggapan at istasyon para sa iba't ibang mga layunin upang awtomatikong subaybayan ang mga tao. Dito bibilangin namin ang pagdalo ng isang awtorisadong tao sa pamamagitan ng paggamit ng RFID.
Kung hindi ka pamilyar sa Raspberry Pi, lumikha kami ng isang serye ng mga tutorial at proyekto ng raspberry pi, na may interfacing sa lahat ng pangunahing bahagi at ilang simpleng proyekto upang magsimula, suriin.
Mga Ginamit na Mga Bahagi:
- Raspberry Pi (na may boot na SD card)
- Push button
- Buzzer
- 16x2 LCD
- 10k palayok
- 10K Resistor
- LED
- 1k Resistor
- Bread board
- RFID Reader
- Lakas 5 volt
- Mga RFID tag o Card
- Ethernet Cable
- Mga kumokonekta na mga wire
RFID Reader at Mga Tag:
Ang RFID ay isang aparato na electronics na mayroong dalawang bahagi - ang isa ay RFID Reader at iba pa ay RFID tag o Card. Kapag inilalagay namin ang RFID tag malapit sa RFID reader, binabasa nito ang data ng tag nang serial. Ang tag ng RFID ay mayroong 12 digit na code ng character sa isang coil. Ang RFID na ito ay gumagana sa baud rate na 9600 bps. Gumagamit ang RFID ng electromagnet upang ilipat ang data mula sa Reader sa Tag o Tag sa Reader.
Paggawa ng Paliwanag:
Dito kinokontrol ng Raspberry Pi 3 ang buong proseso ng proyektong ito (Maaaring gumamit ang User ng anumang Lupon ng Raspberry Pi). Binabasa ng RFID Reader ang RFID card ID, ang data na ito ay natanggap ng Raspberry Pi sa pamamagitan ng UART, pagkatapos ay napatunayan ng RPi ang card at ipinapakita ang mga resulta sa LCD screen.
Kapag inilagay ng isang tao ang kanilang tag na RFID malapit sa RFID reader upang mag-scan, binabasa ng RFID ang data ng tag at ipinapadala ito sa Raspberry Pi. Pagkatapos ay binabasa ng Raspberry Pi ang Natatanging Identification Number ng tag na RFID at pagkatapos ay ihinahambing ang data na ito sa paunang natukoy na data o impormasyon. Kung ang data ay naitugma sa paunang natukoy na data, pagkatapos ay ang Raspberry Pi ay nagdaragdag ng pagdalo ng tao ng tag ng isa at kung naitugma ay hindi naitugma pagkatapos ay ipinapakita ng microcontroller na 'Di-wastong Card' na mensahe sa LCD at ang buzzer ay patuloy na umiikot sa ilang oras. At dito din nagdagdag kami ng isang pindutan ng push upang makita ang kabuuang hindi. ng pagdalo ng lahat ng mag-aaral. Kumuha kami dito ng 4 na mga tag ng RFID kung saan tatlo ang ginagamit upang maitala ang pagdalo ng tatlong mag-aaral at ang isa ay ginagamit bilang isang hindi wastong card.
Paglalarawan ng Circuit:
Ang diagram ng circuit para sa Raspberry Pi Attendance System Project na ito ay napaka-simple, na naglalaman ng Raspberry Pi 3, RFID Reader, RFID Tags, buzzer, LED at LCD. Dito kinokontrol ng Raspberry Pi ang kumpletong proseso tulad ng Pagbasa ng Data na nagmumula sa Reader, paghahambing ng data sa paunang natukoy na data, pagmamaneho ng buzzer, pagmamaneho ng Status LED at pagpapadala ng katayuan sa LCD display. Ginagamit ang RFID Reader upang Basahin ang Mga RFID Tag. Ginagamit ang buzzer para sa mga pahiwatig at hinihimok ng inbuilt na NPN transistor. Ginagamit ang LCD para sa pagpapakita ng katayuan o mga mensahe dito.
Ang mga koneksyon ay simple. Ang LCD ay konektado sa Raspberry Pi sa 4-bit mode. Ang LCD, RS, RW, at EN pin ay direktang konektado sa mga kablePi GPIO 11, gnd at 10. At ang data pin ay konektado sa mga kablePi GPIO 6, 5, 4 at 1. Ang isang 10K na palayok ay ginagamit upang itakda ang kaibahan o ningning ng LCD. Ang buzzer ay konektado sa mga kablePi GPIO pin 7 na may paggalang sa lupa. Tatlong LEDs ay konektado para sa indikasyon ng mag-aaral sa kani-kanilang RFID card. At isang LED ang ginamit upang ipakita na handa nang i-scan ng system ang RFID card. Ang isang pindutan ng push ay konektado din sa mga kablePi GPIO pin 12 upang ipakita ang Bilang ng Pagdalo. Ang RFID reader ay konektado sa UART pin (mga kable ng GPIO pin 16).
Pag-install ng mga kablePi Library sa Raspberry Pi:
Tulad ng sa Python ina- import namin ang pag- import ng RPi.GPIO bilang IO header file upang magamit ang GPIO Pins ng Raspberry Pi, dito sa wikang C kailangan nating gumamit ng wiringPi Library upang magamit ang GPIO Pins sa aming C Program. Maaari naming mai-install ito sa pamamagitan ng paggamit ng mga utos sa ibaba isa-isa, maaari mong patakbuhin ang utos na ito mula sa Terminal o mula sa ilang SSH client tulad ng Putty (kung gumagamit ka ng Windows). Dumaan sa aming Pagsisimula sa tutorial na Raspberry Pi upang malaman ang higit pa tungkol sa paghawak ng 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
Subukan ang pag-install ng mga kable ng library ngPi, gamitin sa ibaba ang mga utos:
gpio -v gpio readall
Paliwanag sa Programming:
Ngayon ay isinama muna namin ang ilang mga aklatan at tinukoy ang mga pin na kailangan naming gamitin sa code na ito.
# isama
Pagkatapos nito, tukuyin ang ilang mga variable at array para sa pagkalkula at mga halaga ng tindahan at mga string.
int sp; int count1 = 0, count2 = 0, count3 = 0; char ch; char rfid; int i = 0; char temp;
Pagkatapos ang Function ay nakasulat upang maisagawa ang buong proseso. Ang ilan sa mga ito ay ibinibigay sa ibaba:
Naibigay na walang bisa lcdcmd function ay ginagamit para sa pagpapadala ng utos sa 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, TAAS);……………..
Ang pagpapaandar na walang bisa na pagsulat ay ginagamit para sa pagpapadala ng data sa LCD.
walang bisa ang pagsusulat (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, MATAAS); digitalWrite (EN, TAAS);……………..
Dahil sa walang bisa na pag- andar () ay ginagamit upang i-clear ang LCD, ang void setCursor ay ginagamit upang itakda ang posisyon ng cursor at walang bisa na pag-print para sa pagpapadala ng string sa LCD.
walang bisa () {lcdcmd (0x01); } void setCursor (int x, int y) {int set = 0; kung (y == 0) itakda = 128 + x; kung (y == 1) itakda = 192 + x; lcdcmd (set); } walang bisa na print (char * str) {habang (* str) {isulat (* str); str ++; }}
Ginagamit ang walang bisa na pag- andar upang simulan ang LCD sa 4-bit Mode.
walang bisa magsimula (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
ang void buzzer () at void wait () na mga function ay ginagamit para sa pag-beep ng buzzer at para sa paghihintay na muling paglalagay ng card. Ginagamit ang function void serialbegin upang simulan ang serial komunikasyon.
void buzzer () {digitalWrite (buzz, HIGH); pagkaantala (1000); digitalWrite (buzz, LOW); } walang bisa na paghihintay () {digitalWrite (led5, LOW); pagkaantala (3000); } void serialbegin (int baud) {if ((sp = serialOpen ("/ dev / ttyS0", baud)) <0) {clear (); i-print ("Hindi mabuksan"); setCursor (0,1); i-print ("serial Port"); }}
Sa walang bisa na pag-setup () na pag- andar namin initiaze ang lahat ng mga GPIO, LCD at serial UART.
void setup () {if (wiringPiSetup () == -1) {clear (); i-print ("Hindi masimulan"); setCursor (0,1); i-print ("mga kablePi"); } pinMode (led1, OUTPUT); pinMode (led2, OUTPUT);……………………
Dahil sa void get_card () Ginagamit ang pagpapaandar upang makakuha ng data mula sa RFID reader.
Sa walang bisa na pangunahing () pag- andar, nagpakita kami ng ilang mga mensahe sa LCD at inihambing ang data ng tag sa paunang natukoy na data upang mapatunayan ang card na may code sa ibaba.
……………… kung (strncmp (rfid, "0900711B6003", 12) == 0) {count1 ++; malinaw (); print ("Nakarehistro ang Attd."); setCursor (0,1); i-print ("Studnet 1"); digitalWrite (led1, TAAS); buzzer (); digitalWrite (led1, LOW); maghintay (); } iba pa kung (strncmp (rfid, "090070FE6EE9", 12) == 0) {count2 ++; malinaw (); print ("Nakarehistro ang Attd."); setCursor (0,1);………………
Sa wakas ay walang bisa ang pag-andar ng check_button () na ginagamit para sa pagpapakita ng kabuuang pagdalo sa pindutan ng pindutan.
walang bisa ang check_button () {kung (digitalRead (in1) == 0) {digitalWrite (led5, LOW); malinaw (); setCursor (0,0); i-print ("std1 std2 std3");……………..
Suriin ang Buong Code para sa Raspberry Pi Attendance System na ito sa ibaba.