This shows you the differences between two versions of the page.
pm:prj2024:avaduva:bianca.tanase1007 [2024/05/27 03:07] 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, RST: Conectati 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. | ||
Line 129: | Line 129: | ||
* 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 ===== |