- Materiale necesare:
- Metodologie de lucru:
- Cerințe prealabile:
- Funcționarea unei telecomenzi AC:
- Schema și explicația circuitului:
- Decodarea semnalelor de la distanță AC:
- Programul principal Arduino:
- Funcționarea sistemului automat de control al temperaturii AC:
Un AC (Aer condiționat) care a fost cândva considerat a fi un obiect de lux și se găsea doar în hoteluri mari, săli de film, restaurante etc… Dar, acum aproape toată lumea are un AC în casa noastră pentru a bate vara / iarna și cei care o au, își fac griji pentru un lucru comun. Acesta este consumul ridicat de energie electrică și încărcătoarele datorate acestuia. În acest proiect vom realiza un mic circuit automat de control al temperaturii care ar putea minimiza încărcătoarele de energie electrică, variind automat temperatura AC în funcție de temperatura camerei. Prin variația periodică a temperaturii setate, putem evita ca AC să funcționeze pentru valori mai scăzute ale temperaturii pentru o perioadă lungă de timp și astfel să-l consumăm mai puțin.
Cei mai mulți dintre noi am fi experimentat o situație în care trebuie să schimbăm temperatura setată a aparatului de aer condiționat la valori diferite în diferite momente ale zilei, pentru a ne menține confortabil pe tot parcursul. Pentru a automatiza acest proces, acest proiect folosește un senzor de temperatură (DHT11) care citește temperatura actuală a camerei și pe baza valorii respective va trimite comenzi către AC printr-un blaster IR similar cu telecomanda AC. AC va reacționa la aceste comenzi ca și cum ar reacționa la telecomandă și astfel va regla temperatura. Pe măsură ce temperatura camerei se schimbă, Arduino va ajusta, de asemenea, temperatura setată de AC pentru a vă menține temperatura în modul în care doriți să fie. Sună grozav nu?… Să vedem cum să construim unul.
Materiale necesare:
- Arduino Mega 2560
- TSOP1738 (HS0038)
- Led IR
- Senzor de temperatură / umiditate DHT11
- Orice LED color și rezistență 1K (opțional)
- Breadboard
- Conectarea firelor
Metodologie de lucru:
Toate telecomenzile din casa noastră pe care le folosim pentru a controla televizorul, Home Theater, AC etc. funcționează cu ajutorul IR Blasters. Un blaster IR nu este altceva decât un LED IR care ar putea blaster un semnal prin pulsuri repetitive; acest semnal va fi citit de receptor în aparatul electronic. Pentru fiecare buton diferit de pe telecomandă va fi lansat un semnal unic care, după citirea de către receptor, este utilizat pentru a efectua o anumită sarcină predefinită. Dacă suntem capabili să citim acest semnal care iese din telecomandă, putem imita același semnal folosind un LED IR atunci când este necesar să îndeplinim acea sarcină specială. Am realizat anterior un circuit IR Blaster pentru telecomanda IR universală.
Un TSOP este un receptor IR care ar putea fi folosit pentru a decoda semnalul provenit de la telecomenzi. Acest receptor va fi interfațat cu Arduino pentru a semnaliza pentru fiecare buton și apoi va fi utilizat un Led IR cu Arduino pentru a imita semnalul atunci când este necesar vreodată. Astfel putem obține controlul asupra AC-ului nostru folosind Arduino.
Acum, nu mai rămâne decât să citiți valoarea temperaturii folosind DHT11 și să instruiți AC în mod corespunzător folosind semnalele IR. Pentru a face proiectul să pară mai atractiv și mai ușor de utilizat, am adăugat și un afișaj OLED care afișează temperatura curentă, umiditatea și temperatura setată de curent alternativ. Aflați mai multe despre utilizarea OLED cu Arduino.
Cerințe prealabile:
Acest proiect al controlerului automat de temperatură în curent alternativ este ușor avansat pentru nivelul pentru începători, cu toate acestea, cu ajutorul altor câteva tutoriale, oricine poate construi acest lucru cu chestiuni de timp. Deci, dacă sunteți un începător absolut în OLED, DHT11 sau TSOP, reveniți la aceste tutoriale de mai jos, unde puteți afla elementele de bază și cum să începeți cu acestea. Lista ar putea părea puțin lungă, dar credeți-mă că este ușor și merită învățat, de asemenea, va deschide ușile multor proiecte noi.
- Circuit de bază folosind TSOP și LED IR pentru a lucra sub acestea
- Ghid de interfață de bază pentru DHT11 cu Arduino
- Ghid de interfață de bază pentru OLED cu Arduino
- Interfață TSOP cu Arduino pentru a citi valorile de la distanță IR
Asigurați-vă că aveți un Arduino Mega și orice altă versiune a Arduino, deoarece dimensiunea codului este grea. De asemenea, verificați dacă ați instalat deja următoarele biblioteci Arduino dacă nu le instalați din linkul de mai jos
- Biblioteca la distanță IR pentru TSOP și IR Blaster
- Biblioteca Adafruit pentru OLED
- Biblioteca grafică GFX pentru OLED
- Biblioteca senzorului DHT11 pentru senzorul de temperatură
Funcționarea unei telecomenzi AC:
Înainte de a începe proiectul, luați ceva timp și observați cum funcționează telecomanda dvs. CA. Telecomandele AC funcționează într-un mod puțin diferit în comparație cu telecomandele TV, DVD IR. S-ar putea să existe doar 10-12 butoane pe telecomandă, dar acestea vor putea trimite o mulțime de tipuri diferite de semnale. Adică telecomanda nu trimite același cod de fiecare dată pentru același buton. De exemplu, atunci când reduceți temperatura utilizând butonul în jos pentru a face 24 ° C (grade Celsius) veți primi un semnal cu un set de date, dar când îl apăsați din nou pentru a seta 25 ° C nu veți obține același lucru date, deoarece temperatura este acum 25 și nu 24. În mod similar, codul pentru 25 va varia, de asemenea, pentru diferite viteze ale ventilatorului, setările de somn etc. Deci, să nu ne jucăm cu toate opțiunile și să concentrăm doar valorile temperaturii cu o valoare constantă pentru alte setări.
O altă problemă este cantitatea de date care este trimisă pentru fiecare apăsare a butonului, telecomenzile normale cu trimitere fie pe 24 de biți, fie pe 48 de biți, dar o telecomandă AC ar putea trimite până la 228 de biți, deoarece fiecare semnal conține o mulțime de informații, cum ar fi Temp, Fan Speed Momentul somnului, stilul Swing etc. Acesta este motivul pentru care avem nevoie de un Arduino Mega pentru opțiuni de stocare mai bune.
Schema și explicația circuitului:
Din fericire, configurarea hardware a acestui proiect automat de control al temperaturii AC este foarte ușoară. Puteți pur și simplu să utilizați o placă de calcul și să faceți conexiunile așa cum se arată mai jos.
Următorul tabel poate fi utilizat și pentru a vă verifica conexiunile.
S. Nu: |
Pinul componentei |
Pinul Arduino |
1 |
OLED - Vcc |
5V |
2 |
OLED - Gnd |
Gnd |
3 |
OLED- SCK, D0, SCL, CLK |
4 |
4 |
OLED- SDA, D1, MOSI, Date |
3 |
5 |
OLED- RES, RST, RESET |
7 |
6 |
OLED- DC, A0 |
5 |
7 |
OLED- CS, Chip Select |
6 |
8 |
DHT11 - Vcc |
5V |
9 |
DHT11 - Gnd |
Gnd |
10 |
DHT11 - Semnal |
13 |
11 |
TSOP - Vcc |
5V |
12 |
TSOP - Gnd |
Gnd |
13 |
Led IR - Anod |
9 |
14 |
Led IR - catod |
Gnd |
După ce ați terminat conexiunile, ar trebui să arate așa cum se arată mai jos. Am folosit un panou pentru a ordona lucrurile, dar puteți, de asemenea, să faceți fire de la masculin la feminin direct pentru a conecta toate componentele
Decodarea semnalelor de la distanță AC:
Primul pas pentru a vă controla AC-ul este să utilizați TSOP1738 pentru a decoda codurile IR ale telecomenzii AC. Faceți toate conexiunile așa cum se arată în schema de circuit și asigurați-vă că ați instalat toate bibliotecile menționate. Acum deschideți exemplul de program „ IRrecvDumpV2 ” care poate fi găsit la Fișier -> Exemple -> IRremote -> IRrecvDumpV2 . Încărcați programul pe Arduino Mega și deschideți Serial Monitor.
Îndreptați telecomanda către TSOP și apăsați orice buton, pentru fiecare buton pe care îl apăsați Semnalul respectiv va fi citit de TSOP1738, decodat de Arduino și afișat în monitorul serial. Pentru fiecare schimbare de temperatură de pe telecomandă, veți primi date diferite. Salvați aceste date pentru că le vom folosi în programul nostru principal. Monitorul dvs. serial va arăta cam așa, am arătat și fișierul Word pe care am salvat datele copiate.
Captura de ecran arată codul pentru setarea temperaturii la 26 ° C pentru telecomanda AC. Pe baza telecomenzii dvs. veți obține un set diferit de coduri. Copiați în mod similar codurile pentru toate nivelurile diferite de temperatură. Puteți verifica toate codurile IR ale telecomenzii pentru aer condiționat din codul Arduino dat la sfârșitul acestui tutorial.
Programul principal Arduino:
Programul principal Arduino complet poate fi găsit în partea de jos a acestei pagini, dar nu puteți utiliza același program. Trebuie să modificați valorile codului de semnal pe care tocmai le-am obținut din schița de mai sus. Deschideți programul principal de pe Arduino IDE și derulați în jos până la această zonă prezentată mai jos, unde trebuie să înlocuiți valorile matricei cu valorile pe care le-ați obținut pentru telecomandă.
Rețineți că am folosit 10 matrice din care două au pornit și oprit AC, în timp ce restul 8 este utilizat pentru a seta temperatura diferită. De exemplu, Temp23 este utilizat pentru a seta 23 ° C pe AC, deci utilizați codul respectiv în matricea respectivă. Odată ce ați făcut acest lucru, trebuie doar să încărcați codul pe Arduino și să-l plasați vizavi de AC și să vă bucurați de Cool Breeze.
Explicația codului este următoarea, mai întâi trebuie să folosim senzorul de temperatură DHT1 pentru a citi temperatura și umiditatea și a-l afișa pe OLED. Acest lucru se face prin următorul cod.
DHT.read11 (DHT11_PIN); // Citiți Temp și Umiditate Măsurată_temp = DHT.temperatură + eroare_temp; Measured_Humi = DHT.umiditate; // testare afișare text display.setTextSize (1); display.setTextColor (ALB); display.setCursor (0,0); display.print ("Temperatura:"); display.print (Measured_temp); display.println ("C"); display.setCursor (0,10); display.print ("Umiditate:"); display.print (Measured_Humi); display.println ("%");
Odată ce cunoaștem temperatura camerei, trebuie doar să o comparăm cu valoarea dorită. Această valoare dorită este o valoare constantă care este setată la 27 ° C (grade Celsius) în programul meu. Deci, pe baza acestei comparații, vom seta o temperatură AC corespunzătoare, așa cum se arată mai jos
if (Measured_temp == Desired_temperature + 3) // Dacă AC este PORNIT și temperatura măsurată este foarte mare decât dorit {irsend.sendRaw (Temp24, sizeof (Temp24) / sizeof (Temp24), khz); delay (2000); // Trimite semnal pentru a seta 24 * C AC_Temp = 24; }
Aici AC va fi setat la 24 ° C când temperatura măsurată este de 30 ° C (deoarece temperatura dorită este de 27). În mod similar, putem crea multe bucle If pentru a seta niveluri diferite de temperaturi pe baza temperaturii măsurate, așa cum se arată mai jos.
if (Measured_temp == Desired_temperature-1) // Dacă AC este PORNIT și temperatura măsurată este mai mică decât valoarea dorită {irsend.sendRaw (Temp28, sizeof (Temp28) / sizeof (Temp28), khz); delay (2000); // Trimite semnal la setarea 28 * C AC_Temp = 28; } if (Measured_temp == Desired_temperature-2) // Dacă AC este PORNIT și temperatura măsurată este foarte mică decât valoarea dorită {irsend.sendRaw (Temp29, sizeof (Temp29) / sizeof (Temp29), khz); delay (2000); // Trimite semnal pentru a seta 29 * C AC_Temp = 29; } if (Measured_temp == Desired_temperature-3) // Dacă AC este PORNIT și temperatura măsurată este valoarea foarte scăzută dorită {irsend.sendRaw (Temp30, sizeof (Temp30) / sizeof (Temp30), khz); delay (2000); // Trimite semnal pentru a seta 30 * C AC_Temp = 30; }
Funcționarea sistemului automat de control al temperaturii AC:
Când codul și hardware-ul dvs. sunt gata, încărcați codul pe tablă și ar trebui să observați că OLED afișează ceva similar cu acesta.
Acum plasați circuitele opuse aparatului de aer condiționat și observați că temperatura AC se controlează în funcție de temperatura camerei. Puteți încerca să măriți temperatura în apropierea senzorului DHT11 pentru a verifica dacă temperatura AC este controlată așa cum se arată în videoclipul de mai jos.
Puteți modifica programul pentru a efectua orice acțiune dorită; tot ce aveți nevoie este codul pe care l-ați obținut din schița de exemplu. Sper că ați înțeles acest proiect de control automat al temperaturii și v-a plăcut să construiți ceva foarte asemănător. Știu că sunt multe locuri aici pentru a rămâne blocat, dar nu vă faceți griji atunci. Folosiți doar forumul sau secțiunea de comentarii pentru a explica problema dvs. și oamenii de aici vă vor ajuta cu siguranță să o rezolvați.