This is an old revision of the document!


Termostat inteligent cu control automatizat al jaluzelelor

Introducere

Acest proiect constă într-un termostat inteligent care monitorizează condițiile ambientale ale unei încăperi folosind senzori de temperatură, umiditate și lumină. De asemenea, sistemul poate acționa asupra mediului prin intermediul unui motor electric care deschide automat jaluzelele la o oră prestabilită dimineața, sau cand se ating anumiti factori de mediu, cum ar fi o temperatura sau luminozitate prea mare. Utilizatorii pot, de asemenea, sa deschida sau sa inchida jaluzelele, cat si sa vizualizeze datele provenite de la senzorii ambientali oricand, prin intermediul Bluetooth.

Scopul proiectului este de a crește confortul utilizatorului și eficiența energetică, automatizând sarcini cotidiene cum ar fi reglarea luminii naturale și a temperaturii camerei, funcționând în același timp și că un sistem de alarmă naturală.

Ideea a pornit de la o dorința mai veche de a mea de a realiza un sistem care poate monitoriza indicii ambientali și care să poată înlocui alarma stresantă de pe telefon.

Cred că acest proiect poate fi util și altor persoane care doresc să îmbunătățească automatizarea locuinței si confortul personal.

Sistemul este compus din următoarele module principale:

  • Modul senzori:
    • Temperatura (DHT22)
    • Umiditate (DHT22)
    • Lumină ambientală (fotorezistor)
  • Modul microcontroler:
    • Arduino Uno, care procesează datele de la senzori și decide acționarea motorului
  • Modul acționare:
    • Motor electric de curent continuu cu reductor, destinat controlului mecanismului de tragere a jaluzelelor

Microcontrolerul citește constant datele senzorilor și activează motorul electric la ora prestabilită (stocată în memorie), deschizând jaluzelele automat.

Descriere generală

Hardware Design

Piese Electrice

Listă de componente

Componentă Descriere Interfață / Pini Link
Placă Arduino UNO Microcontroller ATmega328P, 5V, 16MHz GPIO, I2C, PWM Link
Modul RTC DS3231 Ceas de timp real cu baterie CR2032. Poate declansa o alarma la o ora programata. I2C: A4 (SDA), A5 (SCL), D2 (SQW) pentru intreruperi Link
LCD 1602 cu I2C Ecran 16×2 caractere, 5V, cu backlight I2C: A4 (SDA), A5 (SCL) Link
Senzor de temperatură și umiditate DHT22 Măsoară temperatura și umiditatea ambientală D4 Link
Breadboard Conectarea tuturor componentelor, pentru a asigura funcționarea sistemului - Link
Modul cu fotorezistor (LDR) Senzor de lumină ambientală, analogic A0 Link
Fire tată-tată Conectarea breadboardului cu celelalte componente - Link
Motor stepper GM12-15BYC-1210 Motor pas cu pas cu reductor ce functioneaza la 5V-12V DC, cu 14 RPM si 840 gf*cm cuplu la 5V, utilizat pentru a roti mecanismul de tragere a jaluzelelor. Controlat prin pinii D8–D11 via L9110S Link
Driver motor L9110S Driver H-bridge pentru controlul curentului în bobinele motorului D8, D9, D10, D11 Link
Shield WiFi cu ESP8266 Permite setarea alarmei prin rețea WiFi, comunică pe Serial D0 (RX), D1 (TX) Link
2× Baterii 18650 de 3.6V Alimentare pentru motor prin driver L9110S - -
Mecanism de prindere a atei jaluzelelor printat 3D Realizat din 3 piese, o rotita “zimtata”, un suport pentru rotita si o piesa pentru stabilitatea rotitei. - -

Software Design

Mediu de dezvoltare
  • Arduino IDE (versiunea 2.3.6)
  • Limbaj utilizat: C
  • Atat placa Arduino cat si placuta ESP8266 au fost programate in Arduino IDE, cea din urma necesitand un convertor USB-UART CH340G pentru programare.
Biblioteci utilizate
  • Wire.h - comunicare I2C cu RTC (DS3231) si LCD
  • DS3231.h - citirea si setarea ceasului in timp real
  • Stepper.h - control motor pas cu pas
  • DHT.h - senzor de temperatura si umiditate
  • LiquidCrystal_I2C.h - afisaj pe ecran LCD 16×2
  • ESP8277Wifi.h (pentru programare directa ESP) - gestionare WiFi si server HTTP
Algoritmi si structuri implementate
  • Initializarea componentelor: RTC, motor, LCD, senzori
  • Citirea constanta a timpului din modulul DS3231
  • Compararea timpului curent cu ora setata ca alarma (manual sau din WiFi)
  • Actionarea motorului pentru deschiderea jaluzelelor la declansarea alarmei
  • Comunicare seriala cu ESP8266 pentru receptia alarmei setate prin browser
  • Declansarea motorului in functie de conditii predefinite

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.

Bibliografie/Resurse

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

Export to PDF

pm/prj2025/ajipa/cristian.filip1606.1748560745.txt.gz · Last modified: 2025/05/30 02:19 by cristian.filip1606
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