- Izmantotās sastāvdaļas:
- Darba skaidrojums:
- Ķēdes apraksts:
- WiringPi bibliotēkas instalēšana Raspberry Pi:
- Programmēšanas skaidrojums:
Mēs jau iepriekš esam izmantojuši RFID daudzos savos RFID projektos un jau esam izveidojuši RFID balstītu apmeklēšanas sistēmu, izmantojot 8051, šeit mēs izveidosim RFID balstītu apmeklēšanas sistēmu, izmantojot Raspberry Pi.
Šajā RFID balstītās apmeklējumu sistēmas projektā mēs jums paskaidrosim, kā mēs varam autorizēt un automātiski skaitīt apmeklējumu, izmantojot RFID kartes. RFID tehnoloģija (radiofrekvenču identifikācija un noteikšana) parasti tiek izmantota skolās, koledžās, birojos un stacijās dažādiem mērķiem, lai automātiski izsekotu cilvēkiem. Šeit mēs saskaitīsim pilnvarotas personas apmeklējumu, izmantojot RFID.
Ja neesat pazīstams ar Raspberry Pi, mēs esam izveidojuši virkni apmācību un aveņu pi projektu ar saskarni ar visiem pamata komponentiem un dažiem vienkāršiem projektiem, ar kuriem sākt, pārbaudiet.
Izmantotās sastāvdaļas:
- Aveņu Pi (ar sāknētu SD karti)
- Uzspied pogu
- Buzzer
- 16x2 LCD
- 10k katls
- 10K rezistors
- LED
- 1k rezistors
- Maizes dēlis
- RFID lasītājs
- Jauda 5 volti
- RFID tagi vai kartes
- Ethernet kabelis
- Savienojošie vadi
RFID lasītājs un tagi:
RFID ir elektronikas ierīce, kurai ir divas daļas - viena ir RFID lasītājs un otra ir RFID iezīme vai karte. Kad mēs RFID tagu ievietojam netālu no RFID lasītāja, tas tagu datus nolasa sērijveidā. RFID tagā spolē ir 12 ciparu rakstzīmju kods. Šis RFID darbojas ar ātrumu 9600 bps. RFID izmanto elektromagnētu, lai pārsūtītu datus no Reader uz Tag vai Tag to Reader.
Darba skaidrojums:
Šeit Raspberry Pi 3 kontrolē visu šī projekta procesu (Lietotājs var izmantot jebkuru Raspberry Pi Board). RFID lasītājs nolasa RFID kartes ID, šos datus Raspberry Pi saņem caur UART, pēc tam RPi apstiprina karti un parāda rezultātus LCD ekrānā.
Kad kāda persona ievieto savu RFID tagu netālu no RFID lasītāja, lai to skenētu, RFID nolasa tagu datus un nosūta tos Raspberry Pi. Tad Raspberry Pi nolasa šī RFID taga unikālo identifikācijas numuru un pēc tam salīdzina šos datus ar iepriekš definētiem datiem vai informāciju. Ja dati tiek saskaņoti ar iepriekš definētiem datiem, tad Raspberry Pi palielina tagu personas apmeklējumu par vienu un, ja saskaņošana nav saskaņota, mikrokontrolleris LCD ekrānā parāda ziņojumu “Nederīga karte”, un skaņas signāls kādu laiku nepārtraukti pīkst. Un šeit mēs arī pievienojām spiedpogu, lai redzētu kopējo nr. visu studentu apmeklējumu. Šeit mēs esam paņēmuši 4 RFID tagus, kuros trīs tiek izmantoti, lai reģistrētu trīs studentu apmeklējumu, un viens tiek izmantots kā nederīga karte.
Ķēdes apraksts:
Šī Raspberry Pi apmeklēšanas sistēmas projekta shēma ir ļoti vienkārša, kas satur Raspberry Pi 3, RFID lasītāju, RFID tagus, skaņas signālu, LED un LCD. Šeit Raspberry Pi kontrolē visu procesu, piemēram, datu lasīšanu, kas nāk no lasītāja, salīdzinot datus ar iepriekš definētiem datiem, braucot ar skaņas signālu, vadot Statusa LED un nosūtot statusu LCD displejā. RFID lasītājs tiek izmantots RFID tagu lasīšanai. Buzzer tiek izmantots indikācijām, un to vada iebūvēts NPN tranzistors. LCD tiek izmantots statusa vai ziņojumu parādīšanai tajā.
Savienojumi ir vienkārši. LCD ir savienots ar Raspberry Pi 4 bitu režīmā. LCD RS, RW un EN tapa ir tieši savienota ar vadiemPi GPIO 11, gnd un 10. Un datu tapa ir savienota ar vadiemPi GPIO 6, 5, 4 un 1. LCD kontrasta vai spilgtuma iestatīšanai tiek izmantots 10K katls. Buzzer ir pievienots pie pii GPIO 7. kontakta attiecībā pret zemi. Trīs gaismas diodes ir savienotas studentu norādīšanai ar attiecīgo RFID karti. Un viens LED tiek izmantots, lai parādītu, ka sistēma ir gatava skenēt RFID karti. Pie elektroinstalācijasPi GPIO 12. kontakta ir pievienota arī spiedpoga, lai parādītu apmeklējumu skaitu. RFID lasītājs ir savienots ar UART kontaktu (vadu GPIO 16. kontakts).
WiringPi bibliotēkas instalēšana Raspberry Pi:
Tāpat kā Python, mēs importējam RPi.GPIO kā IO galvenes failu, lai izmantotu Raspberry Pi GPIO tapas, šeit C valodā mums jāizmanto wiringPi bibliotēka, lai mūsu C programmā izmantotu GPIO Pins. Mēs to varam instalēt, izmantojot zemāk esošās komandas pa vienai, jūs varat palaist šo komandu no Terminal vai no kāda SSH klienta, piemēram, Putty (ja izmantojat Windows). Izmeklējiet mūsu pamācību Darba sākšana ar Aveņu Pi, lai uzzinātu vairāk par Raspberry Pi lietošanu.
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
Pārbaudiet wiringPi bibliotēkas instalēšanu, izmantojiet zemāk norādītās komandas:
gpio -v gpio readall
Programmēšanas skaidrojums:
Tagad vispirms mēs esam iekļāvuši dažas bibliotēkas un definējuši tapas, kas mums jāizmanto šajā kodā.
# iekļaut
Pēc tam definējiet dažus mainīgos un masīvu aprēķināšanai un vērtību un virkņu saglabāšanai.
int sp; int skaits1 = 0, skaits2 = 0, skaitlis3 = 0; char ch; char rfid; int i = 0; char temp;
Tad ir uzrakstītas funkcijas, lai izpildītu visu procesu. Daži no tiem ir norādīti zemāk:
Ņemot vērā spēkā neesošo, lcdcmd funkcija tiek izmantota komandu nosūtīšanai uz LCD
void lcdcmd (neparakstīts 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);……………..
Datu sūtīšanai uz LCD tiek izmantota dota tukšās rakstīšanas funkcija.
void write (neparakstīts 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);……………..
Ņemot vērā funkciju void clear (), LCD attīrīšanai tiek izmantota funkcija void setCursor, lai iestatītu kursora pozīciju un tukšu druku virknes nosūtīšanai uz LCD.
void clear () {lcdcmd (0x01); } void setCursor (int x, int y) {int set = 0; ja (y == 0) kopa = 128 + x; ja (y == 1) kopa = 192 + x; lcdcmd (komplekts); } void print (char * str) {while (* str) {write (* str); str ++; }}
funkcija void begin tiek izmantota, lai inicializētu LCD 4 bitu režīmā.
void begin (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
void buzzer () un void wait () funkcijas tiek izmantotas skaņas signāla pīkstēšanai un gaidīšanai, lai vēlreiz ievietotu karti. Funkcija void serialbegin tiek izmantota, lai inicializētu sērijveida sakarus.
void buzzer () {digitalWrite (buzz, HIGH); kavēšanās (1000); digitalWrite (buzz, LOW); } void wait () {digitalWrite (led5, LOW); kavēšanās (3000); } void serialbegin (int baud) {if ((sp = serialOpen ("/ dev / ttyS0", baud)) <0) {notīrīt (); drukāt ("Nevar atvērt"); setCursor (0,1); drukāt ("sērijas ports"); }}
Ar tukšumu uzstādīšana () funkciju, mēs initiaze visu GPIOs, LCD un sērijas UART.
void setup () {if (elektroinstalācijaPiSetup () == -1) {notīrīt (); drukāt ("Nevar sākt"); setCursor (0,1); druka ("wiringPi"); } pinMode (led1, OUTPUT); pinMode (led2, OUTPUT);……………………
Ņemot vērā void get_card (), funkcija tiek izmantota, lai iegūtu datus no RFID lasītāja.
Funkcijā void main () mēs esam parādījuši dažus ziņojumus LCD ekrānā un salīdzinājuši tagu datus ar iepriekš definētiem datiem, lai apstiprinātu karti ar zemāk esošo kodu.
……………… if (strncmp (rfid, "0900711B6003", 12) == 0) {skaits1 ++; skaidrs (); drukāt ("Attd. Registered"); setCursor (0,1); druka ("Studnet 1"); digitalWrite (led1, HIGH); skaņas signāls (); digitalWrite (led1, LOW); pagaidiet (); } else if (strncmp (rfid, "090070FE6EE9", 12) == 0) {skaits2 ++; skaidrs (); drukāt ("Attd. Registered"); setCursor (0,1);………………
Visbeidzot funkcija void check_button () tiek izmantota, lai parādītu kopējo apmeklējumu, nospiežot pogu.
void check_button () {if (digitalRead (in1) == 0) {digitalWrite (led5, LOW); skaidrs (); setCursor (0,0); drukāt ("std1 std2 std3");……………..
Tālāk pārbaudiet pilnu šīs Raspberry Pi apmeklēšanas sistēmas kodu.