This is an old revision of the document!


Dashboard hibrid de monitorizare (virtual & ambient)

Introducere

Ce face proiectul: Proiectul reprezinta un sistem hibrid de monitorizare care combina telemetria unui PC (grad de utilizare cpu,gpu,ram) cu achiziția de date din mediul fizic (temperatura, umiditate, luminozitate, presiune atmosferica). Microcontrollerul afiseaza aceste date pe 4 cadrane analogice (folosind servomotoare) si ofera feedback vizual printr-o banda led.

Scopul si ideea de pornire: Ideea a pornit de la nevoia de a avea un dashboard fizic pe birou care sa elimine necesitatea de a tine deschise aplicatii de tip Task Manager pe monitor. Scopul s-a extins apoi catre conceptul de wellness, sistemul monitorizand nu doar starea pc-ului, ci si pe cea a utilizatorului, coreland efortul termic al calculatorului cu temperatura si calitatea aerului din camera.

Utilitate: Proiectul este util intrucat ofera un feedback vizual non-intruziv si un avertisment atunci cand condițiile de mediu sau resursele sistemului ating un prag critic.

Descriere generală

Arhitectura sistemului se bazeaza pe un model Master-Slave (REST-like API) pe interfata UART. Microcontrolerul ATmega328P actioneaza ca Master, interogand periodic scriptul Python de pe PC (Slave) pentru date brute. Simultan, microcontrolerul achizitionează date de la 3 senzori locali. Datele sunt unite matematic intr-un Wellness index. Iesirile sistemului sunt controlate prin semnale PWM interpolate liniar pentru a oferi miscari naturale acelor indicat



Modulul de achizitie (intrari):

  1. Mediul ambiental: Parametrii fizici sunt monitorizati prin senzori dedicati: DHT11 (comunicare digitala 1-Wire pentru temperatura/umiditate), BMP280 (comunicare I2C pe pinii SDA/SCL pentru presiune) si un fotorezistor KY-018 (citire analogica prin ADC pentru luminozitate).
  2. Interactiunea utilizatorului: schimbarea modurilor de afisare se face printr-un buton conectat la un pin digital cu suport pentru intreruperi hardware (INT0), evitand astfel blocarea programului prin polling continuu.

Modulul de afisare (iesiri):

  1. Afisajul analogic: este realizat cu ajutorul a 4 servomotoare SG90, controlate hardware prin semnale PWM generate de timerele interne ale microcontrolerului. Valorile brute sunt interpolate liniar pentru a asigura o miscare fluidă (0-180 grade).
  2. Feedback vizual: O banda LED WS2812B primeste semnale digitale (protocol Dout/Din) pentru a semnaliza starea generala a sistemului prin coduri de culori.

Modulul de alimentare:

  1. Pentru a asigura stabilitatea sistemului si a preveni resetarea microcontrolerului cauzata de fluctuatiile de curent, partea mai consumatoare (servomotoarele si banda LED) este izolata si alimentata exclusiv dintr-o sursa externa. Singura legatura electrica dintre cele doua circuite este un GND comun, esential pentru transmiterea corecta a semnalelor de date.

Hardware Design

Stadiul actual al implementarii hardware

In prezent, arhitectura hardware a fost complet proiectata si validata la nivel de conexiuni folosind mediul de simulare tinkercad. Componentele fizice au fost selectate si sunt in curs de comanda. S-a definitivat separarea alimentarii logice de cea de forta, stabilindu-se un ground comun intre sursa externa mb102 si placa de dezvoltare. Asamblarea fizica pe breadboard se va realiza urmand fidel schema de conexiuni deja testata in simulator.

Alocarea pinilor si detaliile tehnice

  1. Buton comutare pe pinul d2: suporta intreruperi externe hardware (int0), esential pentru detectarea apasarii fara a bloca executia programului in polling.
  2. Servomotoare sg90 pe pinii d3, d5, d6, d9: acesti pini dispun de suport hardware integrat pentru modulatia in latime a impulsurilor (pwm) generata de timerele 0, 1 si 2, controlul unghiului facandu-se in fundal, fara intarzieri software.
  3. Banda led ws2812b pe pinul d7: pin digital standard necesar pentru trimiterea bitilor de date prin protocolul 1-wire, manipulat software prin bit-banging.
  4. Senzor dht11 pe pinul d8: pin digital standard necesar pentru protocolul de comunicare proprietar lent pe un singur fir.
  5. Senzor bmp280 pe pinii a4 (sda) si a5 (scl): pinii hardware dedicati exclusiv comunicarii pe magistrala i2c.
  6. Senzor lumina ky-018 pe pinul a0: pin conectat direct la convertorul analog-digital (adc) pentru a transforma nivelul de tensiune in valori digitale de la 0 la 1023.

