- Naudoti komponentai:
- 4x4 klaviatūros prijungimas su „Raspberry Pi“ naudojant multipleksavimą:
- Grandinės aprašymas:
- Darbinis paaiškinimas:
- Programavimo paaiškinimas:
Saugumas yra pagrindinis mūsų kasdienio gyvenimo rūpestis, o skaitmeninės spynos tapo svarbia šių apsaugos sistemų dalimi. Mūsų vietai apsaugoti yra daugybė tipų technologijų, tokių kaip PIR pagrįstos apsaugos sistemos, RFID pagrįsta apsaugos sistema, lazerio apsaugos signalizacijos, biologinės matricos sistemos ir kt.
Anksčiau mes sukūrėme „Digital Lock“ su slaptažodžiu naudodami „Arduino“ ir naudodami 8051, čia mes sukursime šią skaitmeninę spyną naudodami „Raspberry Pi“ su vartotojo nustatytu slaptažodžiu. Nustačius slaptažodį, vartotojas gali patekti į duris tik su teisingu slaptažodžiu.
Jei nesate susipažinę su „Raspberry Pi“, mes sukūrėme „Raspberry Pi“ mokymosi vadovėlių seriją, sąsają su visais pagrindiniais komponentais ir pradžia su keliais paprastais projektais, patikrinkite.
Naudoti komponentai:
- „Raspberry Pi“ (su įkelta SD kortele)
- Klaviatūros modulis
- Buzeris
- 16x2 LCD ekranas
- 10 tūkst. Puodo
- 10 k varžų paketas (ištraukiamas)
- LED
- 1k rezistorius
- Bandomoji Lenta
- CD / DVD vežimėlis kaip „Gate“
- Galia 5 voltai
- Variklio vairuotojas L293D
- 12 voltų baterija
- Jungiamieji laidai
4x4 klaviatūros prijungimas su „Raspberry Pi“ naudojant multipleksavimą:
Šioje grandinėje mes naudojome „ Multiplexing Technique“, kad susietume klaviatūrą suvedant slaptažodį sistemoje. Čia mes naudojame 4x4 daugialypę klaviatūrą su 16 klavišų. Paprastai, jei norime naudoti 16 raktų, mums reikia 16 kaiščių prisijungimui prie „Arduino“, tačiau multipleksavimo technikoje mums reikia tik 8 kaiščių, skirtų 16 raktų susiejimui. Taigi, tai yra protingas būdas susieti klaviatūros modulį. Sužinokite daugiau apie multipleksavimo techniką ir jos veikimą šioje skaitmeninėje spynoje naudojant 8051.
Multipleksavimo technika yra labai efektyvus būdas sumažinti kaiščių, naudojamų su mikrovaldikliu, skaičių įvedant slaptažodį ar slaptažodžius. Iš esmės ši technika naudojama dviem būdais - vienas yra eilių nuskaitymas, o kitas - stulpelių nuskaitymas. Jei mes naudojame klaviatūros biblioteką (#include
Bet šiame projekte mes įdiegėme trumpą tos pačios klaviatūros kodavimo būdą nenaudodami klaviatūros bibliotekos. Žr. Tai žemiau esančiame programavimo skyriuje.
Grandinės aprašymas:
Šio „ Raspberry Pi“ skaitmeninio durų užrakto grandinė yra labai paprasta, kurioje yra „ Raspberry Pi 3“, klaviatūros modulis, garsinis signalas, DVD / CD vežimėlis kaip vartai ir LCD. Čia „Raspberry Pi“ valdo visą procesą, pavyzdžiui, slaptažodžio formos klaviatūros modulio paėmimą, slaptažodžių palyginimą, garsinio signalo valdymą, vartų atidarymą / uždarymą ir būsenos siuntimą į LCD ekraną. Klaviatūra naudojama įvesti slaptažodį. Buzzer yra naudojamas indikacijoms rodyti ir valdomas įmontuotu NPN tranzistoriumi. Skystųjų kristalų ekranas naudojamas būsenai ar pranešimams rodyti.
Klaviatūros modulio stulpelių kaiščiai yra tiesiogiai prijungti prie GPIO kaiščių 22, 23, 24, 25, o eilutės kaiščiai yra prijungti prie 21, 14, 13, 12 „Raspberry Pi“ „wringPi“ kaiščių. 16x2 LCD prijungtas su aviečių Pi per 4 bitų režimu. LCD, valdomą pin RS, RW ir En yra tiesiogiai prijungtas prie GPIO kaiščio 11, GND ir 10. duomenis, Pins D4-D7 yra prijungtas prie GPIO kaiščių 6, 15, 4 ir 1. Viena signalizatorius yra prijungtas bent GPIO kaiščio 8. Ir Motor Driver L293D yra prijungtas prie Raspberry Pi GPIO 28 ir 29 kaiščių. 12 voltų baterija yra prijungtas prie kontaktų 8 d L293D, atsižvelgiant į įžeminimą.
Darbinis paaiškinimas:
Darbas šiame projekte yra paprastas. Kai vartotojas paleidžia kodą „Raspberry Pi“, skystųjų kristalų ekrane rodomas pasveikinimo pranešimas, o po jo rodomas „A- įvesties slaptažodis“, o antroje eilutėje - „Keisti kodą“. Dabar vartotojas gali pasirinkti savo pasirinkimą paspausdamas A ir B klaviatūroje.
Dabar, jei vartotojas nori atidaryti vartus, jis turi paspausti "A" klaviatūroje ir tada sistema paprašys slaptažodžio. Numatytasis slaptažodis yra „1234“. Dabar vartotojas turi įvesti slaptažodį ir po to, kai ši sistema patikrins slaptažodį, ar jis galioja, ar ne:
1. Jei vartotojas įveda teisingą slaptažodį, sistema atidarys vartus.
2. Jei vartotojas įveda neteisingą slaptažodį, sistema išsiųs komandą signalui pyptelėti ir LCD ekrane rodys „Access Denied“.
Tarkime, kad vartotojas nori pakeisti slaptažodį, tada klaviatūroje reikia paspausti „B“ ir tada vartotojui bus paprašyta „Dabartinis slaptažodis“ arba „Dabartinis slaptažodis“. Dabar vartotojas turi įvesti dabartinį slaptažodį, tada sistema patikrina jo teisingumą ir atlieka vieną iš nurodytų užduočių.
1. Jei vartotojas įveda teisingą slaptažodį, sistema paprašys „naujo slaptažodžio“ ir dabar vartotojas gali pakeisti slaptažodį įvesdamas naują slaptažodį.
2. Ir jei vartotojas įves neteisingą slaptažodį, sistema valdys garsinį signalą ir LCD ekrane rodys „Neteisingas slaptažodis:.
Dabar vartotojas turi dar kartą pakartoti visą procesą, kad pakeistų slaptažodį.
Iš esmės vartų atidarymas ir uždarymas yra ne kas kita, kaip protingo ir prieš laikrodžio rodyklę pasukti variklio laikrodį, kad atidarytumėte ir uždarytumėte duris. Mažam projektui galite tiesiog pridėti nuolatinės srovės variklį, kad atidarytumėte ir uždarytumėte duris. Mes taip pat galime naudoti „Servo“ arba „stepper“ variklį, tačiau mes turime atitinkamai pakeisti kodą.
Be to, vietoj CD vežimėlio galite naudoti tinkamą elektroninę durų spyną (lengvai prieinamą internete). Jame yra „Electro“ magnetas, kuris palaiko duris užrakintas, kai per spyną nėra srovės (atvira grandinė), o kai pro ją praeina srovė, spyna atrakinama ir duris galima atidaryti. Kodas bus atitinkamai pakeistas, taip pat patikrinkite šią bendrą projekto apžvalgą: „Arduino RFID Door Lock“
Programavimo paaiškinimas:
Programavimas yra labai panašus į „Arduino“. „Arduino“ funkcija naudoja klases, bet čia mes padarėme šį kodą, naudodami c programavimą, be klasių. Mes taip pat įdiegėme „ wiringPi“ biblioteką GPIO.
Dabar pirmiausia turime įtraukti reikalingas bibliotekas ir tada apibrėžti LCD, garsinio signalo, LED ir variklio kaiščius.
# įtraukti
Po to nustatykite klaviatūros eilučių ir stulpelių kaiščius ir nustatykite masyvą slaptažodžio ir klaviatūros numerių saugojimui.
char pass; char pass1 = {'1', '2', '3', '4'}; int n = 0; simbolių eilutė = {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 to mes parašėme keletą LCD valdymo funkcijų:
Funkcija void lcdcmd naudojama komandai siųsti į LCD, o void write funkcija naudojama duomenims siųsti į LCD.
Funkcijos tuščias spausdinimas naudojamas siunčiant eilutę į LCD.
negaliojantis spausdinimas (char * str) {while (* str) {write (* str); str ++; }}
Funkcija void setCursor naudojamas žymeklio padėčiai LCD nustatyti.
void setCursor (int x, int y) {int set = 0; jei (y == 0) aibė = 128 + x; jei (y == 1) aibė = 192 + x; lcdcmd (rinkinys); }
Funkcija „ void clear clear“ () naudojama norint išvalyti skystųjų kristalų ekraną, o „ void“ garsinis signalas () naudojamas pyptelėti.
Funkcijos void gate_open (), void gate_stop () ir void gate_close () naudojamos vartams vairuoti (CD vežimėlis).
void gate_open () {digitalWrite (m1, LOW); „digitalWrite“ (m2, AUKŠTAS); vėlavimas (2000); } void gate_stop () {digitalWrite (m1, LOW); „digitalWrite“ (m2, LOW); vėlavimas (2000); } void gate_close () {digitalWrite (m1, HIGH); „digitalWrite“ (m2, LOW); vėlavimas (2000); }
Pateikta funkcija naudojama inicializuoti LCD 4 bitų režimu.
negaliojanti pradžia (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
Atsižvelgiant į negaliojančią klaviatūros () funkciją, klaviatūros modulis sujungiamas su „Raspberry Pi“ naudojant „trumpą metodą“.
negaliojanti klaviatūra () {int i, j; int x = 0, k = 0; vėlavimas (2000); o (k <4) {už (i = 0; i <4; i ++) {digitalWrite (col, LOW); už (j = 0; j <4; j ++) {if (digitalRead (eilutė) == 0) {setCursor (x, 1);…………………
Patikrinkite visas funkcijas, pateiktas žemiau esančiame Visame kode. Kodas yra lengvas ir savaime suprantamas.