Differences

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

Link to this comparison view

pm:prj2024:fstancu:justin.popescu1605 [2024/05/23 02:06]
justin.popescu1605 [Rezultate Obţinute]
pm:prj2024:fstancu:justin.popescu1605 [2024/05/27 09:34] (current)
justin.popescu1605 [Hardware Design]
Line 34: Line 34:
 Sistemul folosește **Node-RED** pentru a gestiona logica și fluxul datelor între dispozitive. Acest instrument de programare conectează dispozitivele hardware. L-am ales pentru facilitățile pe care le oferă ca editor bazat pe browser pentru conectarea fluxurilor folosind noduri, care pot fi implementate în timpul execuției. Sistemul folosește **Node-RED** pentru a gestiona logica și fluxul datelor între dispozitive. Acest instrument de programare conectează dispozitivele hardware. L-am ales pentru facilitățile pe care le oferă ca editor bazat pe browser pentru conectarea fluxurilor folosind noduri, care pot fi implementate în timpul execuției.
  
-{{ :​pm:​prj2024:​fstancu:​casamonitor_descriere.jpg?​direct&​400 |}}+{{ :​pm:​prj2024:​fstancu:​casa_monitor.png?​direct&​400 |}}
  
 <note tip> <note tip>
Line 45: Line 45:
 === Gestiunea Energiei (I2C, PWM și Timere) === === Gestiunea Energiei (I2C, PWM și Timere) ===
  
-Consumul de energie este gestionat prin **protocolul ​//I2C//**, această integrare va facilita implementarea funcțiilor de economisire a energiei, cum ar fi diminuarea și stingerea automată a luminilor atunci când nu este detectată nicio mișcare.+Consumul de energie este gestionat prin **protocolul I2C**, această integrare va facilita implementarea funcțiilor de economisire a energiei, cum ar fi diminuarea și stingerea automată a luminilor atunci când nu este detectată nicio mișcare.
  
-Luminile de bandă LED sunt controlate prin intermediul unui **întrerupător fizic ON-OFF**, detectarea mișcării sau a obstacolelor puse în fața senzorului infraroșu. ​+Luminile de bandă ​**LED** sunt controlate prin intermediul unui **întrerupător fizic ON-OFF**, detectarea mișcării sau a obstacolelor puse în fața senzorului infraroșu. ​
  
 Modulul **IRF520**, controlat prin semnale //​**PWM**//,​ gestionează alimentarea benzii **LED** în funcție de intrările de la **senzorul IR** sau de la **întrerupătorul fizic**. ​ Modulul **IRF520**, controlat prin semnale //​**PWM**//,​ gestionează alimentarea benzii **LED** în funcție de intrările de la **senzorul IR** sau de la **întrerupătorul fizic**. ​
Line 55: Line 55:
 === Transmitere/​Primire Date (USB) === === Transmitere/​Primire Date (USB) ===
  
-**Comunicarea serială USB** cu placa Arduino UNO asigură transferul de date fiabil. Această configurare mă va ajuta să actualizez și să manipulez ușor setările direct din interfața cu utilizatorul.+**Comunicarea serială USB** cu placa **Arduino UNO** asigură transferul de date fiabil. Această configurare mă va ajuta să actualizez și să manipulez ușor setările direct din interfața cu utilizatorul.
  
 Toate datele sunt colectate de la senzori, apoi semnalele de control sunt trimise către un **port USB** al laptopului. Interfața laptopului va permite vizualizarea datelor înregistrate de senzori în timp real și ajustarea setărilor de sistem, cum ar fi **pragurile de temperatură și umiditate**. Toate datele sunt colectate de la senzori, apoi semnalele de control sunt trimise către un **port USB** al laptopului. Interfața laptopului va permite vizualizarea datelor înregistrate de senzori în timp real și ajustarea setărilor de sistem, cum ar fi **pragurile de temperatură și umiditate**.
  
 <note tip> <note tip>
