This shows you the differences between two versions of the page.
pm:prj2025:avaduva:alexandru.braslasu [2025/05/24 20:50] alexandru.braslasu [Software Design] |
pm:prj2025:avaduva:alexandru.braslasu [2025/05/25 23:03] (current) alexandru.braslasu [Concluzii] |
||
---|---|---|---|
Line 12: | Line 12: | ||
* Senzorul DHT11 colectează constant date despre temperatură și umiditate (laborator ADC). | * Senzorul DHT11 colectează constant date despre temperatură și umiditate (laborator ADC). | ||
* Datele sunt transmise prin Bluetooth către un smartphone, unde sunt afișate în timp real (laborator UART). | * Datele sunt transmise prin Bluetooth către un smartphone, unde sunt afișate în timp real (laborator UART). | ||
+ | * Modificarea automată a turației ventilatorului atunci când temperatura scade sub un anumit prag (laborator PWM). | ||
* Control interactiv prin buton din aplicația MIT App Inventor – pornirea/oprirea afișării datelor despre temperatură, umiditate (laborator GPIO). | * Control interactiv prin buton din aplicația MIT App Inventor – pornirea/oprirea afișării datelor despre temperatură, umiditate (laborator GPIO). | ||
* Control interactiv prin slide-bar din aplicația MIT App Inventor a turației ventilatorului. | * Control interactiv prin slide-bar din aplicația MIT App Inventor a turației ventilatorului. | ||
Line 25: | Line 26: | ||
Lista componentelor utilizate: | Lista componentelor utilizate: | ||
- | * Placă de dezvoltare Arduino Mega 2560 | + | * Placă de dezvoltare Arduino Mega 2560: https://www.optimusdigital.ro/ro/compatibile-cu-arduino-mega/471-placa-de-dezvoltare-compatibila-cu-arduino-mega-2560-atmega2560-ch340.html?gad_source=1&gad_campaignid=19615979487&gbraid=0AAAAADv-p3CryZyafQypNd8z1WFDsrQDh&gclid=CjwKCAjw3MXBBhAzEiwA0vLXQTwgAe_Glhjf1jwGOhzjR_WkEuefSPsy9k2wb8SZGuPPDwMXeH-dFRoCTgwQAvD_BwE |
- | * Senzor temperatură și umiditate DHT11 | + | * Senzor temperatură și umiditate DHT11: https://www.optimusdigital.ro/ro/senzori-senzori-de-temperatura/99-senzor-de-temperatura-si-si-umiditate-dht11.html?srsltid=AfmBOor9MyTWVCg9gR--jyWcgInBLPUQCXxw0GdD6kbPoUzXLTv_1Jao |
- | * Modul Bluetooth HC-05 | + | * Modul Bluetooth HC-05: https://www.optimusdigital.ro/ro/wireless-bluetooth/153-modul-bluetooth-master-slave-hc-05-cu-adaptor.html?gad_source=1&gad_campaignid=19615979487&gbraid=0AAAAADv-p3CryZyafQypNd8z1WFDsrQDh&gclid=CjwKCAjw3MXBBhAzEiwA0vLXQUMunxJwEzkuiMg7XHfO2-HWdYC9HCMnEs5VA01QlR48RX4d_bs6lRoCkvQQAvD_BwE |
- | * Ventilator PWM Noctua NF-A9 12V | + | * Ventilator PWM Noctua NF-A9 12V: https://www.emag.ro/ventilator-noctua-nf-a9-pwm-92-mm-venta9pwm/pd/DBNVN2BBM/ |
- | * Breadboard și cabluri de conexiune | + | * Breadboard și cabluri de conexiune: https://www.optimusdigital.ro/ro/prototipare-breadboard-uri/44-breadboard-400-points.html?gad_source=1&gad_campaignid=19615979487&gbraid=0AAAAADv-p3CryZyafQypNd8z1WFDsrQDh&gclid=CjwKCAjw3MXBBhAzEiwA0vLXQVW8KRraT4THABRKepafE6gP672QiVzGPg75u3Ew6jLQEJ6CmRBshBoCUWsQAvD_BwE |
- | * Sursă de alimentare 12V (sau 3 baterii de 3.7V) | + | * Sursă de alimentare 12V |
+ | * 3 baterii de 3.7V | ||
Schema electrica: | Schema electrica: | ||
Line 38: | Line 40: | ||
===== Software Design ===== | ===== Software Design ===== | ||
- | Medii de dezvoltare: | + | === Medii de dezvoltare: === |
* Arduino IDE – pentru programarea microcontrolerului | * Arduino IDE – pentru programarea microcontrolerului | ||
* MIT App Inventor – pentru realizarea aplicației mobile Android | * MIT App Inventor – pentru realizarea aplicației mobile Android | ||
- | Codul din Arduino IDE este împărțit în două părți: | + | === Codul din Arduino IDE este împărțit în două părți: === |
* Partea pentru modul Automat | * Partea pentru modul Automat | ||
* Partea pentru modul Manual | * Partea pentru modul Manual | ||
+ | === Librării și surse 3rd-party: === | ||
+ | * ** DHT sensor library (Adafruit) ** — pentru citirea temperaturii și umidității de la senzorul DHT11. | ||
+ | * ** SoftwareSerial ** — pentru comunicarea serială cu modulul Bluetooth HC-05 pe pini diferiți de cei principali RX/TX. | ||
+ | === Algoritmi și structuri implementate: === | ||
+ | == Citirea senzorilor == | ||
+ | ** Temperatură și umiditate (DHT11): ** | ||
+ | * Se utilizează funcțiile readTemperature() și readHumidity() pentru a citi valorile de mediu de la senzor. | ||
+ | * Valorile sunt citite la fiecare execuție a buclei loop(). | ||
+ | == Controlul ventilatorului == | ||
+ | ** Ventilator controlat prin PWM (pin 5): ** | ||
+ | * În modul ** automat **, viteza ventilatorului este ajustată în funcție de temperatura ambientală pe 5 trepte (0%, 25%, 50%, 75%, 100%). | ||
+ | * În modul ** manual **, utilizatorul setează viteza ventilatorului prin aplicația de pe telefon (valoare între 0–255). | ||
+ | == Transmiterea datelor către aplicația mobilă == | ||
+ | - Se transmit datele prin Bluetooth HC-05 la fiecare comandă primită: | ||
+ | * ** Temperatura, umiditatea și viteza ventilatorului ** (în modul automat). | ||
+ | * ** Temperatura și umiditatea ** (în modul manual). | ||
+ | - Formatul transmis prin Bluetooth este delimitat de caracterul ; pentru a fi ușor de prelucrat în aplicația mobilă: ** temp;umid;viteza; ** | ||
+ | == Comunicarea Bluetooth == | ||
+ | - Se folosește modulul ** HC-05 ** conectat prin ** SoftwareSerial ** pe pinii 10 (RX) și 11 (TX). | ||
+ | - Comenzile trimise de aplicație sunt: | ||
+ | * "Aut" — activează modul automat. | ||
+ | * "Man" — activează modul manual, iar slider-ul trimite viteza dorită. | ||
+ | - Datele sunt primite sub forma: | ||
+ | * "Man:128|" sau "Aut:0|", unde : și | sunt delimitatori de parcurgere. | ||
+ | == Surse și funcții implementate == | ||
+ | - ** loop() ** - gestionează logica de citire a comenzilor și valorilor senzorilor, transmiterea datelor prin Bluetooth și controlul ventilatorului. | ||
+ | - ** analogWrite(ventPin, ventVit) ** - reglează viteza ventilatorului în funcție de valoarea calculată sau primită. | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
Stadiul proiectului după conectarea tuturor componentelor și pornirea senzorului de Bluetooth: | Stadiul proiectului după conectarea tuturor componentelor și pornirea senzorului de Bluetooth: | ||
{{:pm:prj2025:avaduva:montaj.png?400|}} | {{:pm:prj2025:avaduva:montaj.png?400|}} | ||
{{:pm:prj2025:avaduva:montaj_functional.png?400|}} | {{:pm:prj2025:avaduva:montaj_functional.png?400|}} | ||
+ | |||
+ | ===== Înregistrare ===== | ||
+ | Înregistrare funcționare proiect finalizat: https://youtube.com/shorts/R4ME0jf7PHE?feature=share | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
- | Înregistrare funcționare proiect: https://youtube.com/shorts/R4ME0jf7PHE?feature=share | + | Un proiect care imi va fi util mai mult ca sigur in zilele calduroase. :) |
- | ===== Cod sursă și alte resurse ce trebuie să existe pe GitHub ===== | + | ===== Cod sursă ===== |
+ | {{pm:prj2025:avaduva:proiect_pm.zip|Download the ZIP archive}} | ||
+ | ===== Jurnal ===== | ||
- | Codul sursă trebuie urcat într-un repo public, recomandăm GitHub. | + | **06.05.2025** |
+ | Am creat pagina de proiect și am adăugat descrierea generală a sistemului de ventilație automatizat cu control prin Bluetooth. | ||
- | <note warning> | + | **09.05.2025** |
- | Structurați-vă pagina de GitHub a proiectului pe mai multe directoare. De exemplu, creați un director numit *src* în care țineți tot codul sursă. Alt director *hardware* în care să țineți schemele și diagramele și alt director numit *images* în care să puneți toate fotografiile cu proiectul vostru, pe care le link-ați în README.md | + | * Am realizat schema bloc și designul inițial al sistemului. |
+ | * Am întocmit lista completă de componente. | ||
+ | * Am comandat: Arduino Mega 2560, DHT11, HC-05, ventilator PWM Noctua, breadboard, fire și sursă de alimentare. | ||
- | Pagina de GitHub a proiectului vostru trebuie să conțină *toate* fișierele relevante pentru realizarea proiectului vostru. Dacă există resurse externe pe care le-ați folosit, vă rugăm să le link-ați în README.md | + | **12.05.2025** |
- | </note> | + | * Am primit componentele și am testat individual funcționarea senzorului DHT11 și a modulului HC-05. |
+ | * Am realizat montajul pe breadboard și am verificat conexiunile. | ||
+ | * Am început scrierea codului pentru modul automat (citire senzor și control PWM al ventilatorului). | ||
- | <note warning> | + | **15.05.2025** |
- | Sunteți încurajați să filmați un demo cu proiectul vostru și să îl încărcați pe YouTube. Faceți embed la video în README.md și în pagina de wiki OCW a proiectului vostru. | + | * Am finalizat implementarea controlului automat pe 5 trepte de viteză, în funcție de temperatură. |
- | </note> | + | * Am testat funcționarea ventilatorului cu semnal PWM generat de Arduino. |
+ | * Am adăugat transmiterea datelor prin Bluetooth (temp;umid;viteza). | ||
- | ===== Jurnal ===== | + | **18.05.2025** |
+ | * Am dezvoltat prima versiune a aplicației mobile în MIT App Inventor: | ||
+ | - afișare temperatură/umiditate | ||
+ | - comenzi „Aut” / „Man” | ||
+ | - slider pentru reglaj manual | ||
+ | * Am testat comenzile Bluetooth între aplicație și Arduino. | ||
- | <note tip> | + | **21.05.2025** |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | * Am integrat complet funcțiile automat/manual în codul Arduino. |
- | </note> | + | * Am sincronizat aplicația cu răspunsurile trimise de placă. |
+ | * Am început documentarea: capturi ecran aplicație, explicații cod și funcționare. | ||
+ | **24.05.2025** | ||
+ | * Am testat întregul sistem: senzor + ventilator + control manual și automat + aplicație mobilă. | ||
+ | * Am filmat demonstrația finală cu toate funcțiile operaționale. | ||
+ | * Am organizat fișierele pentru GitHub: cod sursă, schema, capturi, video. | ||
+ | |||
+ | **25.05.2025** | ||
+ | * Am urcat proiectul complet pe GitHub: cod Arduino, aplicație, imagini, demo video. | ||
+ | * Am completat documentația cu explicații, linkuri externe și diagrama electrică. | ||
+ | * Proiectul este finalizat integral și pregătit pentru evaluare. | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | ==== Resurse Hardware ==== |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe *Resurse Software* şi *Resurse Hardware*. | + | * **Arduino Mega 2560** |
- | </note> | + | - [Documentație oficială Arduino Mega 2560](https://docs.arduino.cc/hardware/mega-2560) |
+ | |||
+ | * **Senzor DHT11 (Temperatură și Umiditate)** | ||
+ | - [Tutorial Adafruit DHT11](https://learn.adafruit.com/dht) | ||
+ | |||
+ | * **Ventilator PWM Noctua NF-A9** | ||
+ | - [Pagina oficială cu specificații](https://noctua.at/en/nf-a9-pwm/specification) | ||
+ | |||
+ | * **Sursă de alimentare 12V / Baterii Li-ion 3.7V** | ||
+ | - [General guide pentru alimentare Arduino](https://learn.sparkfun.com/tutorials/how-to-power-a-project/all) | ||
+ | |||
+ | |||
+ | ==== Resurse Software ==== | ||
+ | * **Arduino IDE** | ||
+ | - [Arduino PWM Tutorial](https://www.arduino.cc/en/Tutorial/SecretsOfArduinoPWM) | ||
+ | |||
+ | * **Librărie Adafruit DHT Sensor** | ||
+ | - [GitHub Repo + README](https://github.com/adafruit/DHT-sensor-library) | ||
+ | - [Funcții principale: `readTemperature()`, `readHumidity()`] | ||
+ | |||
+ | * **SoftwareSerial (comunicare HC-05)** | ||
+ | - [Arduino SoftwareSerial Reference](https://www.arduino.cc/en/Reference/softwareSerial) |