- Szükséges anyagok:
- Munka módszertan:
- Előfeltételek:
- AC távirányító működése:
- Áramkör és magyarázat:
- Az AC távirányító dekódolása:
- Fő Arduino program:
- Az automatikus váltóáramú hőmérséklet-szabályozó rendszer működése:
AC (légkondicionáló), amelyet egykor luxuscikknek számítottak, és csak nagy szállodákban, moziteremekben, éttermekben stb. Volt megtalálható… De most szinte mindenkinek van otthonában egy váltóáramú nyár, a tél és azok, akiknek van, aggódjanak egy közös dolog miatt. Ez a magas villamosenergia-fogyasztás és a miatti töltők. Ebben a projektben egy kis automatikus hőmérséklet-szabályozó áramkört készítünk, amely minimalizálhatja az elektromos töltőket azáltal, hogy az AC hőmérsékletet automatikusan megváltoztatja a helyiség hőmérsékletének függvényében. A beállított hőmérséklet időszakos változtatásával elkerülhetjük, hogy az AC hosszabb ideig alacsonyabb hőmérsékleti értékek mellett működjön, és így kevesebb energiát használjon fel.
Legtöbben olyan helyzetben élnénk át, hogy a légkondicionáló által beállított hőmérsékletet a nap különböző szakaszaiban különböző értékekre kell változtatnunk, hogy végig kényelmesek legyünk. A folyamat automatizálásához ez a projekt egy hőmérséklet-érzékelőt (DHT11) használ, amely leolvassa a helyiség jelenlegi hőmérsékletét, és ezen érték alapján parancsokat küld az AC-nek egy, az AC távirányítójához hasonló infravörös robbantón keresztül. Az AC úgy reagál ezekre a parancsokra, mintha a távvezérlőjére reagálna, és ezzel beállítja a hőmérsékletet. Amint szobája hőmérséklete változik, az Arduino beállítja a váltóáram beállított hőmérsékletét is, hogy a kívánt hőmérsékleten tartsa a hőmérsékletet. Jól hangzik, igaz?… Lássuk, hogyan építsünk egyet.
Szükséges anyagok:
- Arduino Mega 2560
- TSOP1738 (HS0038)
- IR Led
- DHT11 hőmérséklet / páratartalom érzékelő
- Bármilyen színes LED és 1K ellenállás (opcionális)
- Kenyérlemez
- Vezetékek csatlakoztatása
Munka módszertan:
Az otthoni összes távirányító, amelyet a tévé, a házimozi, az AC stb. Vezérléséhez használunk, az IR Blasters segítségével működik. Az IR robbantó nem más, mint egy IR LED, amely ismétlődő impulzusokkal képes robbantani egy jelet; ezt a jelet az elektronikai készülék vevője olvassa fel. A távvezérlő minden egyes gombjára egyedi jel fog robbantani, amelyet a vevő olvasása után egy előre meghatározott feladat végrehajtására használnak. Ha képesek vagyunk leolvasni ezt a távirányítóból érkező jelet, akkor utánozhatjuk ugyanazt a jelet egy IR LED segítségével, amikor csak szükséges az adott feladat elvégzéséhez. Korábban készítettünk IR Blaster áramkört az Universal IR Remote számára.
A TSOP egy IR vevő, amely felhasználható a távirányítókról érkező jel dekódolására. Ezt a vevőt összekapcsolják az Arduino-val az egyes gombok jelzésére, majd egy IR Led-et használnak az Arduino-val, hogy utánozzák a jelet, amikor csak szükséges. Így megszerezhetjük az irányítást az AC felett az Arduino segítségével.
Most már csak annyi van hátra, hogy a DHT11 segítségével leolvassuk a hőmérséklet értéket, és ennek megfelelően utasítsuk az AC-t az IR jelek segítségével. Annak érdekében, hogy a projekt vonzóbbá és felhasználóbarátabbá váljon, felvettem egy OLED kijelzőt is, amely megjeleníti az aktuális hőmérsékletet, páratartalmat és váltóáram beállított hőmérsékletet. Tudjon meg többet az OLED és az Arduino együttes használatáról.
Előfeltételek:
Ez az automatikus váltóáramú hőmérséklet-szabályozó projekt kissé előrehaladott a kezdők számára, azonban néhány más oktatóanyag segítségével bárki idővel felépítheti ezt. Tehát, ha abszolút újonc az OLED, a DHT11 vagy a TSOP számára, akkor kérjük, térjen vissza az alábbi oktatóanyagokhoz, ahol megtanulhatja az alapokat és a kezdő lépéseket. A lista kissé hosszúnak tűnhet, de hidd el, hogy könnyű és érdemes megtanulni, valamint számos új projekt előtt nyit meg kaput.
- Alap áramkör TSOP és IR LED használatával a működésük alatt
- Alapvető interfész útmutató a DHT11 és az Arduino számára
- Alap interfész útmutató az OLED és az Arduino számára
- A TSOP összekapcsolása az Arduinóval az IR távoli értékek olvasásához
Győződjön meg róla, hogy rendelkezik Arduino Mega-val és az Arduino bármely más verziójával, mivel a kódméret nehéz. Ellenőrizze azt is, hogy telepítette-e már a következő Arduino könyvtárakat, ha nem telepíti őket, képezze az alábbi linket
- IR távoli könyvtár TSOP és IR Blaster számára
- Adafruit könyvtár az OLED számára
- GFX grafikus könyvtár az OLED számára
- DHT11 érzékelő könyvtár a hőmérséklet érzékelőhöz
AC távirányító működése:
Mielőtt belekezdenénk a projektbe, szánjon egy kis időt, és vegye észre, hogyan működik az AC távirányítója. Az AC távirányítók kicsit másképp működnek, mint a TV, DVD IR távirányítók. Lehet, hogy csak 10-12 gomb van a távirányítón, de sokféle jelet képesek küldeni. Ez azt jelenti, hogy a távvezérlő nem mindig ugyanazt a kódot küldi ugyanarra a gombra. Például, ha a lefelé gombbal csökkenti a hőmérsékletet, hogy 24 ° C (Celsius fok) legyen, akkor jelet kap egy adatsorral, de ha újra megnyomja a 25 ° C beállításához, akkor nem kapja meg ugyanazt. adatok, mivel a hőmérséklet most 25 és nem 24. Hasonlóképpen a 25-ös kód is változik a ventilátor különféle sebessége, alvási beállításai stb. függvényében. Tehát ne babráljunk az összes lehetőséggel, és csak a hőmérsékleti értékeket koncentráljuk állandó értékkel más beállításokhoz.
Egy másik probléma az egyes gombnyomásokra küldött adatok mennyisége, normál távirányítók 24 vagy 48 bit küldésével, de az AC távirányító akár 228 bitet is küldhet, mivel mindegyik jel sok információt tartalmaz, például Temp, Fan Speed, Alvás időzítése, Swing stílus stb. Ezért van szükségünk Arduino Mega-ra a jobb tárolási lehetőségek érdekében.
Áramkör és magyarázat:
Szerencsére ennek az automatikus váltóáramú hőmérséklet-szabályozási projektnek a hardverbeállítása nagyon egyszerű. Egyszerűen használhat kenyérlapot, és az alábbiak szerint csatlakoztathatja a csatlakozásokat.
A következő táblázat a kapcsolatok ellenőrzésére is használható.
S. Nem: |
Alkatrészcsap |
Arduino Pin |
1 |
OLED - Vcc |
5V |
2 |
OLED - Gnd |
Gnd |
3 |
OLED- SCK, D0, SCL, CLK |
4 |
4 |
OLED- SDA, D1, MOSI, adatok |
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 - Jel |
13. |
11. |
TSOP - Vcc |
5V |
12. |
TSOP - Gnd |
Gnd |
13. |
IR Led - Anód |
9. |
14 |
IR Led - katód |
Gnd |
Miután a kapcsolatok elkészültek, az alábbiak szerint kell kinéznie. Kenyérlemezt használtam a dolgok rendbetételéhez, de Ön is csatlakozhat a hímtől a nőig vezetékekhöz az összes alkatrész csatlakoztatásához
Az AC távirányító dekódolása:
Az AC vezérlésének első lépése a TSOP1738 használata az AC távirányító IR kódok dekódolásához. Hajtsa végre az összes csatlakozást a kapcsolási rajz szerint, és győződjön meg arról, hogy telepítette az összes említett könyvtárat. Most nyissa meg az „ IRrecvDumpV2 ” példaprogramot, amely a File -> Példák -> IRremote -> IRrecvDumpV2 menüpontban található . Töltse fel a programot Arduino Mega készülékére, és nyissa meg a soros monitort.
Irányítsa a távvezérlőt a TSOP felé, és nyomja meg bármelyik gombot, minden egyes gomb megnyomásakor a megfelelő jelét a TSOP1738 beolvassa, az Arduino dekódolja és megjeleníti a soros monitoron. A távvezérlő hőmérsékletének minden változásához más adatokat kap. Mentse el ezeket az adatokat, mert a fő programunkban használni fogjuk. A soros monitorod valami ilyennek fog kinézni, megmutattam azt a Word fájlt is, amelyre a másolt adatokat elmentettem.
A Képernyőkép mutatja a hőmérsékletet 26 ° C-ra beállító kódot az AC távirányítómhoz. A távirányítója alapján más kódkészletet kap. Hasonlóképpen másolja a kódokat az összes különböző hőmérsékleti szinthez. Az oktatóanyag végén található Arduino kódban ellenőrizheti az összes légkondicionáló távirányító infravörös kódját.
Fő Arduino program:
Az Arduino teljes főprogramja az oldal alján található, de nem használhatja ugyanazt a programot. Meg kell változtatnia a fenti kódvázlatból kapott jelkód értékeket. Nyissa meg az Arduino IDE főprogramját, és görgessen lefelé az alább látható területre, ahol a tömb értékeit le kell cserélnie a távvezérlőhöz kapott értékekre.
Ne feledje, hogy 10 tömböt használtam, amelyek közül kettő a váltóáram be- és kikapcsolására szolgál, míg a többi 8 különböző hőmérséklet beállítására szolgál. Például a Temp23 segítségével 23 ° C-ot állíthat be az AC-n, ezért használja az adott tömb megfelelő kódját. Miután ez megtörtént, csak fel kell töltenie a kódot az Arduino készülékére, és az AC-vel szemben kell elhelyeznie, és élveznie kell a Cool Breeze-t.
A kód magyarázata a következő: először a DHT1 hőmérséklet-érzékelőt kell használnunk a hőmérséklet és páratartalom leolvasására és az OLED-en való megjelenítésére. Ezt a következő kód végzi.
DHT.read11 (DHT11_PIN); // Olvassa el a Hőmérséklet és páratartalom mért_hőmérséklet = DHT.hőmérséklet + temp_hiba; Mért_Humi = DHT.nedvesség; // szöveges kijelző teszteli a display.setTextSize (1); display.setTextColor (FEHÉR); display.setCursor (0,0); display.print ("Hőmérséklet:"); display.print (Measured_temp); display.println ("C"); display.setCursor (0,10); display.print ("Páratartalom:"); display.print (Measured_Humi); display.println ("%");
Miután megtudtuk a szoba hőmérsékletét, csak össze kell hasonlítanunk a kívánt értékkel. Ez a kívánt érték egy állandó érték, amelyet a programomban 27 ° C-nak (Celsius fok) állítunk be. Tehát ezen összehasonlítás alapján beállítunk egy megfelelő AC hőmérsékletet az alábbiak szerint
if (Mért_hő == Kívánt hőmérséklet + 3) // Ha az AC be van kapcsolva és a mért hőmérséklet a kívántnál nagyon magas {irsend.sendRaw (Temp24, sizeof (Temp24) / sizeof (Temp24), khz); késleltetés (2000); // Jel küldése a 24 * C beállításhoz AC_Temp = 24; }
Itt az AC 24 ° C-ra áll, amikor a mért hőmérséklet 30 ° C (mivel a kívánt hőmérséklet 27). Hasonlóképpen sok If hurkot hozhatunk létre a hőmérséklet különböző szintjének beállításához a mért hőmérséklet alapján, az alábbiak szerint.
if (Mért_hő == kívánt hőmérséklet-1) // Ha az AC be van kapcsolva és a mért hőmérséklet alacsonyabb, mint a kívánt érték {irsend.sendRaw (Temp28, sizeof (Temp28) / sizeof (Temp28), khz); delay (2000); // Jel küldése a 28 * C AC_Temp = 28 beállításához; } if (Mért_hő == Kívánt_hőmérséklet-2) // Ha az AC be van kapcsolva és a mért hőmérséklet nagyon alacsony a kívánt értéknél {irsend.sendRaw (Temp29, sizeof (Temp29) / sizeof (Temp29), khz); késleltetés (2000); // Jel küldése a 29 * C AC_Temp = 29 beállításához; } if (Mért_hő == Kívánt_hőmérséklet-3) // Ha az AC be van kapcsolva és a mért hőmérséklet nagyon alacsony a kívánt érték {irsend.sendRaw (Temp30, sizeof (Temp30) / sizeof (Temp30), khz); késleltetés (2000); // Jel küldése a 30 * C beállításhoz AC_Temp = 30; }
Az automatikus váltóáramú hőmérséklet-szabályozó rendszer működése:
Amikor a kód és a hardver készen áll, töltse fel a kódot a táblára, és észre kell vennie, hogy az OLED ehhez hasonlót jelenít meg.
Most helyezze el az áramkört a légkondicionálójával szemben, és észreveszi, hogy az AC hőmérséklete a szoba hőmérséklete alapján szabályozható. Megpróbálhatja növelni a hőmérsékletet a DHT11 érzékelő közelében, hogy ellenőrizze, hogy a váltóáram hőmérsékletét szabályozzák-e az alábbi videó szerint.
Megcsípheti a programot bármely kívánt művelet végrehajtásához; amire szüksége van, az a kód, amelyet a vázlatból kapott. Remélem, megértette ezt az automatikus hőmérséklet-szabályozó projektet, és élvezett valami hasonlót. Tudom, hogy sok helyen akad itt elakadás, de akkor ne aggódj. Csak a fórum vagy a megjegyzés részben magyarázza el a problémáját, és az itt tartózkodó emberek biztosan segítenek abban, hogy megoldja.