Differences

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

Link to this comparison view

pm:prj2024:avaduva:bianca.tanase1007 [2024/05/27 03:06]
bianca.tanase1007 [Variabilele si rolul lor]
pm:prj2024:avaduva:bianca.tanase1007 [2024/05/27 08:16] (current)
bianca.tanase1007 [Materiale utilizate și rolul lor]
Line 20: Line 20:
 ===== Schema bloc ===== ===== Schema bloc =====
  
-{{:​pm:​prj2024:​avaduva:​schema_bloc_pm.jpg?800|}}+{{:​pm:​prj2024:​avaduva:​whatsapp_image_2024-05-26_at_17.28.02.jpeg?700|}}
 ===== Hardware Design ===== ===== Hardware Design =====
  
Line 31: Line 31:
       * Rol: Rotește suportul în funcție de anotimpul dorit       * Rol: Rotește suportul în funcție de anotimpul dorit
  
-  * Driver motor ULN2003 albastru +
-      * Rol: Controlează și gestionează funcționarea motorului+
  
   * Butoane cu capac rotund (roșu, negru, albastru, alb)   * Butoane cu capac rotund (roșu, negru, albastru, alb)
Line 46: Line 45:
       * Rol: Conectează plăcuța la internet și preia datele necesare în timp real(temperatura)       * Rol: Conectează plăcuța la internet și preia datele necesare în timp real(temperatura)
  
-  * LCD 1692 cu Interfata I2C+  * LCD 1602 cu Interfata I2C
       * Rol: Afișează informațiile preluate de pe internet(temperatura)       * Rol: Afișează informațiile preluate de pe internet(temperatura)
  
Line 81: Line 80:
      * Conectate la pinii digitali D2, D3, D4 și D5.       * Conectate la pinii digitali D2, D3, D4 și D5. 
   * Modul Wi-Fi    * Modul Wi-Fi 
-     ​* ​Pinul VCC: Conectat ​la 3.3V +     ​* ​Pinii VCC, CH_PD, RSTConectati ​la 3.3V
      * Pinul GND: Conectat la GND.      * Pinul GND: Conectat la GND.
-     * Pinul RX: Conectat la pinul digital D10 de pe Arduino. +     * Pinul RX: Conectat la RX  ​de pe Arduino. 
-     * Pinul TX: Conectat la pinul digital D11 de pe Arduino. ​+     * Pinul TX: Conectat la TX de pe Arduino. ​
   * Motorul Pas cu Pas   * Motorul Pas cu Pas
      * Pini Digitali (D8, D9, D10, D11): conectati la Stepper Motor       * Pini Digitali (D8, D9, D10, D11): conectati la Stepper Motor 
   * Display LCD   * Display LCD
-     ​* ​Pini Digitali (D7, D6, D5, D4, D3, D2): +     ​* ​SDA este conectat la A4  
-     ​* ​RS (D7): Selectarea registrului de comandă. +     ​* ​SCL la A5 
-     ​* ​E (D6): Pinul de activare, semnal de „enable”. +     ​* ​VCC la 5V 
-     ​* ​D4-D7 (D5, D4, D3, D2): Pinii de date pentru comunicare în mod 4 biți.+     ​* ​GND la GND
   * DHT11 - Senzor de temperatură și umiditate ​   * DHT11 - Senzor de temperatură și umiditate ​
      * Pinul VCC la 5V      * Pinul VCC la 5V
Line 106: Line 105:
  
 ==== Biblioteci folosite ==== ==== Biblioteci folosite ====
-  ​* Wire.h și LiquidCrystal_I2C.h+ 
 +**Wire.h și LiquidCrystal_I2C.h**
       * Wire.h este biblioteca standard pentru comunicarea I2C pe Arduino.       * Wire.h este biblioteca standard pentru comunicarea I2C pe Arduino.
       * LiquidCrystal_I2C.h permite utilizarea unui ecran LCD 16x2 cu interfață I2C. Oferă o interfață simplă pentru controlul ecranului       * LiquidCrystal_I2C.h permite utilizarea unui ecran LCD 16x2 cu interfață I2C. Oferă o interfață simplă pentru controlul ecranului
         ​         ​
