- Použité komponenty:
- Pracovní vysvětlení:
- Popis obvodu:
- Instalace knihovny wiringPi do Raspberry Pi:
- Vysvětlení programování:
Dříve jsme používali RFID v mnoha našich projektech RFID a již jsme vybudovali docházkový systém založený na RFID pomocí 8051, zde budeme stavět docházkový systém založený na RFID pomocí Raspberry Pi.
V tomto projektu docházkového systému založeného na RFID vám vysvětlíme, že jak můžeme pomocí RFID karet automaticky autorizovat a počítat docházku. Technologie RFID (Radio Frequency Identification and Detection) se běžně používá ve školách, vysokých školách, kancelářích a stanicích pro různé účely k automatickému sledování lidí. Zde budeme počítat účast oprávněné osoby pomocí RFID.
Pokud nejste obeznámeni s Raspberry Pi, vytvořili jsme řadu tutoriálů a projektů Raspberry Pi, s propojením se všemi základními komponentami a několika jednoduchými projekty, které je třeba začít, zkontrolujte.
Použité komponenty:
- Raspberry Pi (se zavedenou kartou SD)
- Stiskněte tlačítko
- Bzučák
- 16x2 LCD
- 10k hrnec
- 10K rezistor
- VEDENÝ
- 1k rezistor
- Chlebová deska
- Čtečka RFID
- Napájení 5 voltů
- RFID tagy nebo karty
- Ethernetový kabel
- Připojovací vodiče
Čtečka RFID a štítky:
RFID je elektronické zařízení, které má dvě části - jednu čtečku RFID a druhou značku nebo kartu RFID. Když umístíme RFID tag do blízkosti čtečky RFID, načte data tagu sériově. Značka RFID má v cívce 12místný znakový kód. Tato RFID pracuje s přenosovou rychlostí 9600 b / s. RFID používá elektromagnet k přenosu dat ze snímače do štítku nebo štítku do snímače.
Pracovní vysvětlení:
Zde Raspberry Pi 3 řídí celý proces tohoto projektu (Uživatel může použít jakoukoli desku Raspberry Pi). Čtečka RFID čte ID karty RFID, tato data přijímá Raspberry Pi prostřednictvím UART, poté RPi ověří kartu a zobrazí výsledky na obrazovce LCD.
Když osoba přiloží svoji RFID značku blízko čtečky RFID ke skenování, RFID načte data značky a odešle je na Raspberry Pi. Poté Raspberry Pi načte jedinečné identifikační číslo této značky RFID a poté porovná tato data s předdefinovanými daty nebo informacemi. Pokud jsou data spárována s předdefinovanými daty, Raspberry Pi zvýší návštěvnost osoby tagu o jednu a pokud se spárovaná data neshodují, mikrokontrolér zobrazí na LCD zprávu „Neplatná karta“ a bzučák po určitou dobu nepřetržitě pípá. A zde jsme také přidali tlačítko pro zobrazení celkového počtu. docházky všech studentů. Zde jsme pořídili 4 RFID tagy, ve kterých jsou tři použity k zaznamenání docházky tří studentů a jeden je použit jako neplatná karta.
Popis obvodu:
Schéma zapojení pro tento projekt docházkového systému Raspberry Pi je velmi jednoduché a obsahuje Raspberry Pi 3, čtečku RFID, štítky RFID, bzučák, LED a LCD. Zde Raspberry Pi řídí celý proces, jako je čtení dat přicházejících ze čtečky, porovnávání dat s předdefinovanými daty, bzučák jízdy, stavová LED řízení a odesílání stavu na LCD displej. Čtečka RFID se používá ke čtení štítků RFID. Bzučák se používá pro indikace a je poháněn vestavěným tranzistorem NPN. LCD se používá k zobrazování stavu nebo zpráv na něm.
Připojení je jednoduché. LCD je připojen k Raspberry Pi ve 4bitovém režimu. Pin RS, RW a EN LCD se připojuje přímo na wiringPi GPIO 11, gnd a 10. A datový pin se připojuje na wiringPi GPIO 6, 5, 4 a 1. K nastavení kontrastu nebo jasu LCD se používá 10K pot. Bzučák je připojen na kabeláž Pi GPIO pin 7 vzhledem k zemi. Tři LED diody jsou připojeny pro indikaci studenta s příslušnou kartou RFID. A jedna LED dioda slouží k označení, že systém je připraven skenovat kartu RFID. Na wiringPi GPIO pin 12 je také připojeno tlačítko pro zobrazení počtu účastníků. Čtečka RFID je připojena na pin UART (zapojení GPIO pin 16).
Instalace knihovny wiringPi do Raspberry Pi:
Stejně jako v Pythonu importujeme import RPi.GPIO jako záhlaví souboru IO pro použití GPIO pinů Raspberry Pi, zde v jazyce C musíme použít knihovnu wiringPi k použití GPIO pinů v našem C programu. Můžeme jej nainstalovat pomocí níže uvedených příkazů jeden po druhém, tento příkaz můžete spustit z Terminálu nebo z nějakého klienta SSH, jako je Putty (pokud používáte Windows). Projděte si náš návod Začínáme s Raspberry Pi a dozvíte se více o zacházení 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
Vyzkoušejte instalaci knihovny wiringPi, použijte níže uvedené příkazy:
gpio -v gpio readall
Vysvětlení programování:
Nyní jsme nejprve zahrnuli některé knihovny a definovali piny, které musíme v tomto kódu použít.
#zahrnout
Poté definujte některé proměnné a pole pro výpočet a uložte hodnoty a řetězce.
int sp; int count1 = 0, count2 = 0, count3 = 0; char ch; char rfid; int i = 0; char temp;
Poté byly napsány funkce k provedení celého procesu. Některé z nich jsou uvedeny níže:
Vzhledem k void se pro odeslání příkazu na LCD používá funkce lcdcmd
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);……………..
Vzhledem k tomu, void write funkce se používá pro odesílání dat na LCD.
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, HIGH); digitalWrite (EN, HIGH);……………..
Vzhledem k tomu, že funkce void clear () se používá k vymazání LCD, void setCursor se používá k nastavení pozice kurzoru a tisku void pro odeslání řetězce 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 ++; }}
funkce void start se používá k inicializaci LCD ve 4bitovém režimu.
void begin (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
funkce void buzzer () a void wait () se používají k pípnutí bzučáku a k čekání na opětovné vložení karty. Funkce void serialbegin se používá k inicializaci sériové komunikace.
void buzzer () {digitalWrite (buzz, HIGH); zpoždění (1000); digitalWrite (buzz, LOW); } void wait () {digitalWrite (led5, LOW); zpoždění (3000); } void serialbegin (int baud) {if ((sp = serialOpen ("/ dev / ttyS0", baud)) <0) {clear (); tisk („Nelze otevřít“); setCursor (0,1); tisk ("sériový port"); }}
Ve funkci void setup () inicializujeme všechny GPIO, LCD a sériové UART.
void setup () {if (wiringPiSetup () == -1) {clear (); tisk ("Nelze spustit"); setCursor (0,1); print ("wiringPi"); } pinMode (led1, OUTPUT); pinMode (led2, VÝSTUP);……………………
Vzhledem k tomu void get_card () Funkce se používá k získání dat ze čtečky RFID.
Ve funkci void main () jsme ukázali některé zprávy na LCD a porovnali jsme data tagu s předdefinovanými daty, abychom ověřili kartu s níže uvedeným kódem.
……………… if (strncmp (rfid, "0900711B6003", 12) == 0) {count1 ++; Průhledná(); print ("Attd. Registered"); setCursor (0,1); tisk ("Studnet 1"); digitalWrite (led1, HIGH); bzučák(); digitalWrite (led1, LOW); Počkejte(); } else if (strncmp (rfid, "090070FE6EE9", 12) == 0) {count2 ++; Průhledná(); print ("Attd. Registered"); setCursor (0,1);………………
Nakonec funkce void check_button () slouží k zobrazení celkové docházky při stisknutí tlačítka.
void check_button () {if (digitalRead (in1) == 0) {digitalWrite (led5, LOW); Průhledná(); setCursor (0,0); tisk ("std1 std2 std3");……………..
Níže zkontrolujte úplný kód tohoto docházkového systému Raspberry Pi.