- Potřebné materiály:
- Pracovní metodika:
- Předpoklady:
- Práce s AC dálkovým ovládáním:
- Schéma zapojení a vysvětlení:
- Dekódování vašich AC dálkových signálů:
- Hlavní program Arduino:
- Práce s automatickým systémem regulace teploty střídavého proudu:
AC (klimatizace), která byla kdysi považována za luxusní zboží, a nacházela se pouze ve velkých hotelech, filmových sálech, restauracích atd. Ale teď má téměř každý AC doma, aby porazil léto / zima a ti, kdo ji mají, si dělají starosti s jednou společnou věcí. To je jejich vysoká spotřeba elektřiny a kvůli tomu nabíječky. V tomto projektu uděláme malý automatický obvod řízení teploty, který by mohl minimalizovat nabíječky elektřiny automatickou změnou teploty střídavého proudu na základě teploty v místnosti. Pravidelným střídáním nastavené teploty se můžeme vyhnout tomu, aby střídavý proud dlouho pracoval s nižšími teplotními hodnotami, a tím snižoval spotřebu energie.
Většina z nás by zažila situaci, kdy musíme změnit nastavenou teplotu klimatizační jednotky na různé hodnoty v různých denních dobách, abychom byli po celou dobu v pohodlí. K automatizaci tohoto procesu používá tento projekt teplotní čidlo (DHT11), které čte aktuální teplotu místnosti a na základě této hodnoty bude posílat příkazy do AC přes IR blaster podobný dálkovému ovládání AC. AC bude na tyto povely reagovat, jako by reagoval na svůj dálkový ovladač, a tím upraví teplotu. Jak se teplota v místnosti mění, Arduino také upraví nastavenou teplotu střídavého proudu tak, aby udržovala vaši teplotu přesně tak, jak chcete. Zní to dobře, že?… Podívejme se, jak jeden postavit.
Potřebné materiály:
- Arduino Mega 2560
- TSOP1738 (HS0038)
- IR LED
- Snímač teploty / vlhkosti DHT11
- Libovolná barevná LED a rezistor 1K (volitelně)
- Nepájivá deska
- Připojení vodičů
Pracovní metodika:
Všechna dálková ovládání v naší domácnosti, která používáme k ovládání televize, domácího kina, klimatizace atd., Fungují pomocí IR Blasterů. Programovací IR není nic jiného než IR LED, které by mohly s emitory signál opakovanými pulsování; tento signál bude čten přijímačem v elektronickém zařízení. U každého jiného tlačítka na dálkovém ovladači se odstřelí jedinečný signál, který se po přečtení přijímačem použije k provedení určité předem definované úlohy. Pokud dokážeme přečíst tento signál vycházející z dálkového ovladače, můžeme stejný signál napodobit pomocí IR LED, kdykoli je to nutné k provedení konkrétního úkolu. Dříve jsme pro Universal IR Remote vyrobili obvod IR Blaster.
TSOP je IR přijímač, který by mohl být použit pro dekódování signálu přicházejícího z dálkových ovladačů. Tento přijímač bude propojen s Arduino pro signál pro každé tlačítko a poté bude s Arduino použita IR Led k napodobení signálu, kdykoli bude potřeba. Tímto způsobem můžeme získat kontrolu nad naším střídavým proudem pomocí Arduina.
Nyní zbývá pouze načíst hodnotu teploty pomocí DHT11 a podle toho instruovat AC pomocí IR signálů. Aby byl projekt atraktivnější a uživatelsky přívětivější, přidal jsem také OLED displej, který zobrazuje aktuální teplotu, vlhkost a nastavenou teplotu střídavého proudu. Další informace o používání OLED s Arduinem.
Předpoklady:
Tento projekt automatického střídavého teplotního ovladače je mírně pokročilý pro začátečníky, ale s pomocí několika dalších tutoriálů to může kdokoli postavit s otázkou času. Takže pokud jste absolutním nováčkem v OLED, DHT11 nebo TSOP, pak se laskavě vraťte k těmto tutoriálům níže, kde se můžete naučit základy a jak s nimi začít. Seznam se může zdát trochu dlouhý, ale věřte mi, že je to snadné a stojí za to se ho naučit, také vám to otevře dveře mnoha novým projektům.
- Základní obvod využívající TSOP a IR LED pod jejich provozem
- Základní průvodce rozhraním pro DHT11 s Arduino
- Základní průvodce rozhraním pro OLED s Arduino
- Propojení TSOP s Arduino pro čtení IR vzdálených hodnot
Ujistěte se, že máte Arduino Mega a jakoukoli jinou verzi Arduina, protože velikost kódu je velká. Zkontrolujte také, zda jste již nainstalovali následující knihovny Arduino, pokud je neinstalujete z níže uvedeného odkazu
- IR vzdálená knihovna pro TSOP a IR Blaster
- Knihovna Adafruit pro OLED
- Grafická knihovna GFX pro OLED
- Knihovna senzorů DHT11 pro teplotní senzor
Práce s AC dálkovým ovládáním:
Než přistoupíme k projektu, věnujte trochu času a všimněte si, jak funguje vaše dálkové ovládání AC. Dálkové ovladače AC fungují trochu odlišně ve srovnání s dálkovými ovladači TV, DVD IR. Na vašem dálkovém ovladači může být pouze 10–12 tlačítek, ale budou moci odesílat mnoho různých typů signálů. To znamená, že ovladač neposílá pokaždé stejný kód pro stejné tlačítko. Například když snížíte teplotu pomocí tlačítka dolů na 24 ° C (stupeň Celsia), dostanete signál s množinou dat, ale při dalším stisknutí pro nastavení 25 ° C nebudete mít stejný data, protože teplota je nyní 25 a ne 24. Podobně se kód 25 bude lišit také pro různé otáčky ventilátoru, nastavení spánku atd. Takže se nebudeme pohrávat se všemi možnostmi a soustředíme se pouze na hodnoty teploty s konstantní hodnotou pro další nastavení.
Dalším problémem je množství dat, která se odesílají při každém stisknutí tlačítka, normální ovladače s vysíláním buď 24 bitů nebo 48 bitů, ale dálkový ovladač AC může odeslat až 228 bitů, protože každý signál obsahuje mnoho informací, jako je teplota, rychlost ventilátoru, Načasování spánku, styl Swing atd. To je důvod, proč potřebujeme Arduino Mega pro lepší možnosti ukládání.
Schéma zapojení a vysvětlení:
Naštěstí je hardwarové nastavení tohoto projektu automatické regulace teploty střídavého proudu velmi snadné. Můžete jednoduše použít prkénko a provést připojení, jak je znázorněno níže.
Následující tabulku lze také použít k ověření připojení.
S.No: |
Pin součásti |
Pin Arduino |
1 |
OLED - Vcc |
5V |
2 |
OLED - Gnd |
Gnd |
3 |
OLED- SCK, D0, SCL, CLK |
4 |
4 |
OLED-SDA, D1, MOSI, data |
3 |
5 |
OLED-RES, RST, RESET |
7 |
6 |
OLED-DC, A0 |
5 |
7 |
OLED - CS, výběr č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 - anoda |
9 |
14 |
IR LED - katoda |
Gnd |
Jakmile je připojení hotové, mělo by to vypadat nějak takto níže. K uklizení věcí jsem použil prkénko na prkénko, ale můžete také přímo zapojit vodiče mezi muži a ženami, abyste připojili všechny komponenty
Dekódování vašich AC dálkových signálů:
Prvním krokem k ovládání střídavého proudu je použití TSOP1738 k dekódování IR kódů dálkového ovládání střídavého proudu. Proveďte všechna připojení podle schématu zapojení a ujistěte se, že máte nainstalovány všechny zmíněné knihovny. Nyní otevřete ukázkový program „ IRrecvDumpV2 “, který najdete na Soubor -> Příklady -> IRremote -> IRrecvDumpV2 . Nahrajte program do svého Arduino Mega a otevřete Serial Monitor.
Namiřte dálkový ovladač na TSOP a stiskněte libovolné tlačítko, každé stisknutí příslušného signálu bude TSOP1738 přečteno, dekódováno Arduino a zobrazeno na sériovém monitoru. Za každou změnu teploty na dálkovém ovladači získáte jiná data. Uložte tato data, protože je budeme používat v našem hlavním programu. Váš sériový monitor bude vypadat asi takto, zobrazil jsem také soubor Word, do kterého jsem uložil zkopírovaná data.
Screenshot ukazuje kód pro nastavení teploty na 26 ° C pro mé AC dálkové ovládání. Na základě vašeho dálkového ovladače získáte jinou sadu kódů. Podobně zkopírujte kódy pro všechny různé úrovně teploty. Můžete zkontrolovat všechny IR kódy dálkového ovládání klimatizace v kódu Arduino uvedeném na konci tohoto tutoriálu.
Hlavní program Arduino:
Kompletní Hlavním Arduino programu lze nalézt v dolní části této stránky, ale nemůžete použít stejný program. Musíte změnit hodnoty signálního kódu, které jsme právě získali z náčrtu příkladu výše. Otevřete hlavní program na vašem Arduino IDE a přejděte dolů do této oblasti zobrazené níže, kde musíte nahradit hodnoty pole hodnotami, které jste získali pro svůj ovladač.
Všimněte si, že jsem použil 10 polí, z nichž dvě slouží k zapnutí a vypnutí střídavého proudu, zatímco zbytek 8 se používá k nastavení jiné teploty. Například Temp23 se používá k nastavení 23 ° C na vašem AC, takže použijte příslušný kód v tomto poli. Jakmile to uděláte, stačí nahrát kód do vašeho Arduina a umístit jej naproti vám AC a užít si Cool Breeze.
Vysvětlení kódu probíhá následovně, nejprve musíme použít teplotní senzor DHT1 ke čtení teploty a vlhkosti a zobrazení na OLED. To se provádí pomocí následujícího kódu.
DHT.read11 (DHT11_PIN); // Přečtěte si teplotu a vlhkost Measured_temp = DHT.temperature + temp_error; Measured_Humi = DHT.vlhkost; // testy textového displeje display.setTextSize (1); display.setTextColor (BÍLÁ); display.setCursor (0,0); display.print ("Teplota:"); display.print (Measured_temp); display.println ("C"); display.setCursor (0,10); display.print ("Vlhkost:"); display.print (Measured_Humi); display.println ("%");
Jakmile známe teplotu místnosti, musíme ji porovnat s požadovanou hodnotou. Tato požadovaná hodnota je konstantní hodnota, která je v mém programu nastavena na 27 ° C (stupně Celsia). Na základě tohoto srovnání nastavíme odpovídající teplotu střídavého proudu, jak je uvedeno níže
if (Measured_temp == Desired_temperature + 3) // Pokud je AC zapnuto a měřená teplota je velmi vysoká, než je požadováno {irsend.sendRaw (Temp24, sizeof (Temp24) / sizeof (Temp24), khz); delay (2000); // Odeslání signálu k nastavení 24 * C AC_Temp = 24; }
Zde bude AC nastaveno na 24 ° C, když je naměřená teplota 30 ° C (protože požadovaná teplota je 27). Podobně můžeme vytvořit mnoho smyček If pro nastavení různé úrovně teplot na základě naměřené teploty, jak je uvedeno níže.
if (Measured_temp == Desired_temperature-1) // Pokud je AC zapnuto a měřená teplota je nízká než požadovaná hodnota {irsend.sendRaw (Temp28, sizeof (Temp28) / sizeof (Temp28), khz); delay (2000); // Odeslání signálu k nastavení 28 * C AC_Temp = 28; } if (Measured_temp == Desired_temperature-2) // Pokud je AC zapnuto a měřená teplota je velmi nízká než požadovaná hodnota {irsend.sendRaw (Temp29, sizeof (Temp29) / sizeof (Temp29), khz); delay (2000); // Odeslání signálu k nastavení 29 * C AC_Temp = 29; } if (Measured_temp == Desired_temperature-3) // Pokud je AC zapnuto a měřená teplota je velmi nízká požadovaná hodnota {irsend.sendRaw (Temp30, sizeof (Temp30) / sizeof (Temp30), khz); delay (2000); // Odeslání signálu k nastavení 30 * C AC_Temp = 30; }
Práce s automatickým systémem regulace teploty střídavého proudu:
Až bude váš kód a hardware připraven, nahrajte kód na svou desku a měli byste si všimnout, že OLED zobrazuje něco podobného.
Nyní umístěte obvody naproti vaší klimatizaci a všimnete si, že se teplota střídavého proudu reguluje na základě teploty v místnosti. Můžete zkusit zvýšit teplotu v blízkosti snímače DHT11 a zkontrolovat, zda je teplota střídavého proudu řízena, jak je znázorněno na videu níže.
Program můžete vylepšit a provést libovolnou požadovanou akci; vše, co potřebujete, je kód, který jste získali z ukázkového náčrtu. Doufám, že jste pochopili tento projekt automatického regulátoru teploty a užili jste si stavbu něčeho velmi podobného. Vím, že je tu spousta míst, kde se můžete zaseknout, ale nebojte se. K vysvětlení problému použijte sekci fóra nebo komentář a lidé zde vám určitě pomohou jej vyřešit.