-  ​* Stepper.h +**Stepper.h** 
-        * Biblioteca Stepper este utilizata pentru schimbarea poziției sezoniere în funcție de apăsarea butoanelor.+  * Biblioteca Stepper este utilizata pentru schimbarea poziției sezoniere în funcție de apăsarea butoanelor.
  
-  ​* SoftwareSerial.h +**SoftwareSerial.h** 
-      * Biblioteca SoftwareSerial este utilizata pentru comunicarea serială cu modulul ESP8266. ​+  * Biblioteca SoftwareSerial este utilizata pentru comunicarea serială cu modulul ESP8266. ​
  
-  ​* ArduinoJson.h+**ArduinoJson.h**
      * Biblioteca ArduinoJson este utilizată pentru parsarea și manipularea datelor JSON. Permite parsarea răspunsurilor JSON primite de la API-ul meteo.      * Biblioteca ArduinoJson este utilizată pentru parsarea și manipularea datelor JSON. Permite parsarea răspunsurilor JSON primite de la API-ul meteo.
  
-  ​* DHT.h+**DHT.h**
      * Biblioteca DHT este specifică pentru senzorii de temperatură și umiditate DHT11. Gestionează comunicarea cu senzorul DHT11 pentru a citi valorile de temperatură și umiditate. ​      * Biblioteca DHT este specifică pentru senzorii de temperatură și umiditate DHT11. Gestionează comunicarea cu senzorul DHT11 pentru a citi valorile de temperatură și umiditate. ​
 ==== Variabilele si rolul lor ==== ==== Variabilele si rolul lor ====
  
-  ​* Senzor DHT+**Senzor DHT**
  
-#define DHTPIN A0: Pinul la care este conectat senzorul DHT11. +          * #define DHTPIN A0: Pinul la care este conectat senzorul DHT11. 
-#define DHTTYPE DHT11: Tipul senzorului (DHT11). +          ​* ​#define DHTTYPE DHT11: Tipul senzorului (DHT11). 
-DHT dht(DHTPIN, DHTTYPE);: Inițializează senzorul DHT11 pe pinul specificat.+          ​* ​DHT dht(DHTPIN, DHTTYPE);: Inițializează senzorul DHT11 pe pinul specificat.
  
-  ​* Conexiune Wi-Fi+**Conexiune Wi-Fi**
  
-const char* ssid = "Nume internet";:​ SSID-ul rețelei Wi-Fi. +  * const char* ssid = "Nume internet";:​ SSID-ul rețelei Wi-Fi. 
-const char* password = "​Parola internet";:​ Parola rețelei Wi-Fi. +  ​* ​const char* password = "​Parola internet";:​ Parola rețelei Wi-Fi. 
-const char* apiKey = "​cdadacc4dcebbd54cd11e8bdbb787111";:​ Cheia API pentru accesarea serviciului meteo.+  ​* ​const char* apiKey = "​cdadacc4dcebbd54cd11e8bdbb787111";:​ Cheia API pentru accesarea serviciului meteo.
  
-  ​* LCD+**LCD**
  
-LiquidCrystal_I2C lcd(0x27, 16, 2);: Inițializează un LCD cu interfață I2C pe adresa 0x27, cu dimensiuni 16x2.+  * LiquidCrystal_I2C lcd(0x27, 16, 2);: Inițializează un LCD cu interfață I2C pe adresa 0x27, cu dimensiuni 16x2.
  
-  ​* Motor Stepper+**Motor Stepper**
  
-int motorSpeed = 15;: Viteza motorului stepper (RPM). +  * int motorSpeed = 15;: Viteza motorului stepper (RPM). 
-int pin1 = 8;, int pin2 = 9;, int pin3 = 10;, int pin4 = 11;: Pinii de control ai motorului stepper. +  ​* ​int pin1 = 8;, int pin2 = 9;, int pin3 = 10;, int pin4 = 11;: Pinii de control ai motorului stepper. 
-Stepper myStepper(2048,​ pin1, pin3, pin2, pin4);: Inițializează motorul stepper cu 2048 pași pe rotație și pinii de control specificați.+  ​* ​Stepper myStepper(2048,​ pin1, pin3, pin2, pin4);: Inițializează motorul stepper cu 2048 pași pe rotație și pinii de control specificați.
  