Schema electrica si explicatii

Schema electrica ilustreaza izolarea alimentarii actuatorilor de logica de control. Sursa externa mb102 livreaza 5v direct pe liniile vdd ale benzilor led montate in paralel si spre servomotoare. Senzorii primesc alimentare curata de la portul de 5v al microcontrollerului. O legatura critica pe schema este firul de masa comuna (gnd) care uneste cele doua circuite, oferind o referinta de zero volti unificata pentru semnalele de date. Rezistenta de protectie de 330 ohmi este prezenta pe linia de date a benzii led (din).

Diagrame de semnal

Sistemul utilizeaza preponderent semnale pwm pentru actionarea celor 4 servomotoare. Microcontrolerul genereaza un semnal dreptunghiular cu o perioada fixa de 20 milisecunde. Variatia factorului de umplere, prin emiterea unui puls pozitiv cu latimea cuprinsa intre 1 milisecunda (reprezentand unghiul de 0 grade) si 2 milisecunde (reprezentand unghiul de 180 de grade), dicteaza direct pozitia acului indicator.

Rezultatele simularii si dovada de functionare

Nota: schema este orientativa si ilustreaza conexiunile logice pentru montajul fizic. Spre exemplu, deoarece simulatorul tinkercad nu ofera un senzor bmp280 cu 4 pini, am folosit vizual un senzor ultrasonic pentru a putea trasa corect firele magistralei i2c. De asemenea, sursa de tensiune din simulare este una teoretica, urmand sa fie inlocuita in realitate de modulul mb102, care va fi alimentat la 9v pentru a furniza in siguranta cei 5v necesari actuatorilor.

Avand in vedere ca piesele hardware sunt in stadiul de comanda, validarea circuitului si dovada functionarii s-au realizat in mediul de simulare tinkercad. Am creat un cod minimal care activeaza pinul a0 si pinul pwm d3. Simularea demonstreaza ca divizorul de tensiune converteste corect intensitatea luminii in valori scalate vizibile pe interfata seriala, iar semnalul modulat translateaza pozitia servomotorului la unghiul comandat.

Lista de componente si rolul lor

Componenta Utilitate
ATmega328P (Xplained Mini) actioneaza ca unitate centrala (master), proceseaza datele de la senzori si de la pc, generand semnalele de control pentru actuatori
Senzor DHT11 realizeaza achizitia temperaturii si umiditatii din mediul fizic
Senzor BMP280 realizeaza achizitia presiunii atmosferice (in simulator a fost inlocuit vizual cu un modul generic cu 4 pini pentru a respecta magistrala i2c)
Senzor lumina fotosensibil KY-018 format dintr-un fotorezistor inseriat cu o rezistenta de 10k pentru a crea un divizor de tensiune, monitorizeaza luminozitatea din camera
4x Servomotoare SG90 afiseaza in mod analogic, sub forma unor cadrane fizice, parametrii sistemului (utilizare cpu, memorie ram, temperatura ambientala, umiditate)
Banda LED WS2812B ofera feedback vizual despre starea sistemului
Buton permite utilizatorului comutarea manuala intre modurile de afisare (telemetrie pc sau parametri ambientali)
Modul sursă MB102 (9V) asigura puterea necesara pentru actuatori, protejand stabilizatorul intern al placii de dezvoltare impotriva supraconsumului de curent.

Aici puneţi tot ce ţine de hardware design:

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
  • librării şi surse 3rd-party (e.g. Procyon AVRlib)
  • algoritmi şi structuri pe care plănuiţi să le implementaţi
  • (etapa 3) surse şi funcţii implementate

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

09/05/2026 - Initializarea paginii si completarea sectiunilor de Introducere si Descriere generala. 15/05/2026 - efectuare comanda piese. 16/05/2026 - realizarea schemei electrice si a schemei de conectare. Intrucat piesele nu au ajuns inca, am simulat cu o bucata scurta de cod functionalitatea servomotoarelor si a benzii led.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2026/ciprian.popescu0411/stefan.stoica2012.1779104548.txt.gz · Last modified: 2026/05/24 23:23 (external edit)
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