This shows you the differences between two versions of the page.
pm:prj2024:fstancu:justin.popescu1605 [2024/05/23 02:09] justin.popescu1605 [Descriere Generală] |
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 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> | ||
+ |