- Korištene komponente:
- Povezivanje 4x4 tipkovnice s Raspberry Pi pomoću multipleksiranja:
- Opis kruga:
- Radno objašnjenje:
- Objašnjenje programiranja:
Sigurnost je glavna briga u našem svakodnevnom životu, a digitalne brave postale su važan dio ovih sigurnosnih sustava. Dostupne su mnoge vrste tehnologija koje osiguravaju naše mjesto, poput PIR sigurnosnih sustava, RFID sigurnosnog sustava, laserskih sigurnosnih alarma, bio-matričnih sustava itd.
Prethodno smo izgradili Digital Lock s lozinkom koristeći Arduino i koristeći 8051, ovdje ćemo izraditi ovu Digitalnu bravu pomoću Raspberry Pi s korisnički definiranom lozinkom. Jednom kada je lozinka postavljena, korisnik može pristupiti vratima samo s ispravnom lozinkom.
Ako niste upoznati s Raspberry Pi, stvorili smo niz vodiča za učenje Raspberry Pi, uz međusobno povezivanje svih osnovnih komponenata i nekoliko jednostavnih projekata za početak, provjerite.
Korištene komponente:
- Raspberry Pi (s pokretanom SD karticom)
- Modul tipkovnice
- Zujalica
- LCD 16x2
- 10k lonac
- Paket otpornika od 10 k (povlačenje)
- LED
- 1k otpornik
- Daska za kruh
- CD / DVD kolica kao vrata
- Snaga 5 volti
- Vozač motora L293D
- 12-voltna baterija
- Spajanje žica
Povezivanje 4x4 tipkovnice s Raspberry Pi pomoću multipleksiranja:
U ovom smo krugu koristili Multiplexing tehniku za povezivanje tipkovnice za unos lozinke u sustav. Ovdje koristimo 4x4 multipleksnu tipkovnicu sa 16 tipki. Ako želimo koristiti 16 tipki, tada nam je potrebno 16 pinova za povezivanje s Arduinom, ali u tehnici multipleksiranja trebamo samo 8 pinova za povezivanje 16 tipki. Tako da je to pametan način povezivanja modula tipkovnice. Saznajte više o tehnici multipleksiranja i radu s ovom digitalnom bravom pomoću 8051.


