Pojďme programovat elektroniku: Vyzkoušíme IR, ovládneme světýlko přes Bluetooth a vyšleme zprávu na sto metrů

  • Budeme odposlouchávat IR ovladač klimatizace
  • Vyrobíme laciný rádiový vysílač
  • Vyzkoušíme komunikaci pomocí Bluetooth a v pásmu 433 MHz
Infračervený vysílač a přijímač

Už je to měsíc, co jsem naposledy z krabice vytáhl ultrazvukový dálkoměr HC-SR04, infračervený detektor pohybu PIR a jednoduchý detektor dešťových kapek, připojil je k malé prototypovací destičce Arduino a na jednoduchých příkladech ukázal, že ke zprovoznění elektronického prvku chytré domácnosti dnes nepotřebujete titul inženýra, ale jen základní znalost programování, odvahu učit se nové věci a pár korun na účtu, eBay je totiž na podobné experimentování nebezpečně levný.

V mezidobí mi dorazilo několik desítek nových obálek a balíčků s hromadou atraktivních hraček, které si vyzkoušíme v dalších pokračováních našeho seriálu. Pokud jsme doposud pomocí všemožných senzorů měřili hodnoty, dnes se podíváme na několik modulů, které se postarají o to, aby se dostala informace z bodu A do bodu B a to bez kabelu.

Infračervený vysílač a přijímač

Tím nejprimitivnějším komerčně používaným způsobem bezdrátové komunikace je dnes IR – infračervený přenos signálu. Má jej každý televizní ovladač a dokonce i některé telefony. Podobný IR vysílač/přijímač seženete i v každém e-shopu pro bastlíře, přičemž cena se bude pohybovat od několika desetikorun na eBay a jemu podobných po vyšší částku v Česku, která je ale ospravedlnitelná nejen povinnou zárukou, ale často i skladovou dostupností, takže na drobnou součástku nebudete čekat dlouhé týdny.

Klepněte pro větší obrázek
Primitivní infračervený vysílač a přijímač, kterých jsou plné e-shopy pro bastlíře

Infračervený vysílač za dvacetikorunu samozřejmě sám o sobě nic neumí. Je to vlastně jen dioda, která svítí infračerveným světlem, když do ní pošlete signál. A stejně tak přijímač zachytí buď IR světlo a tedy logickou jedničku, anebo nic a tedy logickou nulu. Podobné moduly mají zpravidla tři vodiče: napájení (+), zem (-) a pin samotného digitálního signálu.

Je to primitivní (a proto komplikované)

Infračervený vysílač je tedy po technické stránce naprosto primitivní – jako byste za tmy blikali třeba baterkou a světlo zaznamenávali pomocí fotorezistoru. Pokud nebudete chtít jen blikat, ale přenášet i nějaké informace, samotný přenosový protokol, tedy generátor blikání a jeho detektor, si už musíte napsat svépomocí. A pokud budete chtít pomocí IR ovládat nějaké spotřebiče, bude to ještě mnohem složitější, protože budete potřebovat přesnou dokumentaci signálů, které používají.

Klepněte pro větší obrázek
Infračervený signál pro zapnutí spotřebiče může vypadat třeba takto. Střídají se různě dlouhé impulzy světla (hodnota 1) oddělené drobnou prodlevou (hodnota 0). Čas na ose X je v mikrosekundách.

Zpravidla si proto budete muset zahrát na reverzního inženýra, který pomocí IR přijímače nejprve nahraje signál z dálkového ovládání pro daný úkon, no a pak už jej může zreprodukovat a vyslat stejný sled světelných pulzů do vysílače.

Knihovna IRremote

Podobný problém už naštěstí řešily tisíce bastlířů před námi, takže GitHub je plný knihoven pro Arduino, které se o to postarají za nás. Jedna z těch povedenějších se jmenuje IRremote a má v sobě dokonce předvolby pro některé výrobce – třeba Sony, Samsung a další. Instalaci knihoven pro Arduino jsme si už vysvětlili v předchozím povídání, takže stačí jen otevřít některý z dodaných praktických příkladů.

Já se pomocí IR přijímače a vysílače pokusím zapnout starou a relativně hloupou redakční klimatizaci. Není napojená na žádný centrální termostat, takže je třeba nastavit teplotu na dálkovém ovladači a podle potřeby ji spustit.

Mým cílem pro příští letní sezónu bude mikropočítač, který bude klimatizaci pomocí IR signálu spouštět automaticky tehdy, pokud teplota v kanceláři překoná neúnosnou mez, a také podle časového plánu vždy ráno před příchodem kolegů do práce, aby byla kancelář patřičně vychlazená.

