- Uporabljene komponente:
- Povezava tipkovnice 4x4 z Raspberry Pi z uporabo multipleksiranja:
- Opis vezja:
- Delovna razlaga:
- Pojasnilo programiranja:
Varnost je glavna skrb v našem vsakdanjem življenju in digitalne ključavnice so postale pomemben del teh varnostnih sistemov. Za zaščito našega kraja je na voljo veliko vrst tehnologij, kot so varnostni sistemi na osnovi PIR, RFID varnostni sistem, laserski varnostni alarmi, bio-matrični sistemi itd.
Pred tem smo digitalno ključavnico z geslom zgradili z uporabo Arduina in z uporabo 8051, tukaj bomo to digitalno ključavnico izdelali z uporabo Raspberry Pi z uporabniško določenim geslom. Ko je geslo nastavljeno, lahko uporabnik do vrat dostopa le s pravilnim geslom.
Če Raspberry Pi ne poznate, smo ustvarili vrsto vadnic za učenje Raspberry Pi z vmesnikom z vsemi osnovnimi komponentami in nekaj preprostimi projekti za začetek.
Uporabljene komponente:
- Raspberry Pi (z zagonsko SD kartico)
- Modul tipkovnice
- Zvočni signal
- 16x2 LCD
- 10k lonec
- 10k paket uporov (povlečen)
- LED
- 1k upor
- Deska za kruh
- CD / DVD voziček kot vrata
- Moč 5 voltov
- Voznik motorja L293D
- 12-voltna baterija
- Priključne žice
Povezava tipkovnice 4x4 z Raspberry Pi z uporabo multipleksiranja:
V tem vezju smo z Multiplexing Technique povezali tipkovnico za vnos gesla v sistem. Tu uporabljamo 4x4 multipleksno tipkovnico s 16 tipkami. Običajno, če želimo uporabiti 16 tipk, potem potrebujemo 16 nožic za povezavo z Arduino, v tehniki multipleksiranja pa potrebujemo le 8 nožic za povezovanje 16 tipk. Tako da je to pameten način za povezovanje modula s tipkovnico. Preberite več o tehniki multipleksiranja in njenem delovanju v tej digitalni ključavnici z uporabo 8051.
Tehnika multipleksiranja je zelo učinkovit način za zmanjšanje števila nožic, ki se uporabljajo z mikrokrmilnikom za vnos ali geslo ali številke. V bistvu se ta tehnika uporablja na dva načina - eden je skeniranje vrstic in drugi pregledovanje stolpcev. Če uporabljamo knjižnico tipkovnice (#include
Toda v tem projektu smo izvedli kratek način kodiranja za isto tipkovnico, ne da bi uporabili knjižnico tipkovnice. Prosimo, glejte v spodnjem oddelku za programiranje.
Opis vezja:
Vezje te digitalne ključavnice Raspberry Pi je zelo preprosto, saj vsebuje Raspberry Pi 3, modul tipkovnice, brenčalo, voziček DVD / CD kot vrata in LCD. Tu Raspberry Pi nadzoruje celoten postopek, kot je prevzem gesla iz modula tipkovnice, primerjava gesel, vožnja z brenčalom, odpiranje / zapiranje vrat in pošiljanje stanja na LCD zaslon. Tipkovnica se uporablja za vnos gesla. Zvočni signal se uporablja za indikacije in ga poganja vgrajeni NPN tranzistor. LCD se uporablja za prikaz stanja ali sporočil na njem.
Zatiči stolpcev modula tipkovnice so neposredno povezani z zatiči GPIO 22, 23, 24, 25, vrstni zatiči pa 21, 14, 13, 12 zatičev Raspberry Pi wringPi. 16x2 LCD je povezan z maline Pi v 4-bitni način. Krmilni zatiči RS, RW in En LCD-ja so neposredno povezani z zatiči GPIO 11, GND in 10. Podatkovni zatiči D4-D7 so povezani z zatiči GPIO 6, 15, 4 in 1. En zumer je priključen na zatič GPIO 8. In Motor Driver L293D je povezan na GPIO pin 28 in 29 Raspberry Pi. 12 voltni akumulator priključen na pin 8 L293D glede na tla.
Delovna razlaga:
Delo s tem projektom je preprosto. Ko uporabnik zažene kodo v Raspberry Pi, se na LCD-prikazovalniku prikaže nekaj pozdravnega sporočila, po njem pa se prikaže “A- Input Password” in v drugi vrstici B - Change Passkey ”. Zdaj lahko uporabnik izbere svojo izbiro s pritiskom na A in B na tipkovnici.
Zdaj, če želi uporabnik odpreti vrata, mora na tipkovnici pritisniti 'A' in nato bo sistem zahteval geslo. Privzeto geslo je "1234". Zdaj mora uporabnik vnesti geslo in po tem sistemu bo geslo preveril, ali je veljavno ali ne:
1. Če uporabnik vnese pravilno geslo, bo sistem odprl vrata.
2. Če uporabnik vnese napačno geslo, sistem pošlje ukaz zvočniku in na LCD-prikazovalniku prikaže “Dostop zavrnjen”.
Zdaj predpostavimo, da želi uporabnik spremeniti geslo, nato mora na tipkovnici pritisniti 'B' in nato bo uporabnik pozvan za "Trenutno geslo" ali "Trenutno geslo". Zdaj mora uporabnik vnesti trenutno geslo, nato sistem preveriti njegovo pravilnost in izvesti eno od danih nalog.
1. Če uporabnik vnese pravilno geslo, bo sistem zahteval »Novo geslo« in zdaj lahko uporabnik spremeni geslo z vnosom novega gesla.
2. In če uporabnik vnese napačno geslo, bo sistem sprožil zvočno opozorilo in na LCD-prikazovalniku prikazal sporočilo »Napačno geslo:
Zdaj mora uporabnik znova ponoviti celoten postopek, da spremeni geslo.
V bistvu odpiranje in zapiranje vrat ni nič drugega kot vrtenje motorne ure v nasprotni smeri urnega kazalca, da odprete in zaprete vrata. Za majhen projekt lahko preprosto dodate enosmerni motor za odpiranje in zapiranje vrat. Lahko uporabimo tudi servo ali koračni motor, vendar moramo ustrezno spremeniti kodo.
Poleg tega lahko namesto CD vozička uporabite ustrezno elektronsko ključavnico vrat (enostavno dostopno na spletu). Ima elektromagnet, ki drži vrata zaklenjena, ko skozi ključavnico (odprt krog) ne teče tok, in ko skozi njega preide nekaj toka, se ključavnica odklene in vrata se lahko odprejo. Koda bo ustrezno spremenjena, preverite tudi ta skupni pregled projekta: Arduino RFID Door Lock
Pojasnilo programiranja:
Programiranje je zelo podobno Arduinu. Funkcija Arduino uporablja razrede, toda tukaj smo to kodo naredili s pomočjo programiranja c brez razredov. Prav tako smo namestili knjižnico wiringPi za GPIO-je.
Zdaj moramo najprej vključiti potrebne knjižnice in nato določiti nožice za LCD, brenčalo, LED in motor.
#include
Nato določite zatiče za vrstico in stolpce tipkovnice in določite polje za shranjevanje številk gesel in tipkovnice.
char pass; char pass1 = {'1', '2', '3', '4'}; int n = 0; vrstica char = {21, 14, 13, 12}; char col = {22, 23, 24, 25}; char num = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', ' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
Po njem smo napisali nekaj funkcij za vožnjo LCD-ja:
Funkcija void lcdcmd se uporablja za pošiljanje ukaza na LCD, funkcija void write pa za pošiljanje podatkov na LCD.
Funkcija void print se uporablja za pošiljanje niza na LCD.
void print (char * str) {while (* str) {write (* str); str ++; }}
Funkcija void set Kurzor se uporablja za nastavitev položaja kurzorja na LCD-prikazovalniku.
void setCursor (int x, int y) {int set = 0; če je (y == 0) nastavljeno = 128 + x; če je (y == 1) nastavljeno = 192 + x; lcdcmd (nastavljen); }
Funkcija void clear () se uporablja za čiščenje LCD-ja, void zvočni signal () pa za piskanje zvočnega signala.
Funkcija void gate_open (), void gate_stop () in void gate_close () se uporabljajo za pogon vrat (voziček CD)
void gate_open () {digitalWrite (m1, LOW); digitalWrite (m2, VISOKO); zamuda (2000); } void gate_stop () {digitalWrite (m1, LOW); digitalWrite (m2, LOW); zamuda (2000); } void gate_close () {digitalWrite (m1, HIGH); digitalWrite (m2, LOW); zamuda (2000); }
Dana funkcija se uporablja za inicializacijo LCD-ja v 4-bitnem načinu.
začetek praznine (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
Glede nična Tipkovnica () funkcija se uporablja za povezovanje tipkovnice modul z maline Pi s kratke metoda ".
nična tipkovnica () {int i, j; int x = 0, k = 0; zamuda (2000); while (k <4) {for (i = 0; i <4; i ++) {digitalWrite (col, LOW); for (j = 0; j <4; j ++) {if (digitalRead (vrstica) == 0) {setCursor (x, 1);…………………
Preverite vse funkcije spodnje celotne kode, koda je enostavna in samoumevna.