- Potrebni materiali:
- Delovna metodologija:
- Predpogoji:
- Delovanje daljinskega upravljalnika:
- Shema vezja in razlaga:
- Dekodiranje oddaljenih signalov AC:
- Glavni program Arduino:
- Delovanje samodejnega sistema za nadzor temperature AC:
AC (klimatska naprava), ki je nekoč veljala za luksuzni izdelek in jo je bilo mogoče najti le v velikih hotelih, filmskih dvoranah, restavracijah itd… Toda zdaj imajo skoraj vsi v našem domu klimatsko napravo, s katero lahko premagajo poletje / pozimi in tiste, ki jo imajo, skrbi ena skupna stvar. To je njihova velika poraba električne energije in zaradi tega polnilci. V tem projektu bomo izdelali majhno vezje za samodejni nadzor temperature, ki bi lahko polnilnike električne energije zmanjšalo s samodejnim spreminjanjem temperature izmeničnega toka glede na temperaturo v prostorih. S periodičnim spreminjanjem nastavljene temperature se lahko izognemo temu, da bi AC dolgo deloval za nižje temperaturne vrednosti in s tem porabil manj energije.
Večina od nas bi se znašla v situaciji, ko bi morali spremeniti nastavljeno temperaturo klimatske naprave na različne vrednosti v različnih urah dneva, tako da nam bo ves čas udobno. Za avtomatizacijo tega postopka ta projekt uporablja temperaturni senzor (DHT11), ki odčita trenutno temperaturo prostora in na podlagi te vrednosti pošlje ukaze AC-ju prek IR-pretvornika, podobnega daljinskemu upravljalniku AC-ja. AC se bo na te ukaze odzval, kot da se odziva na svoj daljinski upravljalnik, in tako prilagodil temperaturo. Ko se temperatura vaše sobe spreminja, bo Arduino prilagodil tudi nastavljeno temperaturo vašega AC, da bo ohranila vašo temperaturo, kakršno želite. Sliši se v redu, kajne?… Poglejmo, kako ga zgraditi.
Potrebni materiali:
- Arduino Mega 2560
- TSOP1738 (HS0038)
- IR Led
- DHT11 Senzor temperature / vlažnosti
- Vsaka barvna LED in 1K upor (neobvezno)
- Breadboard
- Povezovanje žic
Delovna metodologija:
Vsi daljinski upravljalniki v našem domu, ki jih uporabljamo za nadzor televizorja, domačega kina, AC itd., Delujejo s pomočjo IR Blasterjev. IR ni nič, ampak IR LED, ki bi Blaster signal zaradi ponavljajočih impulzov; ta signal bo prebral sprejemnik v elektronski napravi. Za vsak drugačen gumb na daljinskem upravljalniku se bo sprožil edinstven signal, ki se po branju sprejemnika uporabi za izvedbo določene vnaprej določene naloge. Če lahko preberemo ta signal, ki prihaja iz daljinskega upravljalnika, lahko isti signal posnemamo z IR-diodo, kadar je to potrebno za izvedbo te naloge. Pred tem smo izdelali vezje IR Blaster za univerzalni IR daljinec.
TSOP je IR sprejemnik, ki se lahko uporablja za dekodiranje signala, ki prihaja iz daljinskih upravljalnikov. Ta sprejemnik bo povezan z Arduinom, da bo signaliziral za vsak gumb, nato pa bo IR Led uporabljen z Arduinom za posnemanje signala, kadar bo to potrebno. Na ta način lahko z Arduinom pridobimo nadzor nad AC.
Zdaj je preostalo le še odčitavanje vrednosti temperature z uporabo DHT11 in ustrezen pouk AC z uporabo IR signalov. Da bi bil projekt videti bolj privlačen in uporabniku prijazen, sem dodal tudi OLED zaslon, ki prikazuje trenutno temperaturo, vlažnost in nastavljeno temperaturo AC. Preberite več o uporabi OLED z Arduino.
Predpogoji:
Ta projekt samodejnega krmiljenja temperature AC je nekoliko napreden za začetnike, vendar ga lahko s pomočjo nekaj drugih vaj zgradite s časom. Torej, če ste absolutni novinec v OLED-u, DHT11 ali TSOP-ju, se prosimo vrnite k spodnjim vadnicam, kjer se lahko naučite osnov in kako začeti z njimi. Zdi se, da je seznam nekoliko dolg, a verjemite mi, da je enostaven in vreden učenja, prav tako pa bo odprl vrata številnim novim projektom.
- Osnovno vezje, ki uporablja TSOP in IR LED za njihovo delo
- Osnovni priročnik za povezovanje DHT11 z Arduinom
- Osnovni priročnik za povezovanje OLED z Arduino
- Povezava TSOP z Arduinom za branje IR vrednosti na daljavo
Prepričajte se, da imate Arduino Mega in katero koli drugo različico Arduina, saj je velikost kode velika. Preverite tudi, ali ste že namestili naslednje knjižnice Arduino, če jih ne namestite, na spodnji povezavi
- IR oddaljena knjižnica za TSOP in IR Blaster
- Knjižnica Adafruit za OLED
- Grafična knjižnica GFX za OLED
- Knjižnica senzorjev DHT11 za temperaturni senzor
Delovanje daljinskega upravljalnika:
Preden nadaljujemo s projektom, vzemite nekaj časa in opazite, kako deluje vaš daljinski upravljalnik. Daljinski upravljalniki z izmeničnim tokom delujejo nekoliko drugače kot televizijski, DVD IR daljinci. Na daljinskem upravljalniku je lahko le 10–12 gumbov, vendar bodo lahko pošiljali veliko različnih vrst signalov. To pomeni, da daljinski upravljalnik ne pošlje iste kode vsakič za isti gumb. Ko na primer znižate temperaturo z gumbom navzdol, da je 24 ° C (stopinja Celzija), boste dobili signal z nizom podatkov, ko pa ga znova pritisnete za nastavitev 25 ° C, ne boste dobili enakega podatki, saj je temperatura zdaj 25 in ne 24. Podobno se bo tudi koda za 25 spreminjala glede na različne hitrosti ventilatorja, nastavitve spanja itd. Zato se ne pretiravajmo z vsemi možnostmi in zgolj koncentriramo samo vrednosti temperature s konstantno vrednostjo za druge nastavitve.
Druga težava je količina podatkov, ki se pošlje za vsak pritisk gumba, običajni daljinski upravljalniki s pošiljanjem bodisi 24 bitov bodisi 48 bitov, toda daljinski upravljalnik lahko pošlje do 228 bitov, saj vsak signal vsebuje veliko informacij, kot so temperatura, hitrost ventilatorja, Čas spanja, slog gugalnice itd. To je razlog, zakaj potrebujemo Arduino Mega za boljše možnosti shranjevanja.
Shema vezja in razlaga:
Na srečo je strojna nastavitev tega projekta samodejnega nadzora temperature AC zelo enostavna. Lahko preprosto uporabite ploščo in vzpostavite povezave, kot je prikazano spodaj.
Naslednjo tabelo lahko uporabite tudi za preverjanje povezav.
S. Št: |
Komponentni pin |
Arduino Pin |
1. |
OLED - Vcc |
5V |
2. |
OLED - Gnd |
Gnd |
3. |
OLED- SCK, D0, SCL, CLK |
4. |
4. |
OLED- SDA, D1, MOSI, Podatki |
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 - signal |
13. |
11. |
TSOP - Vcc |
5V |
12. |
TSOP - Gnd |
Gnd |
13. |
IR Led - anoda |
9. |
14. |
IR Led - katoda |
Gnd |
Ko končate povezave, bi moralo izgledati približno tako, kot je prikazano spodaj. Za pospravljanje stvari sem uporabil Breadboard, lahko pa tudi žice za moške in ženske, da priklopite vse komponente
Dekodiranje oddaljenih signalov AC:
Prvi korak za nadzor AC je uporaba TSOP1738 za dekodiranje IR kod daljinskega upravljalnika AC. Naredite vse povezave, kot je prikazano na vezju, in preverite, ali ste namestili vse omenjene knjižnice. Zdaj odprite primer programa “ IRrecvDumpV2 ”, ki ga najdete v Datoteka -> Primeri -> IRremote -> IRrecvDumpV2 . Naložite program na svoj Arduino Mega in odprite serijski monitor.
Usmerite daljinski upravljalnik proti TSOP in pritisnite kateri koli gumb, za vsak gumb, ki ga pritisnete, bo TSOP1738 prebral signal, dekodiral Arduino in prikazal na serijskem monitorju. Za vsako spremembo temperature na daljinskem upravljalniku boste dobili druge podatke. Shranite te podatke, ker jih bomo uporabljali v našem glavnem programu. Vaš serijski monitor bo videti približno tako, pokazal sem tudi datoteko Word, v katero sem shranil kopirane podatke.
Posnetek zaslona prikazuje kodo za nastavitev temperature na 26 ° C za moj daljinski upravljalnik. Na podlagi vašega daljinskega upravljalnika boste dobili drugačen nabor kod. Podobno kopirajte kode za vse različne temperature. Vse IR kode daljinskega upravljalnika klimatske naprave lahko preverite v kodi Arduino, ki je navedena na koncu te vadnice.
Glavni program Arduino:
Celoten Glavni Arduino programa lahko najdete na dnu te strani, vendar ne morete uporabljati isti program. Spremeniti morate vrednosti signalne kode, ki smo jih pravkar dobili na zgornji skici primera. Odprite glavni program na vašem Arduino IDE in se pomaknite navzdol do spodnjega območja, kjer morate vrednosti matrike zamenjati z vrednostmi, ki ste jih dobili za svoj daljinski upravljalnik.
Upoštevajte, da sem uporabil 10 nizov, od katerih sta dva vklopila in izklopila izmenični tok, preostalih 8 pa za nastavitev drugačne temperature. Temp23 se na primer uporablja za nastavitev 23 ° C na vašem AC, zato uporabite ustrezno kodo v tem polju. Ko to storite, morate samo naložiti kodo na svoj Arduino in jo postaviti nasproti sebi in uživati v Cool Breeze.
Pojasnilo kode se glasi na naslednji način, najprej moramo uporabiti temperaturni senzor DHT1 za odčitavanje temperature in vlažnosti ter prikaz na OLED. To naredi naslednja koda.
DHT.read11 (DHT11_PIN); // Preberite temp in Humidity Measured_temp = DHT.temperature + temp_error; Izmerjena_Humi = DHT.vlažnost; // test besedila prikaže display.setTextSize (1); display.setTextColor (BELA); display.setCursor (0,0); display.print ("Temperatura:"); display.print (Izmerjena_temp); display.println ("C"); display.setCursor (0,10); display.print ("Vlažnost:"); display.print (Measured_Humi); display.println ("%");
Ko poznamo temperaturo prostora, jo le primerjamo z želeno vrednostjo. Ta želena vrednost je konstantna vrednost, ki je v mojem programu nastavljena na 27 ° C (stopinja Celzija). Tako bomo na podlagi te primerjave nastavili ustrezno temperaturo izmeničnega toka, kot je prikazano spodaj
if (Measured_temp == Desired_temperature + 3) // Če je AC vklopljen in je izmerjena temperatura zelo visoka od želene {irsend.sendRaw (Temp24, sizeof (Temp24) / sizeof (Temp24), khz); delay (2000); // Pošlji signal za nastavitev 24 * C AC_Temp = 24; }
Tu bo AC nastavljen na 24 ° C, ko bo izmerjena temperatura 30 ° C (ker je želena temperatura 27). Podobno lahko ustvarimo veliko zank If, da nastavimo različno raven temperatur glede na izmerjeno temperaturo, kot je prikazano spodaj.
if (Measured_temp == Desired_temperature-1) // Če je AC vklopljen in je izmerjena temp nizka od želene vrednosti {irsend.sendRaw (Temp28, sizeof (Temp28) / sizeof (Temp28), khz); delay (2000); // Pošlji signal za nastavitev 28 * C AC_Temp = 28; } if (Measured_temp == Desired_temperature-2) // Če je AC vklopljen in je izmerjena temp zelo nizka od želene vrednosti {irsend.sendRaw (Temp29, sizeof (Temp29) / sizeof (Temp29), khz); delay (2000); // Pošlji signal za nastavitev 29 * C AC_Temp = 29; } if (Measured_temp == Desired_temperature-3) // Če je AC vklopljen in je izmerjena temp zelo zelo nizka želena vrednost {irsend.sendRaw (Temp30, sizeof (Temp30) / sizeof (Temp30), khz); delay (2000); // Pošlji signal za nastavitev 30 * C AC_Temp = 30; }
Delovanje samodejnega sistema za nadzor temperature AC:
Ko je vaša koda in strojna oprema pripravljena, jo naložite na ploščo in opazili boste, da OLED prikazuje nekaj podobnega temu.
Zdaj postavite vezje nasproti vaše klimatske naprave in opazite, da se temperatura AC spreminja glede na sobno temperaturo. Poskusite zvišati temperaturo v bližini senzorja DHT11, da preverite, ali je temperatura AC nadzorovana, kot je prikazano v spodnjem videu.
Program lahko prilagodite tako, da izvede katero koli želeno dejanje; vse, kar potrebujete, je koda, ki ste jo dobili na primeru skice. Upam, da ste razumeli ta projekt samodejnega regulatorja temperature in uživali v izdelavi nekaj zelo podobnega. Vem, da je tu veliko krajev, ki se lahko zataknejo, toda potem ne skrbite. Preprosto uporabite forum ali komentar, da razložite svojo težavo, in ljudje tukaj vam bodo zagotovo pomagali, da jo rešite.