-  ​* Butoane+**Butoane**
  
-int buttonAutumn = 4;, int buttonSummer = 5;, int buttonSpring = 2;, int buttonWinter = 3;: Pinii pentru butoanele de control al sezonului. +  * int buttonAutumn = 4;, int buttonSummer = 5;, int buttonSpring = 2;, int buttonWinter = 3;: Pinii pentru butoanele de control al sezonului. 
-int readingAutumn = 1;, int readingSummer = 1;, int readingSpring = 1;, int readingWinter = 1;: Valorile citite de la butoane.+  ​* ​int readingAutumn = 1;, int readingSummer = 1;, int readingSpring = 1;, int readingWinter = 1;: Valorile citite de la butoane.
  
-  ​* Alte Variabile+**Alte Variabile**
  
-int currentSeason = 0;: Sezonul curent (0 - Primăvară,​ 1 - Vară, 2 - Toamnă, 3 - Iarnă). +  * int currentSeason = 0;: Sezonul curent (0 - Primăvară,​ 1 - Vară, 2 - Toamnă, 3 - Iarnă). 
-int opus = 1024;, int dreapta = 512;, int stanga = -512;: Valori pentru pașii necesari pentru motorul stepper în funcție de direcție. +  ​* ​int opus = 1024;, int dreapta = 512;, int stanga = -512;: Valori pentru pașii necesari pentru motorul stepper în funcție de direcție. 
-SoftwareSerial espSerial(0,​ 1);: Inițializează un port serial software pe pinii 0 și 1 pentru comunicarea cu ESP8266.+  ​* ​SoftwareSerial espSerial(0,​ 1);: Inițializează un port serial software pe pinii 0 și 1 pentru comunicarea cu ESP8266.
  
 +==== Functii si rolul lor ====
 +
 +**setup()**
 +
 +  * Inițializează comunicarea serială pentru debugging (Serial.begin(115200);​).
 +  * Inițializează comunicarea serială software pentru ESP8266 (espSerial.begin(115200);​).
 +  * Inițializează LCD-ul (lcd.init();​ lcd.backlight();​).
 +  * Configurează pinii pentru butoane (pinMode(buttonAutumn,​ INPUT_PULLUP);​).
 +  * Setează viteza motorului stepper (myStepper.setSpeed(motorSpeed);​).
 +  * Inițializează senzorul DHT (dht.begin();​).
 +  * Conectează la rețeaua Wi-Fi apelând connectToWiFi().
 +
 +**loop()**
 +
 +  * Citește valorile de temperatură și umiditate de la senzorul DHT.
 +  * Afișează temperatura și umiditatea pe LCD.
 +  * Citește starea butoanelor.
 +  * Controlează motorul stepper în funcție de butonul apăsat și sezonul curent. ​
 +
 +**connectToWiFi()**
 +
 +  * Trimite comenzi AT către ESP8266 pentru a seta modul de operare și a se conecta la rețeaua Wi-Fi.
 +  * Verifică răspunsul pentru a asigura conexiunea Wi-Fi reușită.
 +
 +**fetchAndDisplayTemperature()**
 +
 +  * Trimite comenzi AT către ESP8266 pentru a inițializa o conexiune TCP către API-ul meteo.
 +  * Trimite o cerere GET pentru a obține datele meteo.
 +  * Parseaază răspunsul JSON pentru a extrage temperatura.
 +  * Afișează temperatura pe LCD.
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +Proiectul este finalizat cu succes.  
-Care au fost rezultatele obţinute în urma realizării proiectului vostru+ 
-</note>+Codul pentru garderoba inteligenta se afla la acest link :  [[https://​github.com/​10bianca/​Garderoba-Inteligenta/​blob/​main/​test.ino]] 
 + 
 +Demonstratia pentru functionarea intregului proiect este in acest videoclip: ​
  
 ===== Concluzii ===== ===== Concluzii =====
pm/prj2024/avaduva/bianca.tanase1007.1716768394.txt.gz · Last modified: 2024/05/27 03:06 by bianca.tanase1007
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