This shows you the differences between two versions of the page.
|
pm:prj2024:rvirtan:all-in-one-lock [2024/04/29 14:28] andrei.ciorgan [Introducere] |
pm:prj2024:rvirtan:all-in-one-lock [2024/05/22 19:15] (current) andrei.ciorgan [Software Design] |
||
|---|---|---|---|
| Line 22: | Line 22: | ||
| ===== Hardware Design ===== | ===== Hardware Design ===== | ||
| In realizarea proiectului se vor folosi: | In realizarea proiectului se vor folosi: | ||
| - | * Arduino UNO | + | * Arduino UNO |
| - | * Modul senzor optic de amprenta | + | * Modul senzor optic de amprenta |
| - | * Modul RFID RC522 | + | * Modul RFID RC522 |
| - | * Tastatura matriceala 4x4 | + | * Tastatura matriceala 4x4 |
| - | * 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 ===== | ||