- Korištene komponente:
- Radno objašnjenje:
- Opis kruga:
- Instaliranje knjižnice wiringPi u Raspberry Pi:
- Objašnjenje programiranja:
Prije smo koristili RFID u mnogim našim RFID projektima i već smo izgradili RFID sustav praćenja pomoću 8051, ovdje ćemo izgraditi RFID sustav praćenja pomoću Raspberry Pi.
U ovom projektu Sustava pohađanja koji se temelji na RFID-u objasnit ćemo vam kako možemo automatski odobriti i brojati prisustvo pomoću RFID kartica. RFID tehnologija (identifikacija i otkrivanje radio frekvencija) obično se koristi u školama, fakultetima, uredima i postajama u razne svrhe za automatsko praćenje ljudi. Ovdje ćemo računati prisustvo ovlaštene osobe pomoću RFID-a.
Ako niste upoznati s Raspberry Pi-om, stvorili smo niz tutorijala i projekata Raspberry Pi-a, s povezivanjem svih osnovnih komponenata i nekoliko jednostavnih projekata za početak, provjerite.
Korištene komponente:
- Raspberry Pi (s pokretanom SD karticom)
- Pritisnite tipku
- Zujalica
- LCD 16x2
- 10k lonac
- Otpornik 10K
- LED
- 1k otpornik
- Daska za kruh
- RFID čitač
- Snaga 5 volti
- RFID oznake ili kartice
- Ethernet kabel
- Spajanje žica
RFID čitač i oznake:
RFID je elektronički uređaj koji se sastoji od dva dijela - jedan je RFID čitač, a drugi RFID oznaka ili kartica. Kad RFID oznaku postavimo blizu RFID čitača, on čita podatke oznake serijski. RFID oznaka ima 12-znamenkasti kôd u zavojnici. Ovaj RFID radi na brzini prijenosa od 9600 bps. RFID koristi elektromagnet za prijenos podataka s čitača na oznaku ili oznake na čitač.

Radno objašnjenje:
Ovdje Raspberry Pi 3 kontrolira cijeli proces ovog projekta (korisnik može koristiti bilo koju ploču Raspberry Pi). RFID čitač čita ID RFID kartice, Raspberry Pi prima podatke putem UART-a, a zatim RPi provjerava valjanost kartice i prikazuje rezultate na LCD zaslonu.

Kad osoba stavi svoju RFID oznaku blizu RFID čitača radi skeniranja, RFID čita podatke oznake i šalje ih Raspberry Pi. Zatim Raspberry Pi čita jedinstveni identifikacijski broj te RFID oznake, a zatim ih uspoređuje s unaprijed definiranim podacima ili informacijama. Ako se podaci podudaraju s unaprijed definiranim podacima, tada Raspberry Pi povećava prisustvo osobe oznake za jedan, a ako se podudaranje ne podudara, mikrokontroler prikazuje poruku "Invalid Card" na LCD-u, a zujalo neprekidno oglašava. A ovdje smo dodali i gumb kako bismo vidjeli ukupan br. pohađanja svih učenika. Ovdje smo uzeli 4 RFID oznake u kojima se tri koriste za bilježenje pohađanja tri učenika, a jedan se koristi kao nevaljana kartica.
Opis kruga:
Kružni dijagram za ovaj projekt sustava pohađanja Raspberry Pi vrlo je jednostavan, a sadrži Raspberry Pi 3, RFID čitač, RFID oznake, zujalicu, LED i LCD. Ovdje Raspberry Pi kontrolira cjelovit postupak poput čitanja podataka koji dolaze iz čitača, uspoređujući podatke s unaprijed definiranim podacima, zujalicom za vožnju, LED lampicom statusa i slanjem statusa na LCD zaslon. RFID čitač koristi se za čitanje RFID oznaka. Zujalica se koristi za indikacije, a pokreće je ugrađeni NPN tranzistor. LCD se koristi za prikaz statusa ili poruka na njemu.

