- Použité komponenty:
- Pripojenie klávesnice 4x4 k Raspberry Pi pomocou multiplexovania:
- Popis obvodu:
- Pracovné vysvetlenie:
- Vysvetlenie programovania:
Bezpečnosť je v každodennom živote hlavným problémom a digitálne zámky sa stali dôležitou súčasťou týchto bezpečnostných systémov. Na zabezpečenie nášho miesta je k dispozícii mnoho typov technológií, ako napríklad bezpečnostné systémy založené na PIR, bezpečnostný systém založený na RFID, laserové bezpečnostné alarmy, systémy s biomatricou atď.
Predtým sme vytvorili digitálny zámok s heslom pomocou Arduina a pomocou 8051, tu postavíme tento digitálny zámok pomocou Raspberry Pi s používateľom definovaným heslom. Po nastavení hesla môže používateľ vstúpiť do dverí iba so správnym heslom.
Ak nie ste oboznámení s Raspberry Pi, vytvorili sme sériu tutoriálov, ktoré sa naučia Raspberry Pi, s prepojením so všetkými základnými komponentmi a niekoľkými jednoduchými projektmi, s ktorými treba začať.
Použité komponenty:
- Raspberry Pi (so zavedenou kartou SD)
- Modul klávesnice
- Bzučiak
- 16x2 LCD
- 10k hrniec
- 10k rezistorový balíček (vysunutie)
- LED
- 1k rezistor
- Chlebová doska
- Vozík na CD / DVD ako brána
- Napájanie 5 voltov
- Vodič motora L293D
- 12 voltová batéria
- Pripojovacie vodiče
Pripojenie klávesnice 4x4 k Raspberry Pi pomocou multiplexovania:
V tomto obvode sme použili techniku multiplexovania na prepojenie klávesnice pre zadanie hesla v systéme. Tu používame multiplexovú klávesnicu 4x4 so 16 klávesmi. Normálne, ak chceme použiť 16 klávesov, potrebujeme 16 pinov na pripojenie k Arduinu, ale v multiplexnej technike potrebujeme iba 8 pinov na prepojenie 16 klávesov. Ide teda o inteligentný spôsob prepojenia modulu klávesnice. Viac informácií o technike multiplexovania a jej fungovaní sa dozviete v tomto digitálnom zámku pomocou protokolu 8051.
Technika multiplexovania je veľmi efektívny spôsob, ako znížiť počet pinov použitých s mikrokontrolérom na zadanie hesla alebo hesla. V zásade sa táto technika používa dvoma spôsobmi - jedným je skenovanie riadkov a druhým stĺpcové skenovanie. Ak používame knižnicu klávesníc (#include
Ale tu v tomto projekte sme implementovali krátky spôsob kódovania pre tú istú klávesnicu bez použitia knižnice klávesníc. Prečítajte si to v sekcii programovania nižšie.
Popis obvodu:
Obvod tohto digitálneho zámku dverí Raspberry Pi je veľmi jednoduchý a obsahuje Raspberry Pi 3, modul klávesnice, bzučiak, vozík DVD / CD ako bránu a LCD. Raspberry Pi tu riadi celý proces, ako je získanie hesla z modulu klávesnice, porovnanie hesiel, riadenie bzučiaka, otvorenie / zatvorenie brány a odoslanie stavu na LCD displej. Na zadanie hesla sa používa klávesnica. Bzučiak sa používa na indikáciu a je poháňaný zabudovaným tranzistorom NPN. LCD sa používa na zobrazovanie stavu alebo správ.
Kolíky kolíka modulu klávesnice sú priamo pripojené k pinom GPIO 22, 23, 24, 25 a kolíky radu sú pripojené k 21, 14, 13, 12 pinom wringPi Raspberry Pi. 16x2 LCD je spojená s Raspberry Pi v 4-bitovom režime. Ovládací kolík LCD RS, RW a En sú priamo pripojené k pinom GPIO 11, GND a 10. Dátové piny D4-D7 sú pripojené k pinom GPIO 6, 15, 4 a 1. Jeden bzučiak je pripojený k pinu GPIO 8. A motorový ovládač L293D je pripojený na pinoch GPIO 28 a 29 Raspberry Pi. 12 V akumulátor je pripojený na kolíku 8 L293D vzhľadom k zemi.
Pracovné vysvetlenie:
Práca na tomto projekte je jednoduchá. Keď používateľ spustí kód na Raspberry Pi, na LCD displeji sa zobrazí nejaká uvítacia správa a potom sa zobrazí „A- Zadajte heslo“ a v druhom riadku B- Zmeniť heslo “. Teraz môže užívateľ zvoliť svoju voľbu stlačením A a B na klávesnici.
Ak chce užívateľ otvoriť bránu, musí stlačiť kláves „A“ na klávesnici a potom si systém vyžiada heslo. Predvolené heslo je „1234“. Teraz musí užívateľ zadať heslo a potom tento systém skontroluje heslo, či je platné alebo nie:
1. Ak užívateľ zadá správne heslo, systém otvorí bránu.
2. Ak užívateľ zadá nesprávne heslo, systém odošle pípnutie príkazu do bzučiaka a na LCD displeji sa zobrazí hlásenie „Access Denied“.
Teraz predpokladajme, že užívateľ chce zmeniť heslo, potom musí stlačiť kláves „B“ na klávesnici a potom bude vyzvaný k zadaniu „Aktuálneho hesla“ alebo „Aktuálneho hesla“. Teraz je potrebné, aby užívateľ zadal aktuálne heslo, potom systém skontroloval jeho správnosť a vykonal jednu z uvedených úloh.
1. Ak užívateľ zadá správne heslo, systém si vyžiada „Nové heslo“ a teraz môže heslo zmeniť zadaním nového hesla.
2. A ak užívateľ zadá nesprávne heslo, systém zaznie bzučiak a zobrazí sa „Chybné heslo: na LCD displeji.
Teraz je potrebné, aby užívateľ celý proces zopakoval a zmenil heslo.
V zásade otváranie a zatváranie brány nie je nič iné ako otáčanie motora v smere hodinových ručičiek a proti smeru hodinových ručičiek, aby sa dvere otvorili a zatvorili. Pre malý projekt môžete jednoducho pridať jednosmerný motor na otváranie a zatváranie dverí. Môžeme tiež použiť servopohon alebo krokový motor, ale musíme zodpovedajúcim spôsobom zmeniť kód.
Ďalej môžete namiesto CD vozíka použiť správny elektronický zámok dverí (ľahko dostupný online). Má elektromagnet, ktorý udržuje dvere zamknuté, keď cez blokovanie nepreteká žiadny prúd (otvorený obvod), a keď ním nejaký prúd prešiel, zámok sa odblokuje a dvere sa dajú otvoriť. Kód sa zodpovedajúcim spôsobom zmení. Skontrolujte tiež toto spoločné preskúmanie projektu: Arduino RFID Door Lock
Vysvetlenie programovania:
Programovanie je veľmi podobné Arduinu. Funkcia Arduino používa triedy, ale tu sme tento kód vytvorili pomocou programovania c bez tried. Inštalovali sme tiež knižnicu wiringPi pre GPIO.
Teraz musíme najskôr zahrnúť požadované knižnice a potom definovať piny pre LCD, bzučiak, LED a motor.
#include
Potom definujte kolíky pre riadky a stĺpce klávesnice a definujte pole pre ukladanie hesiel a čísel klávesníc.
char pass; char pass1 = {'1', '2', '3', '4'}; int n = 0; char riadok = {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 '}};
Potom sme napísali niekoľko funkcií pre ovládanie LCD:
Funkcia void lcdcmd sa používa na zasielanie príkazov na LCD a funkcia void write na zasielanie údajov na LCD.
Funkcia void print sa používa na odoslanie reťazca na LCD.
void print (char * str) {while (* str) {write (* str); str ++; }}
Function void setCursor sa používa na nastavenie polohy kurzora na LCD displeji.
void setCursor (int x, int y) {int set = 0; if (y == 0) set = 128 + x; if (y == 1) set = 192 + x; lcdcmd (sada); }
Funkcia void clear () sa používa na vyčistenie LCD a void buzzer () sa používa na pípnutie bzučiaka.
Na volanie brány (CD vozík) sa používajú funkcie void gate_open (), void gate_stop () a void gate_close ().
void gate_open () {digitalWrite (m1, LOW); digitalWrite (m2, HIGH); meškanie (2000); } void gate_stop () {digitalWrite (m1, LOW); digitalWrite (m2, LOW); meškanie (2000); } void gate_close () {digitalWrite (m1, HIGH); digitalWrite (m2, LOW); meškanie (2000); }
Daná funkcia sa používa na inicializáciu LCD v 4-bitovom režime.
void begin (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
Daná void keypad () funkcia sa používa na prepojenie modulu klávesnice s Raspberry Pi „krátkou metódou“.
void keypad () {int i, j; int x = 0, k = 0; meškanie (2000); while (k <4) {for (i = 0; i <4; i ++) {digitalWrite (col, LOW); pre (j = 0; j <4; j ++) {if (digitalRead (riadok) == 0) {setCursor (x, 1);…………………
Skontrolujte všetky funkcie v úplnom kóde nižšie. Kód je jednoduchý a zrozumiteľný.