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í, například PIR Based security systems, RFID based Security system, Laser security alarms, bio-matrix systems atd. I nyní existují digitální zámky, které lze ovládat pomocí našich chytrých telefonů, znamená ne Další potřeba mít různé klíče, pouze jeden chytrý telefon může ovládat všechny zámky, tento koncept je založen na internetu věcí.
V tomto projektu jsme vysvětlili jednoduchý elektronický kódový zámek pomocí 8051 Microcontorller, který lze odemknout pouze předdefinovaným kódem, pokud zadáme nesprávný kód, systém upozorní sirénou na bzučák. Již jsme vytvořili digitální zámek pomocí Arduina.
Pracovní vysvětlení:
Tento systém obsahuje hlavně mikrokontrolér AT89S52, modul klávesnice, bzučák a LCD. Mikrokontrolér At89s52 ovládá kompletní procesy, jako je převzetí hesla z modulu klávesnice, porovnání předdefinovaných hesel, řízení bzučáku a odeslání stavu na LCD displej. Klávesnice se používá pro vložení hesla do mikrokontroléru. Bzučák se používá k indikaci nesprávného hesla a LCD k zobrazení stavu nebo zpráv na něm. Bzučák má vestavěný ovladač pomocí NPN tranzistoru.
Součásti:
- Mikrokontrolér 8051 (AT89S52)
- Modul klávesnice 4X4
- Bzučák
- 16x2 LCD
- Rezistor (1k, 10k)
- Pullup rezistor (10K)
- Kondenzátor (10uf)
- Červená vedla
- Chlebová deska
- IC 7805
- 11,0592 MHz krystal
- Zdroj napájení
- Připojovací vodiče
Převzetí vstupu z matice klávesnice 4X4 pomocí techniky multiplexování:
V tomto obvodu jsme použili techniku multiplexování k propojení klávesnice s mikrokontrolérem 8051, pro zadávání hesla do systému. Zde používáme klávesnici 4x4, která má 16 kláves. Pokud chceme použít 16 klíčů, potřebujeme 16 pinů pro připojení k 89s52, ale v multiplexní technice musíme použít pouze 8 pinů pro propojení 16 klíčů. Jedná se tedy o chytrý způsob propojení modulu klávesnice.
Technika multiplexování je velmi efektivní způsob, jak snížit počet pinů použitých v mikrokontroléru pro poskytnutí vstupu nebo hesla. V zásadě se tato technika používá dvěma způsoby - jedním je skenování řádků a druhým skenování sloupců.
Zde vysvětlíme skenování řádků:
Nejprve musíme definovat 8 pinů pro modul klávesnice. Ve kterém první 4 piny jsou sloupec a poslední 4 piny jsou řádky.
Pro skenování řádků musíme dát data nebo signál kolíkům sloupce a načíst tato data nebo signál z kolíku řádku. Nyní předpokládejme, že dáme níže uvedená data do pinů sloupců:
C1 = 0;
C2 = 1;
C3 = 1;
C4 = 1;
A tato data čteme na kolících řádků (ve výchozím nastavení jsou kolíky řádků HIGH kvůli pull-up rezistoru).
Pokud uživatel stiskne klávesu číslo '1', pak R1 změní HIGH na LOW znamená R1 = 0; a kontrolér chápe, že uživatel stiskl klávesu '1'. A na LCD vytiskne „1“ a uloží „1“ do pole. Tato změna HIGH to LOW na R1 je tedy hlavní věcí, kterou řadič rozumí, že byla stisknuta nějaká klávesa odpovídající sloupci 1.
Nyní, když uživatel stiskne klávesu číslo 2, pak R1 zůstane na HIGH, protože C1 a R1 jsou již na HIGH. Proto nedojde k žádné změně, to znamená, že mikrokontrolér chápe, že v prvním sloupci nebylo nic stisknuto. A podobně platí tento princip pro všechny další piny. V tomto kroku tedy ovladač čeká pouze na klíče v prvním sloupci: '1', '4', '7' a '*'.
Nyní, pokud chceme sledovat klíče v jiných sloupcích (jako ve sloupci 2), musíme změnit data na kolících sloupců:
C1 = 1;
C2 = 0;
C3 = 1;
C4 = 1;
Tento časový ovladač čeká pouze na klíče ve sloupci dva: „2“, „5“, „8“ a „0“, protože ke změně (VYSOKÁ na NÍZKOU) dojde, pouze když budou stisknuty klávesy ve sloupci dva. Pokud stiskneme libovolnou klávesu ve sloupci 1, 3 nebo 4, nedojde k žádné změně, protože tyto sloupce jsou na HIGH a řádky jsou již na HIGH.
Podobně lze také sledovat klíče ve sloupcích C3 a C4 tak, že z nich uděláte 0 současně. Zde si přečtěte podrobné vysvětlení: Rozhraní klávesnice s 8051. Projděte si také sekci Kód níže, abyste správně porozuměli logice.
Vysvětlení obvodu:
Schéma zapojení tohoto digitálního zámku používajícího 8051 je uvedeno níže a lze jej snadno pochopit. Kolíky sloupce modulu klávesnice jsou přímo připojeny k pinům P0.0, P0.1, P0.2, P0.3 a piny řádků jsou připojeny k P0.4, P0.5, P0.6, P0.7 portu mikrokontroléru 89s52. 16x2 LCD je připojen k mikrokontroléru 89s52 ve 4bitovém režimu. Ovládací kolíky RS, RW a En jsou přímo spojeny s kolíky P1.0, GND a P1.2. A datový pin D4-D7 je připojen k pinům P1.4, P1.5, P1.6 a P1.7 89s52. A jeden bzučák je připojen na pin P2.6 přes odpor.
Vysvětlení programu:
V programu jsme použili předdefinované heslo, toto heslo může uživatel definovat v níže uvedeném kódu. Když uživatel zadá heslo do systému, poté systém porovná heslo zadané uživatelem s uloženým nebo předdefinovaným heslem v kódu programu. Pokud dojde ke shodě, na LCD se zobrazí „Access Grated“ a pokud se heslo neshoduje, na LCD se zobrazí „Access Denied“ a bzučák po určitou dobu nepřetržitě pípne. Zde jsme použili knihovnu string.h. Pomocí této knihovny můžeme porovnat nebo porovnat dva řetězce pomocí funkce „strncmp“.
V programu nejprve zahrneme hlavičkový soubor a definujeme proměnné a vstupní a výstupní piny pro klávesnici a LCD.
#zahrnout
Byla vytvořena funkce pro vytvoření zpoždění 1 sekundy, spolu s některými funkcemi LCD, jako je inicializace LCD, tisk řetězce, příkazy atd. Můžete je snadno najít v kódu. V tomto článku najdete informace o propojení LCD s 8051 a jeho funkcemi.
Poté jsme v hlavním programu inicializovali LCD a poté načetli vstup z klávesnice pomocí funkce keypad () a uloží vstupní klíče do pole a poté jej porovnáme z předdefinovaných dat pole pomocí strncmp.
void main () {bzučák = 1; lcd_init (); lcdstring („elektronický kód“); lcdcmd (0xc0); lcdstring ("Lock System"); zpoždění (400); lcdcmd (1); lcdstring ("Circuit Digest"); zpoždění (400); while (1) {i = 0; klávesnice (); if (strncmp (pass, "4201", 4) == 0)
Pokud se zadané heslo shoduje, volá se funkce accept ():
void accept () {lcdcmd (1); lcdstring ("Vítejte"); lcdcmd (192); lcdstring ("Přijmout heslo"); zpoždění (200); }
A pokud je heslo špatné, volá se funkce wrong ():
void wrong () {bzučák = 0; lcdcmd (1); lcdstring ("Chybný klíč"); lcdcmd (192); lcdstring ("PLZ Zkusit znovu"); zpoždění (200); bzučák = 1; }
Zkontrolujte níže uvedenou funkci klávesnice v kódu, který čte modul klávesnice vstupního formuláře.