This shows you the differences between two versions of the page.
pm:prj2024:rvirtan:all-in-one-lock [2024/04/29 14:29] andrei.ciorgan [Hardware Design] |
pm:prj2024:rvirtan:all-in-one-lock [2024/05/22 19:15] (current) andrei.ciorgan [Software Design] |
||
---|---|---|---|
Line 28: | Line 28: | ||
* Senzor temperatura DHT11 | * Senzor temperatura DHT11 | ||
* Senzor de fum MQ2 | * Senzor de fum MQ2 | ||
- | * Buzzer activ | + | * Buzzer pasiv |
* Yala electromagnetica ORNO OR-EZ-4033 | * Yala electromagnetica ORNO OR-EZ-4033 | ||
+ | {{:pm:prj2024:rvirtan:all-in-one-lock:desen.png?700|}} | ||
+ | Am inceput proiectarea circuitului prin impartirea pinilor pe fiecare componenta utilizata. Impartirea acestora este urmatoarea: | ||
+ | * Pinii A4 si A5 i-am pastrat pentru comunicatia I2C cu LCD-ul | ||
+ | * Pinii 2,3 sunt pentru comunicatia seriala cu cititorul de amprente | ||
+ | * Pinii 4,5,6,7,8 ii folosesc in comunicatia cu modulul de Keyboard | ||
+ | * Pinii 9,10,11,12,13 sunt alocati comunicarii pe SPI cu senzorul de RFID | ||
+ | * Pinul A0 este asignat citirii valorii calitatii aerului (senzorul de fum) | ||
+ | * Pinul A1 este folosit pentru controlul buzzerului pasiv | ||
+ | * Pinul A2 este rezervat citirii temperaturii | ||
+ | * Pinul A3 este folosit pentru controlul outputului circuitului (in versiunea finala, planuiesc sa inlocuiesc led-ul de pe iesirea acesta cu un releu care sa coordoneze iala electronica) | ||
+ | |||
+ | Se poate observa si cablajul fizic in pozele de mai jos care evidentiaza si functionalitatea senzorului de amprenta. | ||
+ | |||
+ | {{:pm:prj2024:rvirtan:all-in-one-lock:hard1.jpg?700}} | ||
+ | |||
+ | {{:pm:prj2024:rvirtan:all-in-one-lock:hard2.jpg?700}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | Project link: [[https://github.com/ALESandrei54321/Sistem-All-In-One-de-securizare-incapere/blob/main/arduino_project.c|GitHub]] | ||
+ | |||
+ | Am inceput prin crearea unei structuri de baza care sa imi separe functionalitatiile senzorilor de foc (temperatura si fum) de modulele ce interactioneaza direct cu utilizatorul (cele de citire). Acest lucru l-am facut deoarece doresc sa cietsc de pe cei doi senzori de incendiu odata la cateva secunde, nu in continuu. | ||
+ | |||
+ | Ca librarii, am folosit: | ||
+ | * LiquidCrystal_I2C.h - utilizat pentru comunicatia cu LCD-ul | ||
+ | * Adafruit_Fingerprint.h, SoftwareSerial.h - folosit pentru comunicarea cu senzorul de amprente | ||
+ | * I2CKeyPad.h, Wire.h - se folosesc pentru a citi date de la keypad, tot pe baza de I2C | ||
+ | * TimerOne.h - utilizat pentru crearea intreruperilor pentru citirea senzorilor de foc | ||
+ | * SPI.h, MFRC522.h - necesar pentru comunicarea cu modulul de RFID | ||
+ | * dht.h - folosit pentru citirea temperaturii | ||
+ | * pitches.h - util pentru crearea de note pentru buzzer | ||
- | <note tip> | + | Ca implementare propriu-zisa, avem cateva functii care trebuie mentionate: |
- | Descrierea codului aplicaţiei (firmware): | + | * checkFingerprint, checkRFID, checkPassword - acestea se bazeaza pe citirea datelor de la user si verifica daca se indeplinesc conditile pentru deschiderea usii |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | * fireCheck - se apeleaza odata la 8 secunde si citeste temperatura si valoarea calitatii aerului. Daca conditile sunt specifice unui incendiu, va lasa usa deschisa si va porni o alarma |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | * openDoor - metoda ce apeleaza deschiderea usii si genereaza un jingle |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | |
- | * (etapa 3) surse şi funcţii implementate | + | |
- | </note> | + | |
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== |