This shows you the differences between two versions of the page.
pm:prj2025:ajipa:cristian.filip1606 [2025/05/25 19:19] 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 ===== | ||
Line 38: | Line 38: | ||
| 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]] | | | 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 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]] | | | 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]] | | ||
- | | LCD 1602 cu I2C | Ecran 16x2 caractere, 5V, cu backlight | I2C: A4 (SDA), A5 (SCL) | [[https://www.optimusdigital.ro/ro/optoelectronice-lcd-uri/2894-lcd-cu-interfata-i2c-si-backlight-albastru.html?gad_source=1&gad_campaignid=19615979487&gclid=CjwKCAjwuIbBBhBvEiwAsNypvT_miZaghFfJTq54sJWPGg23eKcNEWMuE-zpXz3qIFW_N-FthxyJwxoCGj0QAvD_BwE|Link]] | | + | | 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]] | |
| 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]] | | | 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]] | | ||
| 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]] | | | 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]] | | ||
Line 45: | Line 45: | ||
| 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]] | | | 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]] | | ||
| 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]] | | | 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]] | | ||
- | | Shield WiFi cu ESP8266 | Permite setarea alarmei prin rețea WiFi, comunică pe Serial | D0 (RX), D1 (TX) | [[https://www.optimusdigital.ro/ro/shield-uri-pentru-arduino/4360-shield-wifi-pentru-arduino-cu-esp8266.html?search_query=0104110000035363&results=1 | Link ]]| | ||
| 2× Baterii 18650 de 3.6V | Alimentare pentru motor prin driver L9110S | - | - | | | 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. | - | - | | | 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 68: | 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 76: | 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 ===== |