This shows you the differences between two versions of the page.
pm:prj2025:ajipa:cristian.filip1606 [2025/05/25 18:54] cristian.filip1606 [Piese Electrice] |
pm:prj2025:ajipa:cristian.filip1606 [2025/05/30 02:49] (current) cristian.filip1606 [Jurnal] |
||
---|---|---|---|
Line 2: | Line 2: | ||
===== Introducere ===== | ===== 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. | + | 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ă. | 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ă. | ||
Line 23: | Line 23: | ||
* Motor electric de curent continuu cu reductor, destinat controlului mecanismului de tragere a jaluzelelor | * 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. Microcontrolerul intră în sleep în perioadele când nu este nevoie de activitate pentru a economisi energie. | + | Microcontrolerul citește constant datele senzorilor și activează motorul electric la ora prestabilită (stocată în memorie), deschizând jaluzelele automat. |
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | {{https://ocw.cs.pub.ro/courses/_media/pm/prj2025/ajipa/diagrama.png}} | + | {{https://ocw.cs.pub.ro/courses/_media/pm/prj2025/ajipa/diagram_finn.png}} |
===== Hardware Design ===== | ===== Hardware Design ===== | ||
- | {{https://ocw.cs.pub.ro/courses/_media/pm/prj2025/ajipa/schemacff.png}} | + | {{https://ocw.cs.pub.ro/courses/_media/pm/prj2025/ajipa/schema_fin.png}} |
===== Piese Electrice ===== | ===== Piese Electrice ===== | ||
+ | === Listă de componente === | ||
- | + | ^ Componentă ^ Descriere ^ Interfață / Pini ^ Link ^ | |
- | * **Arduino Uno**: Placa de dezvoltare microcontroler (ATmega328P) ce controleaza logica intregului proiect. | + | | Placă Arduino UNO | Microcontroller ATmega328P, 5V, 16MHz | GPIO, I2C, PWM | [[https://www.optimusdigital.ro/ro/compatibile-cu-arduino-uno/1678-placa-de-dezvoltare-compatibila-cu-arduino-uno-atmega328p-i-ch340.html?gad_source=1&gad_campaignid=19615979487&gclid=CjwKCAjwuIbBBhBvEiwAsNypvSuqvIRJnv6JDi6S6VzdplsVZUpyJNe3f0g7of-OoCexKtJsAG650hoCf3IQAvD_BwE|Link]] | |
- | * **Modul motor stepper GM12-15BYC-1210**: motor pas cu pas 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. | + | | 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 | [[https://www.optimusdigital.ro/ro/altele/12402-modul-cu-ceas-in-timp-real-ds3231.html?gad_source=1&gad_campaignid=19615979487&gclid=CjwKCAjwuIbBBhBvEiwAsNypvZMCiacxBIruH2bCbXfIVFrxiEQA8YONAZVDj--9uoOM2vpThE3Y-BoC7u0QAvD_BwE|Link]] | |
- | * **Driver motor L9110S**: Driver dublu H-bridge folosit pentru a controla curentul in bobinele motorului stepper. | + | | Modul BLuetooth HC-05 | Modul Bluetooth pentru comunicarea cu arduino | TXD - D4, RXD - D5 | [[https://www.optimusdigital.ro/ro/wireless-bluetooth/153-modul-bluetooth-master-slave-hc-05-cu-adaptor.html?search_query=bluetooth&results=152|Link]] | |
- | * **Modul RTC DS3231**: Ceas in timp real foarte precis, cu baterie interna, folosit pentru a pastra ora chiar si fara alimentare. Poate declansa o alarma la o ora programata. | + | | Senzor de temperatură și umiditate DHT22 | Măsoară temperatura și umiditatea ambientală | D4 | [[https://www.optimusdigital.ro/ro/senzori-senzori-de-temperatura/3157-senzor-de-temperatura-i-umiditate-dht22am2302b.html?search_query=0104110000026972&results=1 |Link]] | |
- | * **Shield WiFi cu ESP8266**: Modul WiFi montabil peste Arduino, permite comunicarea wireless si trimiterea orei de alarma din browser. | + | | Breadboard| Conectarea tuturor componentelor, pentru a asigura funcționarea sistemului | - | [[https://www.optimusdigital.ro/ro/prototipare-breadboard-uri/44-breadboard-400-points.html?search_query=breadboard&results=126|Link]] | |
- | * **2x Baterii 18650 de 3.6V** fiecare, montate in intr-un holder de baterii 18650. | + | | Modul cu fotorezistor (LDR) | Senzor de lumină ambientală, analogic | A0 | [[https://www.optimusdigital.ro/ro/senzori-senzori-optici/167-modul-cu-fotorezistor.html?search_query=0104110000000330&results=1 |Link]] | |
- | * **Senzor de temperatura si umiditate DHT22** - folosit pentru a automatiza deschiderea jaluzelelor in functie de conditiile climatice | + | | Fire tată-tată | Conectarea breadboardului cu celelalte componente | - | [[https://www.optimusdigital.ro/ro/fire-fire-mufate/214-fire-colorate-mama-mama-10p.html?srsltid=AfmBOoptGSWT3uRwffRBgb9TuDy8zhES_f1YUoLMZvb9TM7L6WFR6y1A|Link]] | |
- | * **Modul cu fotorezistor** - senzor de lumina ambientala | + | | 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 | [[https://www.optimusdigital.ro/ro/motoare-motoare-pas-cu-pas/2930-micro-motor-pas-cu-pas-gm12-15byc-1210.html?search_query=motor&results=611 | Link]] | |
- | * **Ecran LCD 16x2 I2C** | + | | Driver motor L9110S | Driver H-bridge pentru controlul curentului în bobinele motorului| D8, D9, D10, D11 | [[https://www.optimusdigital.ro/ro/drivere-de-motoare-cu-perii/480-driver-de-motoare-l9110s.html?search_query=L9110S&results=3 | 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 ===== | ===== 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 | ||
+ | * SoftwareSerial.h - pentru comunicarea cu HC-05 | ||
+ | |||
+ | == Algoritmi si structuri implementate == | ||
+ | * Initializarea componentelor: RTC, motor, HC-05, senzori | ||
+ | * Citirea constanta a timpului din modulul DS3231 | ||
+ | * Compararea timpului curent cu ora setata ca alarma (prin Bluetooth) | ||
+ | * Actionarea motorului pentru deschiderea jaluzelelor la declansarea alarmei sau la dorinta utilizatorului prin Bluetooth | ||
+ | * Comunicare seriala cu Bluetooth pentru receptia alarmei setate prin aplicatia Serial Bluetooth Terminal | ||
+ | * Declansarea motorului in functie de conditii predefinite (temperatura sau luminozitate pre amare) | ||
+ | |||
Line 64: | Line 90: | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Proiectul meu demonstreaza utilitatea unui sistem inteligent de deschidere automata a jaluzelelor, ce functioneaza si ca o alarma "mai sanatoasa", care nu provoaca o senzatie de stres utilizatorilor, asa cum este cazul alarmelor obisnuite cu sunet. | ||
+ | |||
+ | == Posibile imbunatatiri == | ||
+ | |||
+ | * Dimensiune scazuta - proiectul poate fi in continuare minimizat din punct de vedere spatial, astfel incat tot sistemul sa poata fi montat pe perete, langa jaluzele. | ||
+ | |||
+ | * Motor mai puternic - Se poate alege un motor mai puternic pentru cazul in care jaluzelele sunt prea grele de actionat. | ||
+ | |||
+ | * Eficienta energetica - Se poate optimiza proiectul astfel incat bateriile sa fie conectate doar atunci cand este cu adevarat nevoie, prin intermediul unui releu, intrucat am observat ca motorul se incalzeste cand este conectat la baterii. | ||
===== Download ===== | ===== Download ===== | ||
+ | |||
+ | {{https://ocw.cs.pub.ro/courses/_media/pm/prj2025/ajipa/arduino_fin.zip}} | ||
+ | |||
<note warning> | <note warning> | ||
Line 72: | Line 110: | ||
</note> | </note> | ||
- | ===== Jurnal ===== | + | ===== Cod sursa ===== |
+ | Codul sursa complet al proiectului este disponibil in repository-ul GitHub: | ||
- | <note tip> | + | https://github.com/cristianfilip11/IntelligentThermostat |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | |
- | </note> | + | |
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== |