- Komponenter som brukes:
- Koble til 4x4-tastaturet med Raspberry Pi ved hjelp av multipleksing:
- Kretsbeskrivelse:
- Arbeidsforklaring:
- Programmeringsforklaring:
Sikkerhet er en stor bekymring i vårt daglige liv, og digitale låser har blitt en viktig del av disse sikkerhetssystemene. Det er mange typer teknologier tilgjengelig for å sikre vår plass, som PIR-baserte sikkerhetssystemer, RFID-basert sikkerhetssystem, Lasersikkerhetsalarmer, biomatrisesystemer etc.
Vi har tidligere bygget Digital Lock med passord ved hjelp av Arduino og ved bruk av 8051, her skal vi bygge denne Digital Lock med Raspberry Pi med brukerdefinert passord. Når passordet er angitt, kan brukeren bare få tilgang til døren med riktig passord.
Hvis du ikke er kjent med Raspberry Pi, har vi laget en serie opplæringsprogrammer for å lære Raspberry Pi, med grensesnitt med alle grunnleggende komponenter og noen enkle prosjekter til å begynne med, sjekk.
Komponenter som brukes:
- Raspberry Pi (med oppstartet SD-kort)
- Tastaturmodul
- Summer
- 16x2 LCD
- 10k pott
- 10k motstandspakke (pull-up)
- LED
- 1k motstand
- Brettbrett
- CD / DVD-vogn som Gate
- Effekt 5 volt
- Motordriver L293D
- 12 Volt batteri
- Koble ledninger
Koble til 4x4-tastaturet med Raspberry Pi ved hjelp av multipleksing:
I denne kretsen har vi brukt Multiplexing Technique til å grensesnitt tastaturet for å skrive inn passordet i systemet. Her bruker vi 4x4 multiplex tastatur med 16 taster. Normalt hvis vi vil bruke 16 nøkler, trenger vi 16 pinner for tilkobling til Arduino, men i multipleksingsteknikk trenger vi bare 8 pinner for å grense 16 nøkler. Slik at det er en smart måte å grensesnitt på en tastaturmodul. Lær mer om multipleksingsteknikk og hvordan den fungerer i denne digitale låsen ved hjelp av 8051.
Multiplexing teknikk er en veldig effektiv måte å redusere antall pinner som brukes med mikrocontroller for å gi input eller passord eller tall. I utgangspunktet brukes denne teknikken på to måter - den ene er radeskanning og den andre er kolonneskanning. Hvis vi bruker tastaturbiblioteket (#include
Men her i dette prosjektet har vi implementert en kort måte å kode på det samme tastaturet, uten å bruke tastaturbiblioteket. Vennligst se det i programmeringsdelen nedenfor.
Kretsbeskrivelse:
Kretsløpet til denne Raspberry Pi Digital Door Lock er veldig enkel som inneholder Raspberry Pi 3, tastaturmodul, summer, DVD / CD-vogn som gate og LCD. Her kontrollerer Raspberry Pi hele prosessen som å ta passord fra tastaturmodulen, sammenligne passord, kjøre summer, åpne / lukke porten og sende status til LCD-skjerm. Tastaturet brukes til å skrive inn passord. Buzzer brukes til indikasjoner og drives av innebygd NPN-transistor. LCD brukes til å vise status eller meldinger på den.
Tastaturmodulens kolonnepinner er direkte koblet til GPIO-pinne 22, 23, 24, 25 og radpinnene er koblet til 21, 14, 13, 12 av Raspberry Pi's wringPi-pinner. En 16x2 LCD er koblet til raspberry Pi i 4-biters modus. LCDs kontrollpinne RS, RW og En er direkte koblet til GPIO-pinne 11, GND og 10. Datapinnene D4-D7 er koblet til GPIO-pinnene 6, 15, 4 og 1. Én summer er koblet til GPIO-pinne 8. Og motordriveren L293D er koblet til GPIO pin 28 og 29 i Raspberry Pi. Et 12 volt batteri er koblet til pinne 8 på L293D i forhold til bakken.
Arbeidsforklaring:
Arbeidet med dette prosjektet er enkelt. Når brukeren kjører koden i Raspberry Pi, viser LCD en velkomstmelding og viser deretter “A- Input Password” og i andre linje B- Change Passkey ”. Nå kan brukeren velge sitt valg ved å trykke A og B på tastaturet.
Nå hvis brukeren vil åpne porten, må han trykke 'A' på tastaturet, og deretter vil systemet be om passord. Standardpassordet er “1234”. Nå må brukeren legge inn passordet, og etter at dette systemet vil sjekke passordet, enten det er gyldig eller ikke:
1. Hvis brukeren skriver inn riktig passord, åpner systemet porten.
2. Hvis brukeren skriver inn feil passord, vil systemet sende kommandoen til summeren for å pippe og viser "Access Denied" på LCD-skjermen.
Anta at brukeren vil endre passordet, så må han / hun trykke 'B' på tastaturet, og deretter blir brukeren bedt om "Gjeldende passord" eller "Gjeldende passord". Nå må brukeren legge inn det nåværende passordet, og deretter sjekke systemet korrektheten og utføre en av de gitte oppgavene.
1. Hvis brukeren skriver inn riktig passord, vil systemet be om "Nytt passord", og nå kan brukeren endre passordet ved å skrive inn nytt passord.
2. Og hvis brukeren skriver inn feil passord, vil systemet kjøre summeren og viser “Feil passord: på LCD-skjermen.
Nå må brukeren gjenta hele prosessen igjen for å endre passord.
I utgangspunktet er å åpne og lukke porten ingenting annet enn å rotere en motor med klokken og mot klokken for å åpne og lukke døren. For et lite prosjekt kan du ganske enkelt legge til en DC-motor for å åpne og lukke døren. Vi kan også bruke servomotor eller trinnmotor, men vi må endre koden tilsvarende.
Videre kan du bruke en skikkelig elektronisk dørlås (lett tilgjengelig online) i stedet for CD-vogn. Den har en elektromagnet som holder døren låst når det ikke går strøm gjennom låsen (åpen krets), og når noe strøm går gjennom den, låses låsen opp og døren kan åpnes. Koden vil bli endret tilsvarende, sjekk også denne delte prosjektgjennomgangen: Arduino RFID Door Lock
Programmeringsforklaring:
Programmering ligner mye på Arduino. Arduino-funksjonen bruker klasser, men her har vi gjort denne koden, ved hjelp av c-programmering, uten klasser. Vi har også installert et wiringPi-bibliotek for GPIOer.
Nå må vi først og fremst inkludere nødvendige biblioteker og deretter definere pinner for LCD, summer, LED og motor.
#inkludere
Etter det definerer pins for tastaturets rad og kolonner og definerer array for lagring av passord og tastaturnummer.
røyke pass; char pass1 = {'1', '2', '3', '4'}; int n = 0; røyerekke = {21, 14, 13, 12}; røye kol = {22, 23, 24, 25}; char num = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', ' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
Etter det har vi skrevet noen funksjoner for å kjøre LCD-skjermen:
Funksjon void lcdcmd brukes til å sende kommando til LCD og void write- funksjon brukes til å sende data til LCD.
Funksjons tomtrykk brukes til å sende streng til LCD.
ugyldig utskrift (char * str) {mens (* str) {skriv (* str); str ++; }}
Funksjon tomrom markør brukes til å stille inn markørposisjon i LCD-skjermen.
void setCursor (int x, int y) {int set = 0; hvis (y == 0) er satt = 128 + x; hvis (y == 1) sett = 192 + x; lcdcmd (sett); }
Funksjon void clear () brukes til å rydde LCD-skjermen og void buzzer () brukes til å pippe summeren.
Funksjon void gate_open (), void gate_stop () og void gate_close () brukes til å kjøre Gate (CD Trolley)
ugyldig gate_open () {digitalWrite (m1, LOW); digitalWrite (m2, HIGH); forsinkelse (2000); } ugyldig gate_stop () {digitalWrite (m1, LOW); digitalWrite (m2, LAV); forsinkelse (2000); } ugyldig gate_close () {digitalWrite (m1, HIGH); digitalWrite (m2, LAV); forsinkelse (2000); }
Denne funksjonen brukes til å initialisere LCD i 4-biters modus.
tomrom begynner (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
Gitt ugyldig tastatur () -funksjon brukes til å grensesnitt tastaturmodul med Raspberry Pi med en 'kort metode'.
ugyldig tastatur () {int i, j; int x = 0, k = 0; forsinkelse (2000); mens (k <4) {for (i = 0; i <4; i ++) {digitalWrite (col, LOW); for (j = 0; j <4; j ++) {if (digitalRead (rad) == 0) {setCursor (x, 1);…………………
Sjekk alle funksjonene i Fullkoden nedenfor, koden er enkel og selvforklarende.