- Potrebné materiály:
- Pracovná metodika:
- Predpoklady:
- Fungovanie diaľkového ovládača AC:
- Schéma zapojenia a vysvetlenie:
- Dekódovanie vašich diaľkových signálov AC:
- Hlavný program Arduino:
- Fungovanie automatického systému regulácie teploty striedavého prúdu:
Klimatizácia (AC), ktorá sa kedysi považovala za luxusný tovar, a ktorá sa nachádzala iba vo veľkých hoteloch, filmových sálach, reštauráciách atď. Ale teraz má takmer každý doma AC, aby porazil leto / zima a tí, ktorí ju majú, trápia sa kvôli jednej spoločnej veci. To je ich vysoká spotreba elektriny a kvôli nej nabíjačky. V tomto projekte urobíme malý obvod automatickej regulácie teploty, ktorý by mohol minimalizovať nabíjačky elektrickej energie automatickou zmenou teploty striedavého prúdu na základe teploty v miestnosti. Pravidelným striedaním nastavenej teploty sa môžeme vyhnúť tomu, aby striedavý prúd dlho pracoval s nižšími teplotnými hodnotami, a teda aby nespotrebovával menej energie.
Väčšina z nás by zažila situáciu, keď musíme zmeniť nastavenú teplotu klimatizácie na rôzne hodnoty v rôznych denných časoch, aby sme boli počas celej doby pohodlní. Na automatizáciu tohto procesu tento projekt používa teplotný senzor (DHT11), ktorý sníma aktuálnu teplotu miestnosti a na základe tejto hodnoty bude posielať príkazy do AC cez IR blaster podobný diaľkovému ovládaču. AC bude na tieto príkazy reagovať, akoby reagoval na svoje diaľkové ovládanie, a tým upraví teplotu. Keď sa teplota v miestnosti zmení, Arduino tiež upraví nastavenú teplotu vášho AC tak, aby udržiavala vašu teplotu presne tak, ako chcete. Znie to dobre, že?… Pozrime sa, ako si ho postaviť.
Potrebné materiály:
- Arduino Mega 2560
- TSOP1738 (HS0038)
- IR Led
- Senzor teploty a vlhkosti DHT11
- Ľubovoľná farebná LED a rezistor 1K (voliteľné)
- Nepál
- Pripojenie drôtov
Pracovná metodika:
Všetky diaľkové ovládače v našej domácnosti, ktoré používame na ovládanie televízie, domáceho kina, napájania atď., Pracujú pomocou IR Blasterov. Programovacie IR nie je nič iné ako IR LED, ktoré by mohli s emitormi signál opakovanými pulzovanie; tento signál bude načítaný prijímačom v elektronickom prístroji. Pre každé odlišné tlačidlo na diaľkovom ovládači bude vydaný jedinečný signál, ktorý sa po prečítaní prijímačom použije na vykonanie konkrétnej vopred definovanej úlohy. Ak dokážeme prečítať tento signál vychádzajúci z diaľkového ovládača, môžeme rovnaký signál napodobniť pomocou IR LED, kedykoľvek je to potrebné na vykonanie konkrétnej úlohy. Predtým sme pre univerzálne IR diaľkové ovládanie vyrobili obvod IR Blaster.
TSOP je IR prijímač, ktorý by mohol byť použitý pre dekódovanie signálu prichádzajúceho z diaľkových ovládačov. Tento prijímač bude prepojený s Arduino na signalizáciu pre každé tlačidlo a potom sa s Arduino použije IR Led na napodobnenie signálu, kedykoľvek to bude potrebné. Týmto spôsobom môžeme získať kontrolu nad našim striedavým prúdom pomocou Arduina.
Teraz už zostáva iba načítať hodnotu teploty pomocou DHT11 a podľa toho inštruovať AC pomocou infračervených signálov. Aby bol projekt atraktívnejší a užívateľsky prívetivejší, pridal som tiež OLED displej, ktorý zobrazuje aktuálnu teplotu, vlhkosť a nastavenú teplotu AC. Získajte viac informácií o používaní OLED s Arduino.
Predpoklady:
Tento projekt automatického AC regulátora teploty je mierne pokročilý pre začiatočníkov, ale s pomocou niekoľkých ďalších návodov ho môže ktokoľvek zostaviť s otázkou času. Takže ak ste v OLED, DHT11 alebo TSOP úplným nováčikom, potom sa prosím vráťte k týmto tutoriálom nižšie, kde sa dozviete základné informácie a ako s nimi začať. Zoznam sa môže zdať trochu dlhý, ale verte mi, že je to ľahké a stojí za to sa ho naučiť, tiež vám to otvorí dvere k mnohým novým projektom.
- Základný obvod využívajúci TSOP a IR LED na fungovanie
- Základný sprievodca rozhraním pre DHT11 s Arduino
- Základný sprievodca rozhraním pre OLED s Arduinom
- Prepojenie TSOP s Arduino na čítanie IR vzdialených hodnôt
Uistite sa, že máte Arduino Mega a akúkoľvek inú verziu Arduina, pretože veľkosť kódu je veľká. Skontrolujte tiež, či ste už nainštalovali nasledujúce knižnice Arduino, pokiaľ ich nenainštalujete z nasledujúceho odkazu
- IR vzdialená knižnica pre TSOP a IR Blaster
- Knižnica Adafruit pre OLED
- Grafická knižnica GFX pre OLED
- Knižnica snímačov DHT11 pre teplotný snímač
Fungovanie diaľkového ovládača AC:
Predtým, ako pristúpime k projektu, chvíľu trvať a všimnite si, ako funguje vaše diaľkové ovládanie. Diaľkové ovládače AC fungujú trochu inak v porovnaní s diaľkovými ovládačmi TV, DVD IR. Na vašom diaľkovom ovládači môže byť iba 10 - 12 tlačidiel, ktoré však budú schopné vysielať rôzne typy signálov. To znamená, že diaľkový ovládač neposiela zakaždým rovnaký kód pre to isté tlačidlo. Napríklad keď znížite teplotu pomocou tlačidla dole na 24 ° C (stupeň Celzia), dostanete signál so súborom údajov, ale po opätovnom stlačení na 25 ° C nebudete mať rovnaký údaje, pretože teplota je teraz 25 a nie 24. Podobne sa kód pre 25 bude líšiť aj pre rôzne otáčky ventilátora, nastavenia režimu spánku atď. Takže sa nehádajme so všetkými možnosťami a sústreďujme iba hodnoty teploty so stálou hodnotou pre ďalšie nastavenia.
Ďalším problémom je množstvo dát, ktoré sa posielajú pri každom stlačení tlačidla, normálne diaľkové ovládače s odoslaním buď 24 bitov alebo 48 bitov, ale diaľkový ovládač AC môže vysielať až 228 bitov, pretože každý signál obsahuje veľa informácií, ako sú Temp, Fan Speed, Načasovanie spánku, štýl hojdania atď. To je dôvod, prečo potrebujeme Arduino Mega pre lepšie možnosti ukladania.
Schéma zapojenia a vysvetlenie:
Našťastie je hardvérové nastavenie tohto projektu automatickej regulácie teploty striedavého prúdu veľmi jednoduché. Môžete jednoducho použiť nepájivú dosku a vykonať pripojenie podľa obrázka nižšie.
Nasledujúcu tabuľku možno použiť aj na overenie vašich pripojení.
S.No: |
Pin komponentu |
Pin Arduino |
1 |
OLED - Vcc |
5V |
2 |
OLED - Gnd |
Gnd |
3 |
OLED- SCK, D0, SCL, CLK |
4 |
4 |
OLED-SDA, D1, MOSI, dáta |
3 |
5 |
OLED- RES, RST, RESET |
7 |
6 |
OLED-DC, A0 |
5 |
7 |
OLED-CS, výber čipu |
6 |
8 |
DHT11 - Vcc |
5V |
9 |
DHT11 - Gnd |
Gnd |
10 |
DHT11 - signál |
13 |
11 |
TSOP - Vcc |
5V |
12 |
TSOP - GND |
Gnd |
13 |
IR Led - anóda |
9 |
14 |
IR LED - katóda |
Gnd |
Po dokončení pripojenia by malo vyzerať niečo podobné, ako je uvedené nižšie. Na upratovanie vecí som použil nepájivú dosku, ale môžete tiež priamo zapojiť všetky vodiče medzi mužmi a ženami, aby ste pripojili všetky komponenty
Dekódovanie vašich diaľkových signálov AC:
Prvým krokom k ovládaniu vášho striedavého prúdu je použitie TSOP1738 na dekódovanie IR kódov diaľkového ovládania. Vykonajte všetky pripojenia podľa schémy zapojenia a ubezpečte sa, že máte nainštalované všetky spomínané knižnice. Teraz otvorte ukážkový program „ IRrecvDumpV2 “, ktorý nájdete na Súbor -> Príklady -> IRremote -> IRrecvDumpV2 . Nahrajte program do svojho počítača Arduino Mega a otvorte Serial Monitor.
Namierte diaľkový ovládač na TSOP a stlačte ľubovoľné tlačidlo, pre každé stlačené tlačidlo bude jeho príslušný signál načítaný z TSOP1738, dekódovaný Arduinom a zobrazený na sériovom monitore. Za každú zmenu teploty na diaľkovom ovládaní získate iné údaje. Tieto údaje si uložte, pretože ich budeme používať v našom hlavnom programe. Váš sériový monitor bude vyzerať asi takto, zobrazil som aj súbor Word, do ktorého som uložil skopírované údaje.
Screenshot zobrazuje kód pre nastavenie teploty na 26 ° C pre moje AC diaľkové ovládanie. Na základe vášho diaľkového ovládača získate inú sadu kódov. Podobne skopírujte kódy pre všetky rôzne úrovne teploty. Všetky IR kódy diaľkového ovládania klimatizácie môžete skontrolovať v kóde Arduino uvedenom na konci tohto tutoriálu.
Hlavný program Arduino:
Kompletné Hlavným Arduino programu možno nájsť v dolnej časti tejto stránky, ale nemôžete použiť rovnaký program. Musíte zmeniť hodnoty signálneho kódu, ktoré sme práve získali z náčrtu príkladu vyššie. Otvorte hlavný program na vašom Arduino IDE a posuňte sa nadol do tejto oblasti zobrazenej nižšie, kde musíte nahradiť hodnoty poľa hodnotami, ktoré ste získali pre svoj diaľkový ovládač.
Všimnite si, že som použil 10 polí, z ktorých dva sa používali na ZAPNUTIE a VYPNUTIE striedavého prúdu, zatiaľ čo zvyšok 8 sa používa na nastavenie inej teploty. Napríklad Temp23 sa používa na nastavenie 23 ° C na vašom AC, takže použite príslušný kód v tomto poli. Akonáhle je to hotové, stačí nahrať kód do vášho Arduina a umiestniť ho oproti vám AC a vychutnať si Cool Breeze.
Vysvetlenie kódu je nasledujúce, najskôr musíme pomocou snímača teploty DHT1 načítať teplotu a vlhkosť a zobraziť ich na OLED. To sa deje pomocou nasledujúceho kódu.
DHT.read11 (DHT11_PIN); // Prečítajte si teplotu a vlhkosť Measured_temp = DHT.temperature + temp_error; Measured_Humi = DHT.vlhkosť; // testy textového displeja display.setTextSize (1); display.setTextColor (BIELA); display.setCursor (0,0); display.print ("Teplota:"); display.print (Measured_temp); display.println ("C"); display.setCursor (0,10); display.print ("Vlhkosť:"); display.print (Measured_Humi); display.println ("%");
Keď poznáme teplotu miestnosti, musíme ju porovnať s požadovanou hodnotou. Táto požadovaná hodnota je konštantná hodnota, ktorá je v mojom programe nastavená na 27 ° C (stupeň Celzia). Na základe tohto porovnania teda nastavíme zodpovedajúcu teplotu striedavého prúdu, ako je uvedené nižšie
if (Measured_temp == Desired_temperature + 3) // Ak je AC zapnuté a nameraná teplota je veľmi vysoká, ako je požadované {irsend.sendRaw (Temp24, sizeof (Temp24) / sizeof (Temp24), khz); delay (2000); // Vyšle signál na nastavenie 24 * C AC_Temp = 24; }
Tu sa AC nastaví na 24 ° C, keď je nameraná teplota 30 ° C (pretože požadovaná teplota je 27). Podobne môžeme vytvoriť veľa cyklov If na nastavenie inej úrovne teplôt na základe nameranej teploty, ako je uvedené nižšie.
if (Measured_temp == Desired_temperature-1) // Ak je AC zapnuté a nameraná teplota je nízka ako požadovaná hodnota {irsend.sendRaw (Temp28, sizeof (Temp28) / sizeof (Temp28), khz); delay (2000); // Vyšle signál na nastavenie 28 * C AC_Temp = 28; } if (Measured_temp == Desired_temperature-2) // Ak je AC zapnuté a nameraná teplota je veľmi nízka ako požadovaná hodnota {irsend.sendRaw (Temp29, sizeof (Temp29) / sizeof (Temp29), khz); delay (2000); // Vyšle signál na nastavenie 29 * C AC_Temp = 29; } if (Measured_temp == Desired_temperature-3) // Ak je AC zapnuté a nameraná teplota je veľmi nízka požadovaná hodnota {irsend.sendRaw (Temp30, sizeof (Temp30) / sizeof (Temp30), khz); delay (2000); // Pošle signál na nastavenie 30 * C AC_Temp = 30; }
Fungovanie automatického systému regulácie teploty striedavého prúdu:
Keď je váš kód a hardvér pripravený, nahrajte kód na svoju dosku a mali by ste si všimnúť, že OLED zobrazuje niečo podobné.
Teraz umiestnite obvody oproti svojej klimatizácii a všimnete si, že sa teplota striedavého prúdu reguluje na základe teploty v miestnosti. Môžete skúsiť zvýšiť teplotu v blízkosti snímača DHT11 a skontrolovať, či je teplota striedavého prúdu regulovaná, ako je znázornené na videu nižšie.
Môžete vylepšiť program tak, aby vykonal ľubovoľnú požadovanú akciu; všetko, čo potrebujete, je kód, ktorý ste získali zo vzorového náčrtu. Dúfam, že ste pochopili tento projekt automatického regulátora teploty a užili ste si stavbu niečoho veľmi podobného. Viem, že je tu veľa miest, kde sa môžete zaseknúť, ale potom sa nebojte. Stačí, ak použijete sekciu fóra alebo komentár na vysvetlenie svojho problému a ľudia tu určite pomôžu s jeho vyriešením.