- Použité komponenty:
- Připojení klávesnice 4x4 k Raspberry Pi pomocí multiplexování:
- Popis obvodu:
- Pracovní vysvětlení:
- Vysvětlení programování:
Zabezpečení je v našem každodenním životě velkým problémem a digitální zámky se staly důležitou součástí těchto bezpečnostních systémů. K zabezpečení našeho místa je k dispozici mnoho typů technologií, jako jsou bezpečnostní systémy založené na PIR, bezpečnostní systém založený na RFID, laserové bezpečnostní alarmy, systémy biomatice atd.
Dříve jsme vytvořili digitální zámek s heslem pomocí Arduina a pomocí 8051, zde budeme tento digitální zámek stavět pomocí Raspberry Pi s uživatelem definovaným heslem. Jakmile je heslo nastaveno, může uživatel vstoupit do dveří pouze se správným heslem.
Pokud nejste obeznámeni s Raspberry Pi, vytvořili jsme řadu návodů, jak se Raspberry Pi naučit, s propojením se všemi základními komponentami a několika jednoduchými projekty pro začátek, zkontrolujte.
Použité komponenty:
- Raspberry Pi (se zavedenou kartou SD)
- Modul klávesnice
- Bzučák
- 16x2 LCD
- 10k hrnec
- Sada 10k rezistorů (vytažení)
- VEDENÝ
- 1k rezistor
- Chlebová deska
- Vozík na CD / DVD jako brána
- Napájení 5 voltů
- Řidič motoru L293D
- 12voltová baterie
- Připojovací vodiče
Připojení klávesnice 4x4 k Raspberry Pi pomocí multiplexování:
V tomto obvodu jsme použili techniku multiplexování k propojení klávesnice pro zadávání hesla do systému. Zde používáme multiplexní klávesnici 4x4 s 16 klávesami. Normálně, pokud chceme použít 16 klíčů, potřebujeme 16 pinů pro připojení k Arduinu, ale v multiplexní technice potřebujeme pouze 8 pinů pro propojení 16 klíčů. Jedná se tedy o chytrý způsob propojení modulu klávesnice. Zjistěte více o technice multiplexování a její práci v tomto digitálním zámku pomocí 8051.
Technika multiplexování je velmi efektivní způsob, jak snížit počet pinů použitých s mikrokontrolérem pro poskytování vstupu nebo hesla nebo čísel. V zásadě se tato technika používá dvěma způsoby - jedním je skenování řádků a druhým skenování sloupců. Pokud používáme knihovnu klávesnic (#include
Ale zde v tomto projektu jsme implementovali krátký způsob kódování pro stejnou klávesnici, bez použití knihovny klávesnic. Naleznete to v sekci programování níže.
Popis obvodu:
Obvod tohoto digitálního zámku dveří Raspberry Pi je velmi jednoduchý, který obsahuje Raspberry Pi 3, modul klávesnice, bzučák, vozík DVD / CD jako bránu a LCD. Raspberry Pi zde ovládá celý proces, jako je převzetí hesla z modulu klávesnice, porovnání hesel, buzení bzučákem, otevření / zavření brány a odeslání stavu na LCD displej. Klávesnice se používá pro zadávání hesla. Bzučák se používá pro indikace a je poháněn zabudovaným tranzistorem NPN. LCD se používá k zobrazování stavu nebo zpráv na něm.
Sloupcové kolíky modulu klávesnice jsou přímo připojeny k pinům GPIO 22, 23, 24, 25 a kolíky řady jsou připojeny k 21, 14, 13, 12 pinů wringPi Raspberry Pi. 16x2 LCD je spojena s Raspberry Pi ve 4-bitovém režimu. Ovládací kolík LCD RS, RW a En jsou přímo připojeny ke kolíku GPIO 11, GND a 10. Datové kolíky D4-D7 jsou připojeny ke kolíkům GPIO 6, 15, 4 a 1. Jeden bzučák je připojen na kolík GPIO 8. A ovladač motoru L293D je připojen na pinech GPIO 28 a 29 Raspberry Pi. Na kolík 8 L293D je vzhledem k zemi připojena 12voltová baterie.
Pracovní vysvětlení:
Práce na tomto projektu je jednoduchá. Když uživatel spustí kód v Raspberry Pi, LCD zobrazí nějakou uvítací zprávu a poté zobrazí „A- Vstupní heslo“ a ve druhém řádku B- Změnit heslo “. Nyní si uživatel může vybrat svoji volbu stisknutím A a B na klávesnici.
Pokud nyní chce uživatel otevřít bránu, musí stisknout klávesu „A“ na klávesnici a poté si systém vyžádá heslo. Výchozí heslo je „1234“. Nyní musí uživatel zadat heslo a poté tento systém zkontroluje heslo, zda je platné nebo ne:
1. Pokud uživatel zadá správné heslo, systém bránu otevře.
2. Pokud uživatel zadá nesprávné heslo, systém pošle pípnutí bzučáku a na LCD displeji se zobrazí „Access Denied“.
Předpokládejme, že uživatel chce změnit heslo, poté musí stisknout klávesu „B“ na klávesnici a poté bude uživatel požádán o „Aktuální heslo“ nebo „Aktuální klíč“. Nyní je třeba, aby uživatel zadal aktuální heslo, poté systém zkontroloval jeho správnost a provedl jednu z daných úloh.
1. Pokud uživatel zadá správné heslo, systém se zeptá na „Nové heslo“ a nyní může heslo změnit zadáním nového hesla.
2. A pokud uživatel zadá nesprávné heslo, systém bude řídit bzučák a zobrazí „Chybné heslo: na LCD displeji.
Nyní uživatel musí celý proces znovu změnit a změnit heslo.
Otevírání a zavírání brány v zásadě není nic jiného než otáčení motoru ve směru hodinových ručiček a proti směru hodinových ručiček pro otevírání a zavírání dveří. U malého projektu můžete jednoduše přidat stejnosměrný motor pro otevření a zavření dveří. Můžeme také použít servomotor nebo krokový motor, ale musíme odpovídajícím způsobem změnit kód.
Kromě toho můžete místo CD vozíku použít vhodný elektronický zámek dveří (snadno dostupný online). Má elektromagnet, který udržuje dveře zamčené, když skrz zámek neprochází žádný proud (otevřený obvod), a když jím prošel nějaký proud, zámek se odemkne a dveře lze otevřít. Kód bude odpovídajícím způsobem změněn, zkontrolujte také tuto sdílenou recenzi projektu: Arduino RFID Door Lock
Vysvětlení programování:
Programování je hodně podobné Arduinu. Funkce Arduino používá třídy, ale tady jsme tento kód provedli pomocí programování c bez tříd. Nainstalovali jsme také knihovnu wiringPi pro GPIO.
Nyní musíme nejprve zahrnout požadované knihovny a poté definovat piny pro LCD, bzučák, LED a motor.
#zahrnout
Poté definujte piny pro řádky a sloupce klávesnice a definujte pole pro ukládání hesel a čísel klávesnice.
char pass; char pass1 = {'1', '2', '3', '4'}; int n = 0; char řádek = {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 '}};
Poté jsme napsali několik funkcí pro ovládání LCD:
Funkce void lcdcmd se používá pro odesílání příkazu na LCD a funkce void write se používá pro odesílání dat na LCD.
Funkce void print se používá k odeslání řetězce na LCD.
void print (char * str) {while (* str) {write (* str); str ++; }}
Funkce void setCursor se používá k nastavení polohy kurzoru na LCD.
void setCursor (int x, int y) {int set = 0; if (y == 0) set = 128 + x; if (y == 1) set = 192 + x; lcdcmd (sada); }
Funkce void clear () se používá k vymazání LCD a void buzzer () se používá k pípnutí bzučáku.
Funkce void gate_open (), void gate_stop () a void gate_close () se používají pro řízení brány (CD vozík)
void gate_open () {digitalWrite (m1, LOW); digitalWrite (m2, HIGH); zpoždění (2000); } void gate_stop () {digitalWrite (m1, LOW); digitalWrite (m2, LOW); zpoždění (2000); } void gate_close () {digitalWrite (m1, HIGH); digitalWrite (m2, LOW); zpoždění (2000); }
Daná funkce se používá k inicializaci LCD ve 4bitovém režimu.
void begin (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
Vzhledem k tomu, void klávesnice () funkce se používá pro propojení klávesnice modul s Raspberry Pi s ‚krátkého metoda‘.
void keypad () {int i, j; int x = 0, k = 0; zpoždění (2000); while (k <4) {for (i = 0; i <4; i ++) {digitalWrite (col, LOW); for (j = 0; j <4; j ++) {if (digitalRead (row) == 0) {setCursor (x, 1);…………………
Zkontrolujte všechny funkce v úplném kódu níže, kód je snadný a vysvětlující.