Zapnu klimatizaci pomocí Arduina

Dnes zdolám první překážku. Pokusím se ji zapnout pomocí Arduina a IR vysílače namísto dálkového ovládání.

Klepněte pro větší obrázek
Stropní klimatizaci lze nastavit a spustit jen pomocí dálkového IR ovladače

Knihovna IRremote naši klimatizaci samozřejmě vůbec nezná, takže použiji jeden z jejích příkladů jménem IRrecvDumpV2, který skrze sériovou linku vypíše do PC zachycený signál ve formě pole časů jednotlivých pulzů v mikrosekundách. Příklad zároveň vygeneruje úryvek kódu, který pak budu moci použít pro vysílač.

Po spuštění programu na Arduinu stačí na IR přijímač namířit dálkové ovládání a stisknout požadované tlačítko. V sériovém monitoru se rázem vypíše zachycený signál.

Klepněte pro větší obrázek Klepněte pro větší obrázek
Jakmile jsem klepl na tlačítko dálkového ovládání, rozsvítila se detekční LED dioda na modulu IR přijímače a na počítači se skrze sériovou linku vypsal zaznamenaný infračervený signál vyjádřený délkou jednotlivých pulzů v mikrosekundách. Na posledním řádku mi program vygeneroval kód v C s hodnotami signálu, který mohu zkopírovat a použít naopak pro vysílač.

Pak už stačí přepnout obvod na vysílač a otevřít příklad IRsendRawDemo, který pošle optický signál podle pole časů jednotlivých pulzů, které jsem zachytil v předchozím kroku.

Klepněte pro větší obrázek Klepněte pro větší obrázek
Zaznamenaný signál jsem zkopíroval do příkladu s vysílačem, který je už poměrně jednoduchý. Poté jsem program spustil na Arduinu a namířil vysílač na klimatizaci, která krátce poté pípla a spustila se.

V další kapitole vyzkoušíme nejlevnější modul pro rádiovou komunikaci. Když si nedáte jedno pivo, je váš.

Témata článku: Hardware, Pojďme programovat elektroniku, Programování, Arduino, Android, Mobilní telefon, Bluetooth, Dálkové ovladače, Signál, Serial, Puls, Pulse, Counter, Arduino Uno, Vysílačky

19 komentářů

Nejnovější komentáře

  • Peter Machala 26. 9. 2016 12:30:43
    Díky za tieto články. Práve analyzujem možnosti pre úlohu: "keď sa tento...
  • hamik 22. 9. 2016 9:13:48
    Parada, vyborny clanek kterych uz na Zive v posledni dobe bohuzel moc...
  • I_Love_MySQL 22. 9. 2016 8:45:11
    Dobré.. Ja som vyrastal na Václavovi Malinovi, možno vy pán Čížek budete...
Určitě si přečtěte

11 tipů, jak efektivně a přesně sledovat počasí pomocí internetu

11 tipů, jak efektivně a přesně sledovat počasí pomocí internetu

** Sledujte počasí z více zdrojů a podrobněji, přesněji tak určíte, jaké počasí vás potká na dovolené ** Na webu najdete hromadu pokročilých předpovědí počasí, ale i specializované meteorologické služby ** Vybrali jsme 14 služeb na počasí, které se vám můžou hodit

23.  6.  2017 | Jakub Čížek | 19

Nejlepší program pro střih videa na doma: 9 video editorů, ze kterých si vyberete

Nejlepší program pro střih videa na doma: 9 video editorů, ze kterých si vyberete

** Pokročilé střihové programy pro neprofesionální využití stojí do 3 000 Kč, jsou ale i zdarma ** Podpora 4K, hromada editačních funkcí a efektové filtry jsou samozřejmostí ** Vybrali jsme 9 nejzajímavějších programů pro nejrozšířenější operační systém Windows

25.  6.  2017 | Stanislav Janů | 32

Herní počítač vs. Xbox One X: Kvalita obrazu není všechno

Herní počítač vs. Xbox One X: Kvalita obrazu není všechno

** Nový Xbox One X slibuje hraní ve 4K s HDR za 13 tisíc korun ** Aby stejnou kvalitu obrazu zvládl počítač, museli byste za něj dát minimálně dvakrát tolik ** Přesto herní počítače stále svůj smysl mají

24.  6.  2017 | Tomáš Holčík | 58


Aktuální číslo časopisu Computer

Bojujeme proti Fake News

Dva velké testy: fotoaparáty a NASy

Co musíte vědět o změně evropského roamingu

Radíme s výběrem základní desky