Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2024:vstoica:cristina.grosu [2024/05/25 11:24]
cristina.grosu [Hardware Design]
pm:prj2024:vstoica:cristina.grosu [2024/05/27 13:35] (current)
cristina.grosu
Line 1: Line 1:
 ====== Sistem Smart Home pentru climatizare ====== ====== Sistem Smart Home pentru climatizare ======
 +
 +Student: Grosu Cristina-Geanina
 +
 +Grupa: 331CC
 +
 ===== Introducere ===== ===== Introducere =====
  
Line 48: Line 53:
 **Schema electrica** **Schema electrica**
  
-{{:​pm:​prj2024:​vstoica:​grosu_cristina_sper_final_electric.png?​950|}}+{{:​pm:​prj2024:​vstoica:​grosu_cristina_sper_final_electric.png?​800|}}
  
 **Descrierea sistemului** **Descrierea sistemului**
Line 106: Line 111:
  
  
-<note tip> +**Mediu de Dezvoltare**
-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 +
-</​note>​+
  
 +
 +Pentru dezvoltarea codului aplicației a fost utilizat Thonny IDE, un mediu de dezvoltare integrat popular pentru programarea în Python, dedicat în special pentru microcontrolere.
 +
 +**Biblioteci folosite**
 +
 +
 +În cadrul acestui proiect, au fost utilizate următoarele biblioteci externe:
 +
 +  * __[[https://​github.com/​cristinagnn/​Smart-Home-System-Using-Raspberry-Pi-Pico-W/​tree/​main/​umqtt|umqtt]]__:​ O librărie simplificată pentru protocolul MQTT, utilizată pentru comunicarea cu broker-ul MQTT Mosquitto.
 +  * __[[https://​github.com/​cristinagnn/​Smart-Home-System-Using-Raspberry-Pi-Pico-W/​blob/​main/​mfrc522.py|MFRC522]]__:​ O librărie pentru interfațarea cu modulul RFID RC522, utilizată pentru citirea cardurilor RFID.
 +  * __[[https://​github.com/​cristinagnn/​Smart-Home-System-Using-Raspberry-Pi-Pico-W/​tree/​main/​lib|picozero]]__:​ O librărie ușor de folosit pentru controlul componentelor GPIO.
 +
 +
 +**Algoritmi și Structuri Implementate**
 +
 +1. **[[https://​github.com/​cristinagnn/​Smart-Home-System-Using-Raspberry-Pi-Pico-W/​blob/​main/​master_board.py|master_board.py]]**
 +
 +
 +Codul aplicației este structurat pentru a îndeplini următoarele funcționalități principale:
 +
 +**Conectarea la rețeaua Wi-Fi:** Realizată prin intermediul funcției connect_to_wifi(),​ care utilizează configurația specificată într-un fișier JSON.
 +
 +**Comunicarea MQTT**: Configurarea și gestionarea clientului MQTT pentru a primi și trimite mesaje către și de la celelalte plăcuțe Raspberry Pi Pico W (centrala și aerul condiționat).
 +
 +**Determinarea anotimpului curent**: Implementată prin funcția get_current_season(),​ care utilizează data curentă pentru a stabili dacă este iarnă sau vară.
 +
 +**Gestionarea utilizatorilor**:​ Funcții pentru încărcarea,​ salvarea, adăugarea și ștergerea utilizatorilor și preferințelor lor de temperatură.
 +
 +**Citirea cardurilor RFID**: Funcția scan_rfid() care utilizează biblioteca MFRC522 pentru a citi și identifica utilizatorii.
 +
 +**Gestionarea temperaturii**:​ Funcția check_temperature() pentru a verifica și ajusta temperatura ambientală în funcție de preferințele utilizatorilor sau setările manuale.
 +
 +**Gestionarea modurilor de operare**: Funcția button_handler() care permite comutarea între modurile automat și manual prin intermediul unui buton.
 +
 +
 +2. **[[https://​github.com/​cristinagnn/​Smart-Home-System-Using-Raspberry-Pi-Pico-W/​blob/​main/​air_conditioner_board.py|air_conditioner_board.py
 +]]**
 +
 +Codul aplicației este structurat pentru a îndeplini următoarele funcționalități principale:
 +
 +**Conectarea la rețeaua Wi-Fi**: Realizată prin intermediul funcției connect_to_wifi(),​ care utilizează configurația specificată într-un fișier JSON.
 +
 +**Comunicarea MQTT**: Configurarea și gestionarea clientului MQTT pentru a primi și trimite mesaje către și de la plăcuța master_board.
 +
 +**Citirea și filtrarea valorii de la potențiometru**:​ Implementată prin funcțiile read_potentiometer() și map_value() pentru a citi și scala valoarea de la potențiometru în intervalul de temperaturi 15°C - 40°C.
 +
 +**Controlul LED-urilor**:​ Funcții pentru aprinderea și stingerea LED-urilor în funcție de comenzile primite pentru a indica starea de funcționare (cooling/​idle).
 +
 +**Transmiterea temperaturii curente**: Funcția principală care trimite periodic temperatura curentă citită de la potențiometru către plăcuța Master prin MQTT.
 +
 +
 +3. **[[https://​github.com/​cristinagnn/​Smart-Home-System-Using-Raspberry-Pi-Pico-W/​blob/​main/​heating_system_board.py|heating_system_board.py]]**
 +
 +
 +Codul aplicației este structurat pentru a îndeplini următoarele funcționalități principale:
 +
 +**Conectarea la rețeaua Wi-Fi**: Realizată prin intermediul funcției connect_to_wifi(),​ care utilizează configurația specificată într-un fișier JSON.
 +
 +**Comunicarea MQTT**: Configurarea și gestionarea clientului MQTT pentru a primi și trimite mesaje către și de la plăcuța Raspberry Pi Pico W Master.
 +
 +**Citirea valorii de la potențiometru**:​ Implementată prin funcția read_potentiometer() pentru a citi și scala valoarea de la potențiometru în intervalul de temperaturi 15°C - 40°C.
 +
 +**Controlul LED-urilor**:​ Funcții pentru aprinderea și stingerea LED-urilor în funcție de comenzile primite pentru a indica starea de funcționare (heating/​idle).
 +
 +**Transmiterea temperaturii manuale**: Funcția publish_manual_temperature() trimite temperatura setată manual de la potențiometru către plăcuța Master prin MQTT.
 + 
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +Proiectul a demonstrat implementarea unui sistem Smart-Home integrat, constând din trei plăcuțe Raspberry Pi Pico W conectate wireless, care comunică eficient între ele utilizând protocolul MQTT prin broker-ul Mosquitto. Am reușit să realizez o soluție funcțională pentru controlul automat și manual al sistemelor de încălzire și răcire, asigurând ajustarea temperaturii ​în locuință în funcție de prezența utilizatorilor și preferințele acestora. Sistemul s-a dovedit responsiv, reușind să gestioneze comenzile și să transmită datele necesare în timp real.
-Care au fost rezultatele obţinute ​în urma realizării proiectului vostru. +
-</​note>​+
  
 +<​html>​
 +<iframe width="​880"​ height="​495"​ src="​https://​www.youtube.com/​embed/​PP3-QLz_B80"​ title="​Sistem Smart Home pentru climatizare,​ Grosu Cristina-Geanina,​ 331CC" frameborder="​0"​ allow="​accelerometer;​ autoplay; clipboard-write;​ encrypted-media;​ gyroscope; picture-in-picture;​ web-share"​ referrerpolicy="​strict-origin-when-cross-origin"​ allowfullscreen></​iframe>​
 +</​html>​
 ===== Concluzii ===== ===== Concluzii =====
  
 +Proiectul a realizat cu succes integrarea unui sistem Smart-Home pentru controlul automat și manual al sistemelor de încălzire și răcire, demonstrând fiabilitatea comunicării wireless între cele trei plăcuțe Raspberry Pi Pico W. Utilizând protocolul MQTT prin broker-ul Mosquitto, sistemul a dovedit capacitatea de a gestiona eficient controlul temperaturii în funcție de prezența și preferințele utilizatorilor.
 ===== Download ===== ===== Download =====
  
-<note warning> 
-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**. 
-</​note>​ 
  
 +{{:​pm:​prj2024:​vstoica:​grosu_cristina_final_smart_home_system.zip|}}
 ===== Jurnal ===== ===== Jurnal =====
 **7.03.2024:​** Comandat piese. **7.03.2024:​** Comandat piese.
Line 141: Line 204:
 **18.05.2024:​** Adus documentatia la un nivel mai satisfacator. **18.05.2024:​** Adus documentatia la un nivel mai satisfacator.
  
 +**24.05.2024:​** Implementat protocolul mosquitto pentru comunicatia wireless.
 +
 +**26.05.2024:​** Finalizat documentatia si codul cu toate functionalitatile necesare.
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
Line 154: Line 220:
 [3] https://​www.raspberrypi.com/​documentation/​microcontrollers/​images/​picow-pinout.svg <- most important [3] https://​www.raspberrypi.com/​documentation/​microcontrollers/​images/​picow-pinout.svg <- most important
  
 +[4] https://​mosquitto.org/​
 +
 +[5] https://​www.youtube.com/​watch?​v=ybCMXqsQyDw&​ab_channel=CoreElectronics
 +
 +[6] https://​www.youtube.com/​watch?​v=jw9zTjKqoUA&​ab_channel=Shilleh
  
 +[7] https://​randomnerdtutorials.com/​raspberry-pi-pico-w-mqtt-micropython/​
  
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2024/vstoica/cristina.grosu.1716625489.txt.gz · Last modified: 2024/05/25 11:24 by cristina.grosu
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