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ď. Aj v súčasnosti existujú digitálne zámky, ktoré je možné ovládať pomocou našich inteligentných telefónov, to znamená nie viac si musíte ponechať rôzne kľúče, iba jeden chytrý telefón dokáže ovládať všetky zámky, tento koncept je založený na internete vecí.
V tomto projekte sme vysvetlili jednoduchý elektronický kódový zámok pomocou 8051 Microcontorller, ktorý je možné odomknúť iba preddefinovaným kódom, ak zadáme nesprávny kód, systém upozorní sirénou na bzučiak. Digitálny zámok sme už vytvorili pomocou Arduina.
Pracovné vysvetlenie:
Tento systém obsahuje hlavne mikrokontrolér AT89S52, modul klávesnice, bzučiak a LCD. Mikrokontrolér At89s52 riadi všetky procesy, ako je získavanie hesla z modulu klávesnice, porovnanie preddefinovaných hesiel, riadenie bzučiaka a odosielanie stavu na LCD displej. Klávesnica slúži na vloženie hesla do mikrokontroléra. Bzučiak sa používa na indikáciu nesprávneho hesla a LCD na zobrazenie stavu alebo správ. Bzučiak má zabudovaný ovládač pomocou NPN tranzistora.
Komponenty:
- Mikrokontrolér 8051 (AT89S52)
- Modul klávesnice 4X4
- Bzučiak
- 16x2 LCD
- Rezistor (1k, 10k)
- Pullup rezistor (10K)
- Kondenzátor (10uf)
- Červená viedla
- Chlebová doska
- IC 7805
- 11,0592 MHz kryštál
- Zdroj
- Pripojovacie vodiče
Prijímanie vstupu z matice klávesnice 4X4 pomocou techniky multiplexovania:
V tomto obvode sme použili techniku multiplexovania na prepojenie klávesnice s mikrokontrolérom 8051 na zadanie hesla do systému. Tu používame klávesnicu 4x4, ktorá má 16 klávesov. Ak chceme použiť 16 klávesov, potrebujeme 16 pinov na pripojenie k 89s52, ale v multiplexnej technike musíme použiť iba 8 pinov na prepojenie 16 klávesov. Ide teda o inteligentný spôsob prepojenia modulu klávesnice.
Technika multiplexovania je veľmi efektívny spôsob, ako znížiť počet pinov použitých v mikrokontroléri na poskytnutie vstupu 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.
Tu vysvetlíme skenovanie riadkov:
Najprv musíme definovať 8 pinov pre modul klávesnice. V ktorom sú prvé 4 špendlíky stĺpec a posledné 4 špendlíky sú riadky.
Na skenovanie riadkov musíme dať dáta alebo signál kolíkom kolíka a načítať tieto dáta alebo signál z kolíka radu. Teraz predpokladajme, že do kolíkov stĺpca dáme nižšie uvedené údaje:
C1 = 0;
C2 = 1;
C3 = 1;
C4 = 1;
A tieto údaje čítame na kolíkoch riadkov (štandardne sú kolíky riadkov HIGH kvôli pull-up rezistoru).
Ak užívateľ stlačí kláves číslo '1', potom R1 zmení HIGH na LOW, znamená R1 = 0; a ovládač rozumie, že používateľ stlačil kláves '1'. A na LCD vytlačí „1“ a uloží „1“ do poľa. Takže táto zmena HIGH to LOW na R1 je hlavnou vecou, ktorou radič rozumie, že bola stlačená nejaká klávesa zodpovedajúca stĺpcu 1.
Teraz, ak používateľ stlačí kláves číslo „2“, potom R1 zostáva na VYSOKEJ úrovni, pretože C1 aj R1 sú už na VYSOKEJ. Z tohto dôvodu nedôjde k nijakej zmene, to znamená, že mikrokontrolér chápe, že v prvom stĺpci nebolo stlačené nič. A rovnako tento principál platí pre všetky ďalšie kolíky. V tomto kroku teda ovládač čaká iba na kľúče v prvom stĺpci: '1', '4', '7' a '*'.
Teraz, ak chceme sledovať kľúče v iných stĺpcoch (napríklad v stĺpci 2), musíme zmeniť údaje na kolíkoch stĺpcov:
C1 = 1;
C2 = 0;
C3 = 1;
C4 = 1;
Tento časový ovládač čaká iba na kľúče v stĺpci dva: „2“, „5“, „8“ a „0“, pretože zmena (HIGH to LOW) nastane až po stlačení klávesu stĺpca dva. Ak stlačíme ľubovoľnú klávesu na stĺpci 1, 3 alebo 4, nedôjde k nijakej zmene, pretože tieto stĺpce sú na úrovni HIGH a riadky sú už na hodnote HIGH.
Rovnako tak je možné sledovať aj kľúče v stĺpcoch C3 a C4 tak, že ich nastavíte na hodnotu 0 súčasne. Skontrolujte tu podrobné vysvetlenie: Rozhranie klávesnice s 8051. Tiež si prečítajte sekciu Kód nižšie, aby ste správne pochopili logiku.
Vysvetlenie obvodu:
Schéma zapojenia tohto digitálneho zámku s použitím 8051 je uvedená nižšie a je možné ho ľahko pochopiť. Kolíky kolóny modulu klávesnice sú priamo pripojené k pinom P0.0, P0.1, P0.2, P0.3 a kolíky radu sú pripojené k P0.4, P0.5, P0.6, P0.7 portu 0 mikrokontroléra 89s52. 16x2 LCD je pripojený k mikrokontroléru 89s52 v 4-bitovom režime. Ovládací pin RS, RW a En sú priamo pripojené k pinom P1.0, GND a P1.2. A dátový pin D4-D7 je pripojený k pinom P1.4, P1.5, P1.6 a P1.7 z 89s52. A jeden bzučiak je pripojený na pin P2.6 cez rezistor.
Vysvetlenie programu:
V programe sme použili preddefinované heslo, toto heslo môže užívateľ definovať v nižšie uvedenom kóde. Keď užívateľ zadá heslo do systému, potom systém porovná heslo zadané používateľom s uloženým alebo preddefinovaným heslom v kóde programu. Ak dôjde k zhode, na LCD displeji sa zobrazí „Access Grated“ a ak sa heslo nezhoduje, na LCD displeji sa zobrazí „Access Denied“ a bzučiak bude nejaký čas nepretržite pípať. Tu sme použili knižnicu string.h. Pomocou tejto knižnice môžeme porovnávať alebo porovnávať dva reťazce pomocou funkcie „strncmp“.
V programe najskôr zahrnieme hlavičkový súbor a definujeme premenné a vstupné a výstupné piny pre klávesnicu a LCD.
#include
Bola vytvorená funkcia na vytvorenie oneskorenia 1 sekundy spolu s niektorými funkciami LCD, ako je inicializácia LCD, tlač reťazca, príkazy atď. Ľahko ich nájdete v kóde. V tomto článku nájdete informácie o rozhraní LCD s rozhraním 8051 a jeho funkciami.
Potom sme v hlavnom programe inicializovali LCD a potom načítame vstup z klávesnice pomocou funkcie keypad () a uložíme vstupné klávesy do poľa a potom ho porovnáme z preddefinovaných údajov poľa pomocou strncmp.
void main () {bzučiak = 1; lcd_init (); lcdstring („elektronický kód“); lcdcmd (0xc0); lcdstring ("zámkový systém"); oneskorenie (400); lcdcmd (1); lcdstring ("Súhrn okruhu"); oneskorenie (400); while (1) {i = 0; klávesnica (); if (strncmp (pass, "4201", 4) == 0)
Ak sa zadané heslo zhoduje, volá sa funkcia accept ():
void accept () {lcdcmd (1); lcdstring („Vitajte“); lcdcmd (192); lcdstring ("Prijatie hesla"); oneskorenie (200); }
A ak je heslo nesprávne, potom sa volá nesprávna () funkcia:
void wrong () {bzučiak = 0; lcdcmd (1); lcdstring ("Chybný prístupový kľúč"); lcdcmd (192); lcdstring ("PLZ Skúste to znova"); oneskorenie (200); bzučiak = 1; }
Skontrolujte nižšie uvedenú funkciu klávesnice v kóde, ktorý číta modul klávesnice vstupného formulára.