- Izmantotās sastāvdaļas:
- 4x4 tastatūras savienošana ar Raspberry Pi, izmantojot multipleksēšanu:
- Ķēdes apraksts:
- Darba skaidrojums:
- Programmēšanas skaidrojums:
Drošība ir nopietnas rūpes mūsu ikdienas dzīvē, un digitālās slēdzenes ir kļuvušas par nozīmīgu šo drošības sistēmu daļu. Mūsu vietas nodrošināšanai ir pieejamas daudz veidu tehnoloģijas, piemēram, uz PIR balstītas drošības sistēmas, uz RFID balstīta drošības sistēma, lāzera drošības trauksmes signāli, biomatricas sistēmas utt.
Mēs iepriekš esam izveidojuši digitālo atslēgu ar paroli, izmantojot Arduino un 8051, šeit mēs izveidosim šo digitālo slēdzeni, izmantojot Raspberry Pi ar lietotāja definētu paroli. Kad parole ir iestatīta, lietotājs var piekļūt durvīm tikai ar pareizu paroli.
Ja neesat pazīstams ar Raspberry Pi, mēs esam izveidojuši virkni apmācību, lai iemācītos Raspberry Pi, ar saskarni ar visiem pamata komponentiem un dažiem vienkāršiem projektiem, ar kuriem sākt, pārbaudiet.
Izmantotās sastāvdaļas:
- Aveņu Pi (ar sāknētu SD karti)
- Tastatūras modulis
- Buzzer
- 16x2 LCD
- 10k katls
- 10k pretestības pakete (Pull-up)
- LED
- 1k rezistors
- Maizes dēlis
- CD / DVD ratiņi kā vārti
- Jauda 5 volti
- Motora vadītājs L293D
- 12 voltu akumulators
- Savienojošie vadi
4x4 tastatūras savienošana ar Raspberry Pi, izmantojot multipleksēšanu:
Šajā shēmā mēs esam izmantojuši multipleksēšanas tehniku, lai saskarnei pievienotu tastatūru, lai sistēmā ievadītu paroli. Šeit mēs izmantojam 4x4 multipleksās tastatūras ar 16 taustiņiem. Parasti, ja mēs vēlamies izmantot 16 atslēgas, savienojumam ar Arduino ir nepieciešami 16 tapas, bet multipleksēšanas tehnikā mums ir nepieciešami tikai 8 tapas, lai savienotu 16 atslēgas. Tā ka tas ir gudrs veids, kā saskarni papildināt ar tastatūru. Uzziniet vairāk par multipleksēšanas tehniku un tās darbību šajā digitālajā slēdzenē, izmantojot 8051.
Multipleksēšanas tehnika ir ļoti efektīvs veids, kā samazināt ar mikrokontrolleru izmantoto tapu skaitu ievades vai paroles vai numuru nodrošināšanai. Būtībā šo paņēmienu izmanto divējādi - viens ir rindu skenēšana, bet otrs - kolonnu skenēšana. Ja mēs izmantojam tastatūras bibliotēku (#include
Bet šajā projektā mēs esam ieviesuši īsu kodēšanas veidu tai pašai tastatūrai, neizmantojot tastatūras bibliotēku. Lūdzu, skatiet to zemāk esošajā programmēšanas sadaļā.
Ķēdes apraksts:
Šīs Raspberry Pi digitālās durvju slēdzenes ķēde ir ļoti vienkārša, kas satur Raspberry Pi 3, tastatūras moduli, skaņas signālu, DVD / CD ratiņus kā vārtus un LCD. Šeit Raspberry Pi kontrolē visu procesu, piemēram, paroles formas tastatūras moduļa ņemšanu, paroļu salīdzināšanu, skaņas signāla vadīšanu, vārtu atvēršanu / aizvēršanu un statusa sūtīšanu uz LCD displeju. Tastatūru izmanto paroles ievadīšanai. Buzzer tiek izmantots indikācijām, un to vada iebūvēts NPN tranzistors. LCD tiek izmantots statusa vai ziņojumu parādīšanai tajā.
Tastatūras moduļa kolonnu tapas ir tieši savienotas ar GPIO tapām 22, 23, 24, 25 un rindas tapas ir savienotas ar 21, 14, 13, 12 no Raspberry Pi wringPi tapām. 16x2 LCD ir saistīts ar aveņu Pi ar 4-bitu režīmā. LCD vadības tapa RS, RW un En ir tieši savienota ar GPIO tapām 11, GND un 10. Datu tapas D4-D7 ir savienotas ar GPIO tapām 6, 15, 4 un 1. Viens skaņas signāls ir pievienots pie GPIO tapas 8. Un motora draiveris L293D ir savienots ar Raspberry Pi GPIO tapām 28 un 29. 12 volt akumulators ir savienots ar L293D pin 8 attiecībā uz zemes.
Darba skaidrojums:
Šī projekta darbība ir vienkārša. Kad lietotājs palaiž Raspberry Pi kodu, LCD displejā tiek parādīts apsveikuma ziņojums un pēc tam uzraksts “A- Input Password” un otrajā rindiņā B- Change Passkey. Tagad lietotājs var izvēlēties savu izvēli, tastatūrā nospiežot A un B.
Tagad, ja lietotājs vēlas atvērt vārtus, viņam tastatūrā jānospiež "A", un pēc tam sistēma pieprasīs paroli. Noklusējuma parole ir “1234”. Tagad lietotājam ir jāievada parole, un pēc tam, kad šī sistēma pārbaudīs paroli, neatkarīgi no tā, vai tā ir derīga vai nē:
1. Ja lietotājs ievadīs pareizo paroli, sistēma atvērs vārtus.
2. Ja lietotājs ievadīs nepareizu paroli, sistēma nosūtīs signālu skaņas signālam un uz LCD parādīs “Access Denied”.
Tagad pieņemsim, ka lietotājs vēlas nomainīt paroli, tad tastatūrā viņam jānospiež 'B', un pēc tam lietotājam tiks lūgts ievadīt pašreizējo paroli vai pašreizējo paroli. Tagad lietotājam jāievada pašreizējā parole, pēc tam sistēmai jāpārbauda tās pareizība un jāveic viens no dotajiem uzdevumiem.
1. Ja lietotājs ievadīs pareizo paroli, sistēma pieprasīs “Jauna parole”, un tagad lietotājs var mainīt paroli, ievadot jaunu paroli.
2. Un, ja lietotājs ievadīs nepareizu paroli, sistēma darbinās skaņas signālu un uz LCD parādīs “Nepareiza parole:.
Tagad, lai nomainītu paroli, lietotājam ir jāatkārto viss process.
Būtībā vārtu atvēršana un aizvēršana ir nekas cits, kā griezt Motora pulksteni gudri un pretēji pulksteņrādītāja virzienam, lai atvērtu un aizvērtu durvis. Nelielam projektam varat vienkārši pievienot līdzstrāvas motoru, lai atvērtu un aizvērtu durvis. Mēs varam izmantot arī servo vai soļu motoru, taču mums attiecīgi jāmaina kods.
Turklāt CD ratiņu vietā varat izmantot pareizu elektronisko durvju slēdzeni (viegli pieejams tiešsaistē). Tam ir elektromagnēts, kas uztur durvis aizslēgtas, ja caur slēdzeni netiek atvērta strāva (atvērta ķēde), un, kad caur to iet kāda strāva, slēdzene tiek atbloķēta un durvis var atvērt. Kods tiks attiecīgi mainīts, pārbaudiet arī šo kopīgo projekta pārskatu: Arduino RFID durvju slēdzene
Programmēšanas skaidrojums:
Programmēšana ir daudz līdzīga Arduino. Arduino funkcija izmanto klases, bet šeit mēs esam izdarījuši šo kodu, izmantojot c programmēšanu, bez klasēm. Mēs esam uzstādījuši arī wiringPi bibliotēku GPIO.
Vispirms mums jāiekļauj nepieciešamās bibliotēkas un pēc tam jānosaka LCD, skaņas signāla, LED un motora tapas.
# iekļaut
Pēc tam definējiet tapas tastatūras rindai un kolonnām un definējiet masīvu paroles un tastatūras numuru glabāšanai.
char caurlaide; char pass1 = {'1', '2', '3', '4'}; int n = 0; char rinda = {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 '}};
Pēc tam mēs esam uzrakstījuši dažas funkcijas LCD vadīšanai:
Funkcija void lcdcmd tiek izmantota komandu nosūtīšanai uz LCD, un void write funkcija tiek izmantota datu nosūtīšanai uz LCD.
Funkcija void print tiek izmantota virknes nosūtīšanai uz LCD.
void print (char * str) {while (* str) {write (* str); str ++; }}
Funkcija void setCursor tiek izmantots, lai iestatītu kursora pozīciju LCD ekrānā.
void setCursor (int x, int y) {int kopa = 0; ja (y == 0) kopa = 128 + x; ja (y == 1) kopa = 192 + x; lcdcmd (komplekts); }
Funkcija void clear () tiek izmantota, lai notīrītu LCD, un void skaņas signāls () tiek izmantots, lai pīkstētu skaņas signālu.
Funkcija void gate_open (), void gate_stop () un void gate_close () tiek izmantota vārtu vadīšanai (CD ratiņi)
void gate_open () {digitalWrite (m1, LOW); digitalWrite (m2, AUGSTS); kavēšanās (2000); } void gate_stop () {digitalWrite (m1, LOW); digitalWrite (m2, LOW); kavēšanās (2000); } void gate_close () {digitalWrite (m1, HIGH); digitalWrite (m2, LOW); kavēšanās (2000); }
Attiecīgā funkcija tiek izmantota, lai inicializētu LCD 4 bitu režīmā.
void begin (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
Ņemot vērā tukšās tastatūras () funkciju, tastatūras modulis tiek savienots ar Raspberry Pi ar “īsu metodi”.
void tastatūra () {int i, j; int x = 0, k = 0; kavēšanās (2000); kamēr (k <4) {par (i = 0; i <4; i ++) {digitalWrite (kol, LOW); par (j = 0; j <4; j ++) {if (digitalRead (rinda) == 0) {setCursor (x, 1);…………………
Pārbaudiet visas funkcijas zemāk esošajā pilnajā kodā, kods ir viegli un pats par sevi saprotams.