Tehnika multipleksiranja vrlo je učinkovit način za smanjenje broja pinova koji se koriste s mikrokontrolerom za unos ili lozinku ili brojeve. U osnovi se ova tehnika koristi na dva načina - jedan je skeniranje redaka, a drugi skeniranje stupaca. Ako koristimo knjižnicu tipkovnice (#include
Ali ovdje u ovom projektu implementirali smo kratki način kodiranja za istu tipkovnicu, bez upotrebe knjižnice tipkovnice. Molimo pogledajte u donjem odjeljku za programiranje.
Opis kruga:
Sklop ove digitalne brave za vrata Raspberry Pi vrlo je jednostavan koji sadrži Raspberry Pi 3, modul tipkovnice, zujalicu, DVD / CD kolica kao vrata i LCD. Ovdje Raspberry Pi kontrolira cjelovit postupak poput uzimanja lozinke iz modula tipkovnice, usporedbe lozinki, vožnje zujalicom, otvaranja / zatvaranja vrata i slanja statusa na LCD zaslon. Tipkovnica se koristi za unos lozinke. Zujalica se koristi za indikacije, a pokreće je ugrađeni NPN tranzistor. LCD se koristi za prikaz statusa ili poruka na njemu.

Pribadače stupaca modula tipkovnice izravno su povezane s GPIO pinom 22, 23, 24, 25, a redne pribadače spojene su na 21, 14, 13, 12 pinring pinova Raspberryja. 16x2 LCD povezan sa malina Pi u 4-bitnom modu. Kontrolni pin RS-a, RS i En LCD-a izravno su povezani s GPIO-pinom 11, GND i 10. Podatkovne igle D4-D7 spojene su na GPIO-pinove 6, 15, 4 i 1. Jedan zujalica spojen je na GPIO-pin 8. I upravljački program motora L293D spojen je na GPIO pinu 28 i 29 Raspberry Pi. 12 V akumulatora spojen na pin 8 L293D u odnosu na tlo.
Radno objašnjenje:
Rad na ovom projektu je jednostavan. Kada korisnik pokrene kôd u Raspberry Pi, na LCD-u se prikazuje neka poruka dobrodošlice, a nakon toga prikazuje se "A- Unesite lozinku", a u drugom retku B - Promijeni lozinku ". Sada korisnik može odabrati svoj izbor pritiskom na A i B na tipkovnici.
Ako korisnik želi otvoriti vrata, mora pritisnuti 'A' na tipkovnici i tada će sustav zatražiti lozinku. Zadana lozinka je "1234". Sada korisnik mora unijeti lozinku i nakon što će ovaj sustav provjeriti lozinku, je li valjana ili ne:
1. Ako korisnik unese ispravnu lozinku, sustav će otvoriti vrata.
2. Ako korisnik unese pogrešnu lozinku, sustav će poslati naredbu zvučniku da se oglasi zvučnim signalom i na LCD-u prikazuje "Pristup odbijen".

Pretpostavimo sada da korisnik želi promijeniti lozinku, tada mora pritisnuti 'B' na tipkovnici i tada će se od korisnika tražiti "Trenutna lozinka" ili "Trenutna lozinka". Sada korisnik mora unijeti trenutnu lozinku, a zatim sustav provjeriti njezinu ispravnost i izvršiti jedan od zadanih zadataka.
1. Ako korisnik unese ispravnu lozinku, sustav će zatražiti "Nova lozinka" i sada korisnik može promijeniti lozinku unošenjem nove lozinke.
2. A ako korisnik unese pogrešnu lozinku, tada će sustav pokrenuti zujalicu i na LCD-u će se prikazati "Wrong Password: Wrong Password:.
Sada korisnik treba ponoviti cijeli postupak da bi promijenio lozinku.
U osnovi, otvaranje i zatvaranje vrata nije ništa drugo nego okretanje motora u smjeru kazaljke na satu i u smjeru suprotnom od kazaljke na satu za otvaranje i zatvaranje vrata. Za mali projekt možete jednostavno dodati istosmjerni motor za otvaranje i zatvaranje vrata. Također možemo koristiti servo ili koračni motor, ali u skladu s tim moramo promijeniti kôd.
Dalje možete koristiti odgovarajuću elektroničku bravu vrata (lako dostupnu na mreži) umjesto CD kolica. Ima Electro magnet koji drži vrata zaključanima kad kroz bravu ne prolazi struja (otvoreni krug), a kad kroz njega prođe neka struja, brava se otključa i vrata se mogu otvoriti. Kôd će se u skladu s tim izmijeniti, provjerite i ovaj zajednički pregled projekta: Arduino RFID Lock vrata
Objašnjenje programiranja:
Programiranje je mnogo slično Arduinu. Funkcija Arduino koristi klase, ali ovdje smo napravili ovaj kod, koristeći programiranje c, bez klasa. Također smo instalirali knjižnicu wiringPi za GPIO.
Sada prije svega moramo uključiti potrebne knjižnice, a zatim definirati igle za LCD, zujalicu, LED i motor.
#include
Nakon toga definirajte igle za retke i stupce tipkovnice i definirajte niz za pohranu lozinki i brojeva tipkovnice.
char pass; char pass1 = {'1', '2', '3', '4'}; int n = 0; red char = {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 '}};
Nakon nje napisali smo neke funkcije za upravljanje LCD-om:
Funkcija void lcdcmd koristi se za slanje naredbe na LCD, a funkcija void write za slanje podataka na LCD.
Ispis funkcije void koristi se za slanje niza na LCD.
isprazni ispis (char * str) {while (* str) {write (* str); str ++; }}
Funkcija void setKursor se koristi za podešavanje položaja kursora na LCD-u.
void setCursor (int x, int y) {int set = 0; ako je (y == 0) postavljeno = 128 + x; ako (y == 1) set = 192 + x; lcdcmd (set); }
Funkcija void clear () koristi se za brisanje LCD-a, a void zujalo () koristi se za zvučni signal.
Funkcija void gate_open (), void gate_stop () i void gate_close () koriste se za upravljanje vratima (CD kolica)
void gate_open () {digitalWrite (m1, LOW); digitalWrite (m2, VISOKO); kašnjenje (2000); } void gate_stop () {digitalWrite (m1, LOW); digitalWrite (m2, LOW); kašnjenje (2000); } void gate_close () {digitalWrite (m1, HIGH); digitalWrite (m2, LOW); kašnjenje (2000); }
Dana funkcija koristi se za inicijalizaciju LCD-a u 4-bitnom načinu.
void begin (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
Dana void funkcija tipkovnice () koristi se za povezivanje modula tipkovnice s Raspberry Pi 'kratkom metodom'.
void tipkovnica () {int i, j; int x = 0, k = 0; kašnjenje (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);…………………
U nastavku provjerite sve funkcije u cjelovitom kodu, kôd je jednostavan i sam po sebi razumljiv.