-Schema bloc este disponibilă la următorul link, care ilustrează modul în care uC interacționează cu senzorii și restul dispozitivelor din sistem. Schema oferă o vedere completă asupra interacțiunii HW și SW din cadrul proiectului,​ prezentând fluxul de date și control între diferitele componente: [[https://​drive.google.com/​file/​d/​10yNvxCuC7T1XRNh7v7aW5A-qBJzTKchK/​view?​usp=sharing|CasaMonitor Flow]]+Schema bloc este disponibilă la următorul link, care ilustrează modul în care **µC** ​interacționează cu senzorii și restul dispozitivelor din sistem. Schema oferă o vedere completă asupra interacțiunii HW și SW din cadrul proiectului,​ prezentând fluxul de date și control între diferitele componente: [[https://​drive.google.com/​file/​d/​10yNvxCuC7T1XRNh7v7aW5A-qBJzTKchK/​view?​usp=sharing|CasaMonitor Flow]]
 </​note>​ </​note>​
  
Line 69: Line 69:
 === Schema Electrică === === Schema Electrică ===
  
 +<note important>​
 Pentru a fi mai ușor de urmărit cablajul, am încercat să realizez un design cât mai modular cu putință pentru fiecare modul: de la sursa de alimentare, la senzori și **µC**. În plus, pentru a clarifica modul în care se vor distribui voltajele, întregul sistem va deveni mult mai accesibil pentru modificările ulterioare. Pentru a fi mai ușor de urmărit cablajul, am încercat să realizez un design cât mai modular cu putință pentru fiecare modul: de la sursa de alimentare, la senzori și **µC**. În plus, pentru a clarifica modul în care se vor distribui voltajele, întregul sistem va deveni mult mai accesibil pentru modificările ulterioare.
  
-Toți **senzorii** vor fi alimentați la **12V** de la sursa de tensiune, comparativ cu **µC**, care va fi conectat la laptop prin USB, de unde primește **5V**.+Toți **senzorii** vor fi alimentați la **12V** de la **sursa de tensiune**, comparativ cu **µC**, care va fi conectat la laptop prin **USB**, de unde primește **5V**. 
 +</​note>​
  
-{{ :​pm:​prj2024:​fstancu:​casamonitor_schematic.jpg?​direct&​800 |}}+{{ :​pm:​prj2024:​fstancu:​casamonitor_schematic.jpg?​direct&​700 |}}
  
 <note important>​ <note important>​
Line 81: Line 83:
 === Lista de Piese === === Lista de Piese ===
  
 +<note tip>
 ^ Nume Componenta ​                     ^ Preț        ^ Site Cumparare ​                                                                     ^ ^ Nume Componenta ​                     ^ Preț        ^ Site Cumparare ​                                                                     ^
 | Arduino UNO R3 ATmega328P ​           | 30,76 RON   | [[https://​www.sigmanortec.ro/​Placa-dezvoltare-UNO-R3-Arduino-compatibil-AtMega328p-CH340G-MiniUSB-p125132518|Arduino (SigmaNortec)]] ​  | | Arduino UNO R3 ATmega328P ​           | 30,76 RON   | [[https://​www.sigmanortec.ro/​Placa-dezvoltare-UNO-R3-Arduino-compatibil-AtMega328p-CH340G-MiniUSB-p125132518|Arduino (SigmaNortec)]] ​  |
Line 94: Line 97:
 | Fire și rezistențe pentru conectică ​ | 25,00 RON   | [[https://​www.sigmanortec.ro/​40-Fire-Dupont-30cm-Mama-Mama-p126421578|Wires (SigmaNortec)]] ​      | | Fire și rezistențe pentru conectică ​ | 25,00 RON   | [[https://​www.sigmanortec.ro/​40-Fire-Dupont-30cm-Mama-Mama-p126421578|Wires (SigmaNortec)]] ​      |
 ^ Total                                | 243,13 RON  |                                      X                                                    | ^ Total                                | 243,13 RON  |                                      X                                                    |
-\\+</​note>​
  
 === Arduino UNO, Cablu USB, Sursă de Alimentare === === Arduino UNO, Cablu USB, Sursă de Alimentare ===
Line 102: Line 105:
 | **Arduino UNO R3 ATmega328P** | **USB 2.0 de tip A-B** | **Power Source și Prelungitor 12V, 2A** | | **Arduino UNO R3 ATmega328P** | **USB 2.0 de tip A-B** | **Power Source și Prelungitor 12V, 2A** |
  
-  * **Întreruperile** sunt utilizate pentru a controla intervalele de citire a senzorilor și actualizările sistemului, pentru citirea datelor senzorului **DHT22** și **INA219**. ​+  * **Timerele** sunt utilizate pentru a controla intervalele de citire a senzorilor și actualizările sistemului, pentru citirea datelor senzorului **DHT22** și **INA219**. ​
   * **Întreruperile** asigură sincronizarea precisă și previn întreruperea secțiunilor critice care se ocupă cu primirea și trimiterea datelor în buffer pentru comunicarea cu **Node-RED**.   * **Întreruperile** asigură sincronizarea precisă și previn întreruperea secțiunilor critice care se ocupă cu primirea și trimiterea datelor în buffer pentru comunicarea cu **Node-RED**.
  
Line 115: Line 118:
 ---- ----
  
-^ {{ :​pm:​prj2024:​fstancu:​dht22.jpg?​direct&​100 |}} ^ {{ :​pm:​prj2024:​fstancu:​ina219-pinout.jpg?​direct&​200 |}} ^ {{ :​pm:​prj2024:​fstancu:​ir_fotoelectric.jpg?​direct&​200 |}} ^+^ {{ :​pm:​prj2024:​fstancu:​dht22.jpg?​direct&​100 |}} ^ {{ :​pm:​prj2024:​fstancu:​ina219-pinout.jpg?​direct&​200 |}} ^ {{ :​pm:​prj2024:​fstancu:​ir_sensor.png?​direct&​200 |}} ^
 | **Temperatura-Umiditate DHT22 AM302 Senzor** | **Curent-Tensiune INA219 Senzor** | **Senzor Fotoelectric IR DS30P1** | | **Temperatura-Umiditate DHT22 AM302 Senzor** | **Curent-Tensiune INA219 Senzor** | **Senzor Fotoelectric IR DS30P1** |
  
Line 176: Line 179:
   * **Trebuie să avem Node.js înainte de Node-RED!**   * **Trebuie să avem Node.js înainte de Node-RED!**
   * **NPM packages for Node-RED**: node-red, node-red-dashboard,​ node-red-node-serialport.   * **NPM packages for Node-RED**: node-red, node-red-dashboard,​ node-red-node-serialport.
-  * **Librării și surse 3rd-party**:​ DHT sensor library, Adafruit INA219, Adafruit Unified Sensor, Adafruit BusIO.+  * **Librării și surse 3rd-party**:​ DHT, Adafruit INA219, Adafruit Unified Sensor, Adafruit BusIO.
   * **Algoritmi și structuri**:​ Implementarea algoritmilor pentru achiziția și procesarea datelor de la senzori, comunicarea cu interfața grafică și interacțiunea cu utilizatorul.   * **Algoritmi și structuri**:​ Implementarea algoritmilor pentru achiziția și procesarea datelor de la senzori, comunicarea cu interfața grafică și interacțiunea cu utilizatorul.
   * **Functii implementate**:​ Funcții pentru inițializarea și configurarea senzorilor, citirea datelor de la senzori, gestionarea comunicațiilor prin USB și implementarea interfeței de utilizator grafice pentru ajustarea parametrilor.   * **Functii implementate**:​ Funcții pentru inițializarea și configurarea senzorilor, citirea datelor de la senzori, gestionarea comunicațiilor prin USB și implementarea interfeței de utilizator grafice pentru ajustarea parametrilor.
 </​note>​ </​note>​
  
-**Firmware**-ul este organizat pentru a gestiona mai multe funcționalități,​ cum ar fi achiziția de date de la senzori, controlul **PWM** și comunicarea prin **USART**, folosind **GPIO**, **Timere**, **UART** și **I2C**.+**Firmware**-ul este organizat pentru a gestiona mai multe funcționalități,​ cum ar fi achiziția de date de la senzori, controlul **PWM** și comunicarea prin **USART**, folosind **GPIO**, **Timere** și **I2C**.
  
   * **Butonul sau semnalul IR**: sunt folosite pentru controlul ventilatorului. Firmware-ul gestionează debouncing-ul butonului și decodarea semnalelor IR. După detectare, microcontrolorul schimbă starea pinului GPIO asociat ventilatorului pentru a-l activa sau dezactiva. Acțiunile sunt monitorizate în bucla principală a firmware-ului pentru funcționare corectă.   * **Butonul sau semnalul IR**: sunt folosite pentru controlul ventilatorului. Firmware-ul gestionează debouncing-ul butonului și decodarea semnalelor IR. După detectare, microcontrolorul schimbă starea pinului GPIO asociat ventilatorului pentru a-l activa sau dezactiva. Acțiunile sunt monitorizate în bucla principală a firmware-ului pentru funcționare corectă.
Line 266: Line 269:
   * Temperatura reală este mai mare decât cea dorită, ventilatorul pornește automat pentru a răci aerul.   * Temperatura reală este mai mare decât cea dorită, ventilatorul pornește automat pentru a răci aerul.
  
-<​note ​important>+==== Download ==== 
 +---- 
 + 
 +<​note ​warning>
 Videoclipuri demonstrative,​ SW-HW, pentru a observa cum funcționează GUI (Node-RED) cu HW, vizualizați cele 2 videoclipuri în același timp, începeți videoclipul **pentru SW de la 0** și **cel pentru HW de la secunda 25** de la începutul înregistrării. Videoclipuri demonstrative,​ SW-HW, pentru a observa cum funcționează GUI (Node-RED) cu HW, vizualizați cele 2 videoclipuri în același timp, începeți videoclipul **pentru SW de la 0** și **cel pentru HW de la secunda 25** de la începutul înregistrării.
  
   * **Node-RED API Dashboard**:​ [[https://​drive.google.com/​file/​d/​1zLRS86_t2jiu0NKJF-CHeEPyh4NjXHAV/​view?​usp=sharing|SW-Interact]]   * **Node-RED API Dashboard**:​ [[https://​drive.google.com/​file/​d/​1zLRS86_t2jiu0NKJF-CHeEPyh4NjXHAV/​view?​usp=sharing|SW-Interact]]
   * **Hardware Interfață**:​ [[https://​drive.google.com/​file/​d/​1L-0ANzF2LampGnMLCuwHAHUocGBix3rt/​view?​usp=sharing|HW-Interact]]   * **Hardware Interfață**:​ [[https://​drive.google.com/​file/​d/​1L-0ANzF2LampGnMLCuwHAHUocGBix3rt/​view?​usp=sharing|HW-Interact]]
-</​note>​ +  * Arhiva cu fișierele proiectului,​ inclusiv sursele, schemele de circuit și documentația,​ poate fi găsită pe [GitHub](https://​github.com/​justin-marian/​casamonitor).
- +
-==== Download ==== +
----- +
- +
-<note warning>​ +
-Arhiva cu fișierele proiectului,​ inclusiv sursele, schemele de circuit și documentația,​ poate fi găsită pe [GitHub](https://​github.com/​justin-marian/​casamonitor).+
 </​note>​ </​note>​
    
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
 +
pm/prj2024/fstancu/justin.popescu1605.1716419207.txt.gz · Last modified: 2024/05/23 02:06 by justin.popescu1605
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