- Käytetyt komponentit:
- Työselitys:
- Piirin kuvaus:
- WiringPi-kirjaston asentaminen Vadelma Pi:
- Ohjelmoinnin selitys:
Olemme aiemmin käyttäneet RFID: tä monissa RFID-projekteissamme ja jo rakentaneet RFID-pohjaisen läsnäolojärjestelmän 8051: n avulla, tässä aiomme rakentaa RFID-pohjaisen läsnäolojärjestelmän käyttämällä Raspberry Pi: tä.
Tässä RFID-pohjaisessa läsnäolojärjestelmähankkeessa kerromme sinulle, kuinka voimme valtuuttaa ja laskea läsnäolon automaattisesti käyttämällä RFID-kortteja. RFID-tekniikkaa (radiotaajuuksien tunnistus ja tunnistus) käytetään yleisesti kouluissa, korkeakouluissa, toimistoissa ja asemilla eri tarkoituksiin ihmisten automaattisen seurannan varmistamiseksi. Tässä lasketaan valtuutetun henkilön läsnäolo RFID: n avulla.
Jos et tunne Raspberry Pi -ohjelmaa, olemme luoneet sarjan opetusohjelmia ja vadelma pi -projekteja, joissa on liitäntä kaikkien peruskomponenttien kanssa ja aluksi yksinkertaisia projekteja, tarkista.
Käytetyt komponentit:
- Vadelma Pi (käynnistetyllä SD-kortilla)
- Paina nappia
- Summeri
- 16x2 LCD
- 10k potti
- 10K vastus
- LED
- 1k vastus
- Leipälauta
- RFID-lukija
- Teho 5 volttia
- RFID-tunnisteet tai -kortit
- Ethernet kaapeli
- Johtojen liittäminen
RFID-lukija ja tunnisteet:
RFID on elektroniikkalaite, jossa on kaksi osaa - yksi on RFID-lukija ja toinen on RFID-tunniste tai -kortti. Kun laitamme RFID-tunnisteen lähelle RFID-lukijaa, se lukee tunnistetiedot sarjaan. RFID-tunnisteessa on 12-numeroinen merkkikela kelassa. Tämä RFID toimii 9600 bps: n siirtonopeudella. RFID käyttää sähkömagneettia tiedonsiirtoon Readerista Tagiin tai Tag Readeriin.
Työselitys:
Tässä Raspberry Pi 3 ohjaa koko projektin prosessia (Käyttäjä voi käyttää mitä tahansa Raspberry Pi Boardia). RFID-lukija lukee RFID-kortin tunnuksen, Raspberry Pi vastaanottaa nämä tiedot UART: n kautta, sitten RPi vahvistaa kortin ja näyttää tulokset LCD-näytöllä.
Kun henkilö laittaa RFID-tunnisteensa lähelle RFID-lukijaa skannaamaan, RFID lukee tunnisteen tiedot ja lähettää sen Raspberry Pi: lle. Sitten Vadelma Pi lukee kyseisen RFID-tunnisteen yksilöllisen tunnistenumeron ja vertaa näitä tietoja ennalta määritettyihin tietoihin. Jos tiedot sovitetaan ennalta määritettyihin tietoihin, vadelma Pi lisää tunnisteen henkilön läsnäoloa yhdellä ja jos täsmäävää ei täsmää, mikro-ohjain näyttää LCD-näytössä virheellisen kortin ja summeri piippaa jatkuvasti jonkin aikaa. Ja tässä lisättiin myös painike nähdäksesi yhteensä. kaikkien opiskelijoiden läsnäolo. Tässä olemme ottaneet 4 RFID-tunnistetta, joissa kolmea käytetään kolmen opiskelijan osallistumisen kirjaamiseen ja yhtä käytetään virheellisenä korttina.
Piirin kuvaus:
Tämän Raspberry Pi Attendance System -projektin kytkentäkaavio on hyvin yksinkertainen, joka sisältää Raspberry Pi 3: n, RFID-lukijan, RFID-tunnisteet, summerin, LEDin ja LCD: n. Täällä Raspberry Pi ohjaa koko prosessia, kuten Readerista tulevan datan lukemista, tietojen vertaamista ennalta määritettyihin tietoihin, ajosummeria, ajo- LED-valoa ja tilan lähettämistä LCD-näyttöön. RFID-lukijaa käytetään RFID-tunnisteiden lukemiseen. Summeriä käytetään indikaatioihin ja sitä ohjaa sisäänrakennettu NPN-transistori. LCD-näyttöä käytetään tilan tai viestien näyttämiseen siinä.
Liitännät ovat yksinkertaisia. LCD on kytketty Raspberry Pi: hen 4-bittisessä tilassa. LCD: n RS-, RW- ja EN-nasta on kytketty suoraan johtimiinPi GPIO 11, gnd ja 10. Ja datatappi on kytketty johdotukseenPi GPIO 6, 5, 4 ja 1. 10K pottia käytetään nestekidenäytön kontrastin tai kirkkauden asettamiseen. Summeri on kytketty Pi GPIO -nastan 7 johtoon maanpinnan suhteen. Kolme LED-valoa on kytketty opiskelijan osoittamista varten vastaavalla RFID-kortilla. Ja yhtä LEDiä käytetään osoittamaan, että järjestelmä on valmis skannaamaan RFID-kortin. Pi GPIO-nastassa 12 on kytketty myös painike näyttämään läsnäololukua. RFID-lukija on kytketty UART-nastaan (johdotus GPIO-nasta 16).
WiringPi-kirjaston asentaminen Vadelma Pi:
Kuten Pythonissa, tuomme RPi.GPIO: n IO- otsikkotiedostona Raspberry Pi: n GPIO- nastojen käyttämiseksi, täällä C-kielellä meidän on käytettävä wiringPi-kirjastoa GPIO- nastojen käyttämiseen C-ohjelmassa. Voimme asentaa sen käyttämällä alla olevia komentoja yksi kerrallaan, voit suorittaa tämän komennon Terminalista tai joltakin SSH-asiakkaalta, kuten Putty (jos käytät Windowsia). Käy läpi Aloittaminen Raspberry Pi -oppaassa, niin saat lisätietoja Raspberry Pi: n käsittelystä.
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 alkuperä cd wiringPi./build
Testaa wiringPi-kirjaston asennus, käytä alla olevia komentoja:
gpio -v gpio readall
Ohjelmoinnin selitys:
Nyt ensin on sisällytetty joitain kirjastoja ja määritelty nastat, joita meidän on käytettävä tässä koodissa.
#sisältää
Määritä sen jälkeen joitain muuttujia ja taulukko laskentaan sekä arvojen ja merkkijonojen tallentamiseen.
int sp; int count1 = 0, count2 = 0, count3 = 0; char ch; char rfid; int i = 0; char lämpötila;
Sitten funktiot on kirjoitettu suorittamaan koko prosessi. Jotkut niistä on esitetty alla:
Annetaan mitätön lcdcmd toimintoa käytetään lähettämään komennon LCD
void lcdcmd (allekirjoittamaton int ch) {int temp = 0x80; digitalWrite (D4, lämpötila & kanava << 3); digitalWrite (D5, lämpötila & kanava << 2); digitalWrite (D6, lämpötila & kanava << 1); digitalWrite (D7, lämpötila & kanava); digitalWrite (RS, LOW); digitalWrite (EN, HIGH);……………..
Annettua tyhjää kirjoitustoimintoa käytetään tietojen lähettämiseen LCD-näyttöön.
void write (allekirjoittamaton int ch) {int temp = 0x80; digitalWrite (D4, lämpötila & kanava << 3); digitalWrite (D5, lämpötila & kanava << 2); digitalWrite (D6, lämpötila & kanava << 1); digitalWrite (D7, lämpötila & kanava); digitalWrite (RS, HIGH); digitalWrite (EN, HIGH);……………..
Annetaan void kirkas () toimintoa käytetään tyhjentää LCD, mitätön setCursor käytetään asettamaan kursorin sijaintia ja mitätön tulostaa lähettää merkkijono LCD.
void clear () {lcdcmd (0x01); } void setCursor (int x, int y) {int set = 0; jos (y == 0) asetettu = 128 + x; jos (y == 1) asetettu = 192 + x; lcdcmd (sarja); } void print (char * str) {while (* str) {kirjoita (* str); str ++; }}
void start -toimintoa käytetään alustamaan LCD-näyttö 4-bittisessä tilassa.
mitätön alku (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
void buzzer () ja void wait () -toimintoja käytetään äänimerkin antamiseen ja kortin asettamisen odottamiseen. Funktiota void serialbegin käytetään sarjaliikenteen alustamiseen.
void buzzer () {digitalWrite (buzz, HIGH); viive (1000); digitalWrite (buzz, LOW); } void wait () {digitalWrite (led5, LOW); viive (3000); } void serialbegin (int baud) {if ((sp = serialOpen ("/ dev / ttyS0", baud)) <0) {clear (); tulosta ("Ei voi avata"); setCursor (0,1); tulosta ("sarjaportti"); }}
In void setup () funktio me initiaze kaikki GPIOs, LCD- ja UART.
void setup () {if (johdotusPiSetup () == -1) {tyhjennä (); tulosta ("Ei voi käynnistää"); setCursor (0,1); tulosta ("wiringPi"); } pinMode (led1, OUTPUT); pinMode (led2, OUTPUT);……………………
Given void get_card () -toimintoa käytetään tietojen hakemiseen RFID-lukijasta.
In void main () -toiminto, olemme näytti joitakin viestejä LCD- ja verrataan tunnisteen tietoja ennalta datan validoimiseksi kortti alla koodi.
……………… if (strncmp (rfid, "0900711B6003", 12) == 0) {count1 ++; asia selvä(); tulosta ("Attd. Registered"); setCursor (0,1); tulosta ("Studnet 1"); digitalWrite (led1, HIGH); summeri(); digitalWrite (led1, LOW); odota(); } else if (strncmp (rfid, "090070FE6EE9", 12) == 0) {count2 ++; asia selvä(); tulosta ("Attd. Registered"); setCursor (0,1);………………
Lopuksi void check_button () -toimintoa käytetään näyttämään kokonaisläsnäolo painikkeen painalluksella.
void check_button () {if (digitalRead (in1) == 0) {digitalWrite (led5, LOW); asia selvä(); setCursor (0,0); tulosta ("std1 std2 std3");……………..
Tarkista tämän Raspberry Pi Attendance -järjestelmän koko koodi alla.