Veze su jednostavne. LCD je povezan s Raspberry Pi u 4-bitnom načinu. Priključak RS-a, RW-a i EN-a LCD-a izravno je povezan na wiringPi GPIO 11, gnd i 10. A podatkovni pin priključen je na wiringPi GPIO 6, 5, 4 i 1. 10K pot služi za podešavanje kontrasta ili svjetline LCD-a. Zujalica je povezana na ožičenjePi GPIO pin 7 s obzirom na masu. Tri LED diode povezane su za indikaciju učenika odgovarajućom RFID karticom. I jedna LED se koristi da pokaže da je sustav spreman za skeniranje RFID kartice. Gumb je također povezan na wiringPi GPIO pin 12 za prikaz broja posjećenosti. RFID čitač povezan je na UART pin (ožičenje GPIO pin 16).
Instaliranje knjižnice wiringPi u Raspberry Pi:
Kao i u Pythonu, uvozimo RPi.GPIO kao IO datoteku zaglavlja da bismo koristili GPIO pinove Raspberry Pi, ovdje na C jeziku moramo koristiti wiringPi Library da bismo koristili GPIO Pinove u našem C programu. Možemo ga instalirati koristeći jednu po jednu naredbe u nastavku, a ovu naredbu možete pokrenuti s terminala ili s nekog SSH klijenta poput Putty-a (ako koristite Windows). Prođite kroz naš vodič za početak rada s Raspberry Pi kako biste saznali više o rukovanju Raspberry Pi.
sudo apt-get instaliranje git-core sudo apt-get update sudo apt-get nadogradnja git clone git: //git.drogon.net/wiringPi cd wiringPi git pull origin cd wiringPi./build
Testirajte instalaciju knjižnice wiringPi, upotrijebite naredbe u nastavku:
gpio -v gpio readall
Objašnjenje programiranja:
Sada smo prvo uključili neke knjižnice i definirali igle koje trebamo koristiti u ovom kodu.
#include
Nakon njega definirajte neke varijable i niz za izračun te pohranite vrijednosti i nizove.
int sp; int count1 = 0, count2 = 0, count3 = 0; char ch; char rfid; int i = 0; temp;
Tada su napisane funkcije za izvršavanje cijelog postupka. Neki od njih dati su u nastavku:
Dana void funkcija lcdcmd koristi se za slanje naredbe na LCD
ništav lcdcmd (nepotpisan 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);……………..
Dana void funkcija upisa koristi se za slanje podataka na LCD.
void write (nepotpisano 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);……………..
S obzirom na funkciju void clear () koristi se za brisanje LCD-a, void setCursor koristi se za postavljanje položaja kursora i ispisa praznina za slanje niza na LCD.
void clear () {lcdcmd (0x01); } void setCursor (int x, int y) {int set = 0; ako je (y == 0) postavljeno = 128 + x; ako (y == 1) set = 192 + x; lcdcmd (set); } isprazni ispis (char * str) {while (* str) {write (* str); str ++; }}
funkcija void start koristi se za inicijalizaciju LCD-a u 4-bitnom načinu.
void begin (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
funkcije void zujalica () i void wait () koriste se za zvučni signal i za čekanje za ponovno postavljanje kartice. Funkcija void serialbegin koristi se za inicijalizaciju serijske komunikacije.
void zujalica () {digitalWrite (zujanje, VISOKO); kašnjenje (1000); digitalWrite (zujanje, LOW); } void wait () {digitalWrite (led5, LOW); kašnjenje (3000); } void serialbegin (int baud) {if ((sp = serialOpen ("/ dev / ttyS0", baud)) <0) {clear (); ispis ("Nije moguće otvoriti"); setCursor (0,1); ispis ("serijski port"); }}
U funkciji void setup () pokrećemo sve GPIO-ove, LCD i serijski UART.
void setup () {if (wiringPiSetup () == -1) {clear (); ispis ("Nije moguće pokrenuti"); setCursor (0,1); ispis ("wiringPi"); } pinMode (led1, IZLAZ); pinMode (led2, IZLAZ);……………………
S obzirom na void get_card () Funkcija se koristi za dobivanje podataka iz RFID čitača.
U void main () funkciji, prikazali smo neke poruke na LCD-u i usporedili podatke oznake s unaprijed definiranim podacima kako bismo provjerili valjanost kartice s donjim kodom.
……………… if (strncmp (rfid, "0900711B6003", 12) == 0) {count1 ++; čisto(); ispis ("Pridruženo registrirano"); setCursor (0,1); ispis ("Studnet 1"); digitalWrite (led1, HIGH); zujalica (); digitalWrite (led1, LOW); čekati(); } inače if (strncmp (rfid, "090070FE6EE9", 12) == 0) {count2 ++; čisto(); ispis ("Pridruženo registrirano"); setCursor (0,1);………………
Konačno, void check_button () funkcija koristi se za prikaz ukupne prisutnosti pritiskom na tipku.
void check_button () {if (digitalRead (in1) == 0) {digitalWrite (led5, LOW); čisto(); setCursor (0,0); ispis ("std1 std2 std3");……………..
U nastavku pogledajte cjeloviti kôd ovog sustava za prisustvo Raspberry Pi.
