- Použité komponenty:
- Pracovné vysvetlenie:
- Popis obvodu:
- Inštalácia knižnice wiring Pi v Raspberry Pi:
- Vysvetlenie programovania:
Predtým sme RFID používali v mnohých našich projektoch RFID a už sme vytvorili dochádzkový systém založený na RFID pomocou 8051, tu budeme stavať dochádzkový systém založený na RFID pomocou Raspberry Pi.
V tomto projekte dochádzkového systému založeného na RFID vám vysvetlíme, že ako môžeme automatizovať autorizáciu a počítanie dochádzky pomocou kariet RFID. Technológia RFID (rádiofrekvenčná identifikácia a detekcia) sa bežne používa v školách, vysokých školách, kanceláriách a staniciach na rôzne účely na automatické sledovanie osôb. Tu budeme počítať dochádzku oprávnenej osoby pomocou RFID.
Ak nie ste oboznámení s Raspberry Pi, vytvorili sme sériu tutoriálov a projektov Raspberry Pi, ktorých prepojenie je so všetkými základnými komponentmi a niekoľko jednoduchých projektov, ktoré by ste mali začať.
Použité komponenty:
- Raspberry Pi (so zavedenou kartou SD)
- Stlačte tlačidlo
- Bzučiak
- 16x2 LCD
- 10k hrniec
- 10K rezistor
- LED
- 1k rezistor
- Chlebová doska
- RFID čítačka
- Napájanie 5 voltov
- RFID štítky alebo karty
- Ethernetový kábel
- Pripojovacie vodiče
Čítačka RFID a štítky:
RFID je elektronické zariadenie, ktoré má dve časti - jednu čítačku RFID a druhú štítok alebo kartu RFID. Keď umiestnime štítok RFID do blízkosti čítačky RFID, číta údaje štítku sériovo. Značka RFID má v cievke 12-miestny znakový kód. Táto RFID pracuje s prenosovou rýchlosťou 9600 bps. RFID používa elektromagnet na prenos údajov z čítačky do značky alebo značky do čítačky.
Pracovné vysvetlenie:
Tu Raspberry Pi 3 ovláda celý proces tohto projektu (Užívateľ môže použiť akýkoľvek Raspberry Pi Board). Čítačka RFID číta ID RFID karty, tieto údaje prijíma Raspberry Pi prostredníctvom UART, potom RPi kartu overí a zobrazí výsledky na obrazovke LCD.
Keď osoba položí svoj RFID štítok blízko nad čítačku RFID, aby skenoval, RFID načíta údaje štítka a odošle ich na Raspberry Pi. Potom Raspberry Pi načíta jedinečné identifikačné číslo tohto štítku RFID a potom porovná tieto údaje s preddefinovanými údajmi alebo informáciami. Ak sa údaje zhodujú s preddefinovanými údajmi, Raspberry Pi zvýši účasť osoby značky o jednu, a ak sa nezhoduje, mikrokontrolér zobrazí na displeji správu „Neplatná karta“ a bzučiak nejaký čas nepretržite pípne. A tu sme tiež pridali tlačidlo, aby sme videli celkové č. dochádzky všetkých študentov. Tu sme vzali 4 RFID tagy, v ktorých sa tri používajú na zaznamenávanie dochádzky troch študentov a jeden sa používa ako neplatná karta.
Popis obvodu:
Schéma zapojenia tohto projektu dochádzkového systému Raspberry Pi je veľmi jednoduchá a obsahuje Raspberry Pi 3, čítačku RFID, štítky RFID, bzučiak, LED a LCD. Raspberry Pi tu riadi celý proces, ako je čítanie údajov prichádzajúcich z čítačky, porovnanie údajov s preddefinovanými údajmi, bzučiak jazdy, stavová LED dióda jazdy a zasielanie stavu na LCD displej. Čítačka RFID sa používa na čítanie štítkov RFID. Bzučiak sa používa na indikáciu a je poháňaný zabudovaným tranzistorom NPN. LCD sa používa na zobrazovanie stavu alebo správ.
Pripojenia sú jednoduché. LCD je pripojený k Raspberry Pi v 4-bitovom režime. Pin RS, RW a EN LCD je priamo pripojený k wiringPi GPIO 11, gnd a 10. A dátový pin je zapojený k wiringPi GPIO 6, 5, 4 a 1. Na nastavenie kontrastu alebo jasu LCD sa používa 10K potenciometr. Bzučiak je zapojený na vodiči Pi GPIO pin 7 vzhľadom na zem. Tri LED sú pripojené na indikáciu študenta s príslušnou kartou RFID. A jedna LED dióda ukazuje, že systém je pripravený na skenovanie karty RFID. Na zapojeniePi GPIO pin 12 je tiež pripojené tlačidlo na zobrazenie počtu dochádzok. Čítačka RFID je pripojená na pin UART (zapojenie GPIO pin 16).
Inštalácia knižnice wiring Pi v Raspberry Pi:
Rovnako ako v Pythone importujeme import RPi.GPIO ako hlavičkový súbor IO, aby sme mohli použiť GPIO piny Raspberry Pi, tu v jazyku C musíme na použitie GPIO pinov v našom C programe použiť wiringPi Library. Môžeme ho nainštalovať pomocou nasledujúcich príkazov jeden po druhom, tento príkaz môžete spustiť z terminálu alebo z niektorého klienta SSH, ako je Putty (ak používate Windows). Prejdite si náš návod Začíname s Raspberry Pi a získajte viac informácií o zaobchádzaní s 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
Vyskúšajte inštaláciu knižnice wiringPi, použite nasledujúce príkazy:
gpio -v gpio readall
Vysvetlenie programovania:
Teraz sme najskôr zahrnuli niektoré knižnice a definovali piny, ktoré musíme v tomto kóde použiť.
#include
Potom definujte niektoré premenné a pole pre výpočet a uložte hodnoty a reťazce.
int sp; int pocet1 = 0, pocet2 = 0, pocet3 = 0; char ch; char rfid; int i = 0; char temp;
Potom boli napísané Funkcie na vykonanie celého procesu. Niektoré z nich sú uvedené nižšie:
Daná void funkcia lcdcmd sa používa na odoslanie príkazu na LCD
void lcdcmd (unsigned int ch) {int temp = 0x80; digitalWrite (D4, teplota & ch << 3); digitalWrite (D5, teplota & ch << 2); digitalWrite (D6, teplota & ch << 1); digitalWrite (D7, teplota & ch); digitalWrite (RS, LOW); digitalWrite (EN, HIGH);……………..
Vzhľadom k tomu, void write funkcia sa používa pre odosielanie dát na LCD.
void write (unsigned int ch) {int temp = 0x80; digitalWrite (D4, teplota & ch << 3); digitalWrite (D5, teplota & ch << 2); digitalWrite (D6, teplota & ch << 1); digitalWrite (D7, teplota & ch); digitalWrite (RS, HIGH); digitalWrite (EN, HIGH);……………..
Ak je na vyčistenie LCD použitá funkcia void clear () , void setCursor sa používa na nastavenie polohy kurzora a void print pre odoslanie reťazca na LCD.
void clear () {lcdcmd (0x01); } void setCursor (int x, int y) {int set = 0; if (y == 0) set = 128 + x; if (y == 1) set = 192 + x; lcdcmd (sada); } void print (char * str) {while (* str) {write (* str); str ++; }}
Funkcia void start sa používa na inicializáciu LCD v 4-bitovom režime.
void begin (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
void buzzer () a void wait () sa používajú na pípnutie bzučiaka a na čakanie na opätovné vloženie karty. Funkcia void serialbegin sa používa na inicializáciu sériovej komunikácie.
void buzzer () {digitalWrite (buzz, HIGH); oneskorenie (1 000); digitalWrite (buzz, LOW); } void wait () {digitalWrite (led5, LOW); oneskorenie (3 000); } void serialbegin (int baud) {if ((sp = serialOpen ("/ dev / ttyS0", baud)) <0) {clear (); tlač („Nedá sa otvoriť“); setCursor (0,1); tlač ("sériový port"); }}
Vo funkcii void setup () inicializujeme všetky GPIO, LCD a sériové UART.
void setup () {if (wiringPiSetup () == -1) {clear (); print ("Nie je možné spustiť"); setCursor (0,1); print ("wiringPi"); } pinMode (led1, VÝSTUP); pinMode (led2, VÝSTUP);……………………
Daná void funkcia get_card () sa používa na získanie údajov z čítačky RFID.
Vo funkcii void main () sme ukázali niektoré správy na LCD displeji a porovnali sme údaje tagu s preddefinovanými údajmi, aby sme kartu overili pomocou nižšie uvedeného kódu.
……………… if (strncmp (rfid, "0900711B6003", 12) == 0) {count1 ++; jasný(); print ("Attd. Registrovaný"); setCursor (0,1); tlač ("Studnet 1"); digitalWrite (led1, HIGH); bzučiak (); digitalWrite (led1, LOW); počkaj (); } else if (strncmp (rfid, "090070FE6EE9", 12) == 0) {count2 ++; jasný(); print ("Attd. Registrovaný"); setCursor (0,1);………………
Funkcia void check_button () sa nakoniec používa na zobrazenie celkovej dochádzky pri stlačení tlačidla.
void check_button () {if (digitalRead (in1) == 0) {digitalWrite (led5, LOW); jasný(); setCursor (0,0); print ("std1 std2 std3");……………..
Skontrolujte celý kód tohto dochádzkového systému Raspberry Pi nižšie.