This shows you the differences between two versions of the page.
pm:prj2024:sseverin:robert.nastase0609 [2024/04/29 11:09] robert.nastase0609 [Descriere generală] |
pm:prj2024:sseverin:robert.nastase0609 [2024/05/27 16:28] (current) robert.nastase0609 [Bibliografie/Resurse] |
||
---|---|---|---|
Line 28: | Line 28: | ||
-Utilizatorii pot comanda manual sistemul de iluminat printr-un modul de comunicații. | -Utilizatorii pot comanda manual sistemul de iluminat printr-un modul de comunicații. | ||
- | {{:pm:prj2024:sseverin:schema_bloc_robert_nastase.png?750 |}} | + | {{ :pm:prj2024:sseverin:schema_bloc_robert_nastase.png?650 |}} |
===== Hardware Design ===== | ===== Hardware Design ===== | ||
+ | |||
+ | ==Listă de componente:== | ||
+ | * 2x Arduino Uno R3 ATMega328P | ||
+ | * 1x Breadboard HQ (830p) | ||
+ | * 1x Breadboard HQ (400p) | ||
+ | * 1x Modul LCD 1602 cu Interfață I2C și Backlight Galben-Verde | ||
+ | * 1x Modul LCD de 2.8" cu SPI și Controller ILI9341 (240x320 px) | ||
+ | * 1x Modul Senzor de Mișcare PIR HC-SR501 | ||
+ | * 1x Modul Senzor de Gaz MQ-2 | ||
+ | * 1x Senzor de Temperatură și Umiditate DHT11 | ||
+ | * 3x Micro Servomotor SG90 90° | ||
+ | * 2x Buzzer Pasiv | ||
+ | * 1x Senzor Ultrasonic HC-SR04 | ||
+ | * 4x Condensator 100uF 35V | ||
+ | * 1x Rezistor 10kΩ | ||
+ | * 1x Rezistor 4.7kΩ | ||
+ | * 1x Rezistor 2kΩ | ||
+ | * 1x Rezistor 1kΩ | ||
+ | * 1x Rezistor 220Ω | ||
+ | * 2x Rezistor 100Ω | ||
+ | * 1x Modul Bluetooth HC-05 cu Adaptor | ||
+ | * LED-uri | ||
+ | * Jumper Wires | ||
<note tip> | <note tip> | ||
- | Aici puneţi tot ce ţine de hardware design: | + | Din diagrama circuitului din exteriorul casei și din schema electrică a acestuia lipsesc atât Modulul Bluetooth Master Slave HC-05, cât și mai multe LED-uri care vor fi adăugate în circuit atunci când acesta va fi amplasat pe macheta de carton care poate fi observată în imaginea adăugată. |
- | * listă de piese | + | |
- | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | |
- | * diagrame de semnal | + | |
- | * rezultatele simulării | + | |
</note> | </note> | ||
+ | ==Diagrama Circuitului din Exteriorul Casei:== | ||
+ | |||
+ | {{ :pm:prj2024:sseverin:diagrama_circuit_exterior.png?650 |}} | ||
+ | |||
+ | ==Schema Electrică a Circuitului din Exteriorul Casei:== | ||
+ | |||
+ | {{ :pm:prj2024:sseverin:smart_home_system_schematic_exterior.png?650 |}} | ||
+ | |||
+ | ==Diagrama Circuitului din Interiorul Casei:== | ||
+ | |||
+ | {{ :pm:prj2024:sseverin:diagrama_circuit_interior.png?650 |}} | ||
+ | |||
+ | ==Schema Electrică a Circuitului din Interiorul Casei:== | ||
+ | |||
+ | {{ :pm:prj2024:sseverin:smart_home_system_schematic_interior.png?650 |}} | ||
+ | |||
+ | ==Stadiul Actual al părții Hardware:== | ||
+ | |||
+ | {{ :pm:prj2024:sseverin:smart_home_system.jpeg?650 |}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | ==Mediu de Dezvoltare== | ||
- | <note tip> | + | Codul necesar funcționării proiectului a fost dezvoltat în Arduino IDE în fișierele: |
- | Descrierea codului aplicaţiei (firmware): | + | * **circuit_interior.ino** |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | * **circuit_exterior.ino** |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | Pentru a facilita comunicarea cu modulul Bluetooth HC-05, am folosit **MIT App Inventor**, o platformă web concepută pentru a permite utilizatorilor să creeze aplicații mobile pentru dispozitive Android printr-o interfață simplă de tip drag-and-drop. |
- | * (etapa 3) surse şi funcţii implementate | + | |
- | </note> | + | ==Biblioteci utilizate pentru Circuitul Interior== |
+ | * **Wire.h** -> pentru comunicația I2C între microcontroller și dispozitive periferice, cum ar fi senzori și ecrane LCD. | ||
+ | * **Servo.h** -> pentru controlul servomotoarelor, permițând poziționarea precisă a acestora prin semnale PWM. | ||
+ | * **LiquidCrystal_I2C.h** -> pentru controlul ecranelor LCD compatibile cu interfața I2C, facilitând afișarea de texte și date. | ||
+ | * **dht11.h** -> pentru utilizarea senzorului de temperatură și umiditate DHT11, oferind metode pentru citirea valorilor de temperatură și umiditate. | ||
+ | |||
+ | ==Biblioteci utilizate pentru Circuitul Exterior== | ||
+ | * **Adafruit_GFX.h** -> pentru desenarea formelor și textului pe afișaje, oferind funcții esențiale pentru interfețe grafice. | ||
+ | * **Adafruit_ST7789.h** -> pentru controlul ecranelor TFT bazate pe driverul ST7789, facilitând afișarea de imagini și texte. | ||
+ | * **Servo.h** -> pentru controlul servomotoarelor, permițând poziționarea precisă a acestora prin semnale PWM. | ||
+ | * **SPI.h** -> pentru comunicația serială de mare viteză între microcontroller și dispozitivele periferice folosind protocolul SPI (Serial Peripheral Interface). | ||
+ | |||
+ | ==Laboratoare utilizate== | ||
+ | * **Laboratorul 1: USART. Debugging** -> Utilizat pentru comunicarea serială și debugging. | ||
+ | * **Laboratorul 3: Timere. Pulse Width Modulation (PWM)** -> Utilizat pentru controlul precis al servomotoarelor prin PWM. | ||
+ | * **Laboratorul 4: Analog Digital Convertor (ADC)** -> Utilizat pentru citirea și procesarea datelor de la senzorii analogici (ex: senzorul de gaz MQ-2). | ||
+ | * **Laboratorul 5: Serial Peripheral Interface (SPI)** -> Utilizat pentru comunicația între microcontroller și LCD-ul ST7789 în circuitul exterior. | ||
+ | * **Laboratorul 6: Inter-Integrated Circuit (I2C)** -> Utilizat pentru comunicația cu LCD-ul I2C în circuitul interior. | ||
+ | |||
+ | ==Descrierea logicii și a metodelor implementate în Circuitul Interior== | ||
+ | * **setup()** -> folosită pentru inițializarea următoarelor componente: | ||
+ | * Serial Monitor la 9600 Baud Rate pentru debug. | ||
+ | * Senzorul PIR setat ca input și LED-ul, buzzerul setate ca output. | ||
+ | * Butonul setat ca input cu pull-up intern. | ||
+ | * Servomotoare atașate și setate la poziția inițială. | ||
+ | * LCD-ul inițializat și setat să afișeze un mesaj inițial. | ||
+ | * Calibrarea senzorilor timp de 30 secunde. | ||
+ | * **loop()** | ||
+ | * Verifică starea butonului pentru a comuta între activarea/dezactivarea sistemului de securitate. | ||
+ | * Monitorizarea senzorului MQ-2 pentru detectarea gazelor și controlul servomotoarelor. | ||
+ | * Actualizarea afișajului LCD la fiecare 3 secunde pentru a afișa temperatura, umiditatea, valoarea senzorului MQ-2 și starea sistemului de securitate. | ||
+ | * Monitorizarea senzorului PIR și controlul LED-ului și buzzer-ului. | ||
+ | |||
+ | ==Descrierea logicii și a metodelor implementate în Circuitul Exterior== | ||
+ | * **setup()** -> folosită pentru inițializarea următoarelor componente: | ||
+ | * Serial Monitor la 9600 Baud Rate pentru debug. | ||
+ | * Senzorul ultrasonic (TRIG_PIN ca OUTPUT și ECHO_PIN ca INPUT). | ||
+ | * Buzzer-ul, LED-ul setate ca OUTPUT și inițializate la LOW. | ||
+ | * Servomotorul atașat la pinul specific și setat la poziția inițială. | ||
+ | * LCD-ul ST7789 inițializat și setat să afișeze mesajele inițiale. | ||
+ | |||
+ | * **loop()** | ||
+ | * Verifică intrările Bluetooth și actualizează starea LED-ului și poziția servomotorului, respectiv a barierei, în funcție de comenzi. | ||
+ | * Măsoară distanța folosind senzorul ultrasonic și afișează pe LCD. | ||
+ | * Actualizează starea de securitate pe baza distanței măsurate. | ||
+ | |||
+ | ==Descrierea logicii din aplicația de control a Circuitului Exterior== | ||
+ | |||
+ | {{ :pm:prj2024:sseverin:aplicatie_smart_home_system.png?650 |}} | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | ==Testul Final al Implementarii Proiectului== |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | Testul final a constat în verificarea funcționalității tuturor sistemelor integrate atât în circuitul din interiorul casei, cât și în circuitul din exteriorul casei. |
+ | |||
+ | {{ :pm:prj2024:sseverin:smart_home_system_test_final.jpeg?650 |}} | ||
+ | |||
+ | ==Rezultatul final (1) - Interior == | ||
+ | |||
+ | {{ :pm:prj2024:sseverin:smart_home_system_fara_acoperis.jpeg?650 |}} | ||
+ | |||
+ | ==Rezultatul final (2) - Exterior == | ||
+ | |||
+ | {{ :pm:prj2024:sseverin:smart_home_system_cu_acoperis.jpeg?650 |}} | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
- | ===== Download ===== | + | "Smart Home System" reprezintă o metodă de integrare a diferitelor tehnologii pentru a îmbunătăți securitatea și confortul unei locuințe. Utilizând o varietate de senzori și componente electronice, sistemul monitorizează și reacționează la diverse condiții din jurul casei, precum și la cerințele celui care îl folosește. |
- | <note warning> | + | Implementarea oferă un sistem de securitate cuprinzător atât prin intermediul senzorilor care pot detecta mișcări nedorite în cadrul proprietății, cât și prin intermediul senzorului care activează sistemul automat de aerisire a casei. Integrarea ecranelor LCD permite afișarea în timp real a informațiilor relevante, facilitând utilizatorului monitorizarea constantă a stării sistemului. Controlul servomotoarelor și al altor dispozitive prin intermediul semnalelor PWM și al comunicației Bluetooth adaugă un nivel suplimentar de funcționalitate și flexibilitate. De asemenea, sistemul demonstrează eficiența comunicării seriale pentru debug și control. |
- | 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**. | + | În concluzie, acest proiect ilustrează cum tehnologia poate fi folosită pentru a crea soluții interconectate pentru securitatea și gestionarea unei locuințe, oferind o bază solidă pentru extinderea și îmbunătățirea viitoarelor sisteme de automatizare casnică. |
+ | ===== Download & GitHub Repository ===== | ||
+ | |||
+ | <note> | ||
+ | Proiectul care constă în aplicație pentru dispozitive Android, cod sursă și alte resurse grafice sunt disponibile pe [[https://github.com/robert-nst/Smart-Home-System|GitHub]]. | ||
</note> | </note> | ||
- | ===== Jurnal ===== | + | <note>De asemenea, puteți descărca direct întreg conținutul proiectului accesând: {{:pm:prj2024:sseverin:smart-home-system.zip|}}</note> |
- | <note tip> | ||
- | 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 ===== | ||
- | <note> | + | ==Resurse Software== |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * https://docs.arduino.cc/learn/microcontrollers/analog-input/ |
- | </note> | + | * https://docs.arduino.cc/learn/microcontrollers/analog-output/ |
+ | * https://www.arduino.cc/reference/en/libraries/liquidcrystal-i2c/ | ||
+ | * https://www.arduino.cc/reference/en/libraries/dht11/ | ||
+ | * https://www.arduino.cc/reference/en/language/functions/communication/spi/ | ||
+ | * https://www.arduino.cc/reference/en/libraries/adafruit-st7735-and-st7789-library/ | ||
+ | * https://www.arduino.cc/reference/en/libraries/adafruit-gfx-library/ | ||
+ | * https://ocw.cs.pub.ro/courses/pm/lab/lab0-2023 | ||
+ | * https://ocw.cs.pub.ro/courses/pm/lab/lab1-2023 | ||
+ | * https://ocw.cs.pub.ro/courses/pm/lab/lab2-2023 | ||
+ | * https://ocw.cs.pub.ro/courses/pm/lab/lab3-2023-2024 | ||
+ | * https://ocw.cs.pub.ro/courses/pm/lab/lab4-2023-2024 | ||
+ | * https://ocw.cs.pub.ro/courses/pm/lab/lab5-2023-2024 | ||
+ | * https://ocw.cs.pub.ro/courses/pm/lab/lab6-2023-2024 | ||
+ | * https://ai2.appinventor.mit.edu/ | ||
+ | |||
+ | ==Resurse Hardware== | ||
+ | * https://docs.arduino.cc/learn/electronics/servo-motors/ | ||
+ | * https://docs.arduino.cc/learn/electronics/lcd-displays/ | ||
+ | * https://support.arduino.cc/hc/en-us/articles/4403050020114-Troubleshooting-PIR-Sensor-and-sensitivity-adjustment | ||
+ | * https://newbiely.com/tutorials/arduino-nano/arduino-nano-gas-sensor | ||
+ | * https://docs.arduino.cc/learn/communication/bluetooth/ | ||
+ | * https://docs.arduino.cc/learn/electronics/servo-motors/ | ||
+ | * https://www.waveshare.com/wiki/2.4inch_LCD_Module | ||
+ | * https://maxbotix.com/blogs/blog/how-ultrasonic-sensors-work | ||
<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> | ||