Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2025:fstancu:miruna.stefan0207 [2025/05/18 13:31]
miruna.stefan0207
pm:prj2025:fstancu:miruna.stefan0207 [2025/05/29 23:45] (current)
miruna.stefan0207
Line 1: Line 1:
-====== House Monitoring System ======+====== House Monitoring System ​- ŞTEFAN Miruna-Andreea ​======
  
 <note tip> <note tip>
Line 24: Line 24:
 | Modul Senzor de Temperatura și Umiditate DHT22 | [[https://​www.optimusdigital.ro/​ro/​senzori-senzori-de-temperatura/​1449-modul-senzor-de-temperatura-i-umiditate-dht22.html|Link produs]] | | Modul Senzor de Temperatura și Umiditate DHT22 | [[https://​www.optimusdigital.ro/​ro/​senzori-senzori-de-temperatura/​1449-modul-senzor-de-temperatura-i-umiditate-dht22.html|Link produs]] |
 | Modul MicroSD ​     | [[https://​sigmanortec.ro/​Modul-MicroSD-p126079625|Link produs]] | | Modul MicroSD ​     | [[https://​sigmanortec.ro/​Modul-MicroSD-p126079625|Link produs]] |
-| Modul buzzer ​activ montat pe PCB             | [[https://​www.optimusdigital.ro/​ro/​audio-buzzere/12513-pcb-mounted-active-buzzer-module.html?​search_query=Modul+buzzer+activ+montat+pe+PCB&​results=2|Link produs]] |+| Modul buzzer ​            | [[https://​www.optimusdigital.ro/​ro/​componente-calculatoare/5560-buzzer-pentru-placa-de-baza-de-la-calculator.html?​search_query=buzzer+pc&​results=62|Link produs]] |
 | LCD 1602 cu Interfata I2C si Backlight Galben-Verde | [[https://​www.optimusdigital.ro/​ro/​optoelectronice-lcd-uri/​62-lcd-1602-cu-interfata-i2c-si-backlight-galben-verde.html?​search_query=LCD+1602+cu+Interfata+I2C+si+Backlight+Galben-Verde&​results=1|Link produs]] | | LCD 1602 cu Interfata I2C si Backlight Galben-Verde | [[https://​www.optimusdigital.ro/​ro/​optoelectronice-lcd-uri/​62-lcd-1602-cu-interfata-i2c-si-backlight-galben-verde.html?​search_query=LCD+1602+cu+Interfata+I2C+si+Backlight+Galben-Verde&​results=1|Link produs]] |
 | Breadboard 830p MB-102 | [[https://​sigmanortec.ro/​Breadboard-830-puncte-MB-102-p125923983|Link produs]] | | Breadboard 830p MB-102 | [[https://​sigmanortec.ro/​Breadboard-830-puncte-MB-102-p125923983|Link produs]] |
Line 46: Line 46:
 Diagrama desenată in Wokwi: Diagrama desenată in Wokwi:
  
-{{:​pm:​prj2025:​fstancu:​diagrama_wokwi_final.jpg?600|}}+{{:​pm:​prj2025:​fstancu:​miruna_final_diagrama_wowki.png?600|}}
  
 Observație:​ La modulul pentru card microSD, pinul DI este echivalent cu MOSI de pe modulul real, iar pinul DO cu MISO. Observație:​ La modulul pentru card microSD, pinul DI este echivalent cu MOSI de pe modulul real, iar pinul DO cu MISO.
Line 68: Line 68:
   * senzorul de temperatură și umiditate DHT22   * senzorul de temperatură și umiditate DHT22
          * (-) - GND (firul negru)          * (-) - GND (firul negru)
-         * OUT - pinul ~9 al plăcuței (~D9 PB1) (am ales dintre pinii digitali nerezervați) (firul alb)+         * OUT - pinul al plăcuței (D8 PB0) (am ales dintre pinii digitali nerezervați) (firul alb)
          * (+) - 5V (firul roșu)          * (+) - 5V (firul roșu)
          * firul gri = fir de comunicație digitală între Arduino și senzor (permite transmisia de date între cele două)          * firul gri = fir de comunicație digitală între Arduino și senzor (permite transmisia de date între cele două)
Line 76: Line 76:
   * buzzer-ul   * buzzer-ul
          * (-) - GND (firul negru)          * (-) - GND (firul negru)
-         * (+) - pinul ~al plăcuței (~D6 PD6) (am ales un pin digital care avea PWM) (firul roșu)+         * (+) - pinul ~al plăcuței (~D9 PB1) (am ales un pin digital care avea PWM) (firul roșu)
  
 Schema electrică: Schema electrică:
  
-{{:​pm:​prj2025:​fstancu:​schema_electrica_miruna.jpg?600|}}+{{:​pm:​prj2025:​fstancu:​miruna_final_schema_electrica_tinkercad.png?600|}}
  
 Observație:​ Schema electrică a fost făcută în Tinkercad, unde nu există modul microSD, așa că am folosit în locul acestuia un 8 pin header care să simuleze un modul microSD, unde Observație:​ Schema electrică a fost făcută în Tinkercad, unde nu există modul microSD, așa că am folosit în locul acestuia un 8 pin header care să simuleze un modul microSD, unde
Line 95: Line 95:
  
 pinul 6 = GND pinul 6 = GND
 +
 +Asa arata proiectul in realitate:
  
 {{:​pm:​prj2025:​fstancu:​miruna_poza_proiect_hardware.jpeg?​600|}} {{:​pm:​prj2025:​fstancu:​miruna_poza_proiect_hardware.jpeg?​600|}}
Line 100: Line 102:
  
 ===== Software Design ===== ===== Software Design =====
 +<note tip>
 +- mediu de dezvoltare: Arduino IDE
 +
 +- biblioteci şi surse 3rd-party:
 +  * avr - colectie de headere si functii specifice pentru programarea directa a microcontrollerelor AVR
 +       * avr/io - definirea registrelor hardware (PORTx, DDRx, TCCRn, UBRRn, etc.
 +       * avr/​interrupt - gestionarea intreruperilor (sei())
 + 
 +  * LiquidCrystal_I2C:​
 +       * permite comunicarea cu LCD-ul prin doar 2 fire: SDA (Serial Data) si SCL (Serial Clock), folosind protocolul I2C
 +       * intern, transformă comenzile LCD tradiționale precum set cursor, write,etc. în semnale transmise pe magistrala I2C
 +       * extensie a bibliotecii standard LiquidCrystal din Arduino, cu diferenta ca în locul folosirii pinilor paraleli , afisajele LCD sunt controlate prin intermediul interfeței I2C.
 +
 +  * SD:
 +       * biblioteca din pachetul oficial Arduino IDE utilizata pentru a facilita comunicarea cu un card SD si pentru a scrie si citi fisiere pe / de pe el
 +       * intern, foloseste interfata SPI pentru comunicarea cu cardul
 +
 +  * TroykaDHT
 +       * biblioteca dezvoltata de Amperka (Troyka Modules) pentru a facilita lucrul cu senzorii DHT11 si DHT22
 +       * permite creare unui obiect pentru senzorul DHT22, initializarea sa, citirea datelor de la senzor (temperatura si umiditatea) si verificarea daca citirea a reusit sau nu.
 +
 +Scheletul proiectului:​
 +
 +- am folosit 2 timere: timer1 pentru pwm si timer2 pentru numararea secundelor (inlocuirea functiei delay());
 +
 +- la fiecare 2 secunde se citesc temperatura si umiditatea si se afiseaza atat pe seriala, cat si pe ecran si se si stocheaza tot istoricul de masuratori pe microSD;
 +
 +- daca la un moment dat temperatura masurata depaseste ALERT_TEMP, buzzer-ul incepe sa cante (daca deja canta, nu ia melodia de la inceput, ci continua), iar daca temperatura scade din nou sub ALERT_TEMP, buzzer-ul se opreste din cantat. Am setat ALERT_TEMP la 26 de grade (ceea ce era o temperatura rezonabila pentru mediul in care am facut proiectul, dar aceasta se poate modifica, evident, la un alt threshold.);​
 +
 +- pe masura ce trece timpul si buzzer-ul canta, se actualizeaza nota (se trece la nota urmatoare pentru a forma o melodie completa).
 +
 +Notiuni din laboratoare:​
 +
 +- Lab 1: USART (pentru scrierea datelor despre temperatura si umiditate pe seriala)
 +
 +- Lab 2: Intreruperi (numararea secundelor pentru scrierea functiei de wait())
 +
 +- Lab 3: PWM (pentru a face buzzer-ul sa cante atunci cand este depasita temperatura ALERT_TEMP)
 +
 +- Lab 5: SPI (protocol folosit pentru scrierea si citirea istoricului de date in fisierul de pe cardul microSD)
 +
 +- Lab 6: I2C (protocol folosit pentru comunicarea cu ecranul LCD pe care sunt afisate temperatura si umiditatea).
 +
 +Codul complet este pe Github, la link-ul urmator: https://​github.com/​miruna-stefan/​Proiect-pm.
  
  
-<note tip> 
-[TBD] 
 </​note>​ </​note>​
  
Line 109: Line 153:
  
 <note tip> <note tip>
-[TBD]+Demo-ul poate fi urmatit la link-ul urmator: 
 +https://​www.youtube.com/​watch?​v=eLbyWtaBuJE
 </​note>​ </​note>​
- 
-===== Concluzii ===== 
  
 ===== Download ===== ===== Download =====
  
 <note warning> <note warning>
-[TBD]+Codul complet este pe Github, la link-ul urmator: https://​github.com/​miruna-stefan/​Proiect-pm.
 </​note>​ </​note>​
  
Line 129: Line 172:
   * 9 mai - Am înlocuit componentele cu probleme: în loc de DHT11, am cumpărat un DHT22 (doar acesta mai era disponibil pe Optimus) și am schimbat ecranul cu unul identic, dar care funcționează conform specificațiilor de pe site   * 9 mai - Am înlocuit componentele cu probleme: în loc de DHT11, am cumpărat un DHT22 (doar acesta mai era disponibil pe Optimus) și am schimbat ecranul cu unul identic, dar care funcționează conform specificațiilor de pe site
   * 11 mai - finalizare asamblare hardware ​   * 11 mai - finalizare asamblare hardware ​
 +  * 20 mai - finalizare software
 </​note>​ </​note>​
  
pm/prj2025/fstancu/miruna.stefan0207.1747564270.txt.gz · Last modified: 2025/05/18 13:31 by miruna.stefan0207
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0