Hardware | Programování | Pojďme programovat elektroniku

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

Víte, co je na sériové lince nejlepší? Její univerzálnost. Když teď od Arduina odpojím Bluetooth vysílač HC-05 a místo něj připojím HC-12, vlastně nebudu muset vůbec zasahovat do kódu, protože v obou případech se jedná o destičky komunikující skrze UART.

Tím ale veškerá podobnost končí, HC-12 je totiž výkonný 433MHz obousměrný vysílač/přijímač (manuál v angličtině). Takže sice používá stejný kmitočet jako laciný obvod z druhé kapitoly, ale s mnohem vyšší přenosovou kvalitou a možnostmi pro vývojáře.

571810091 47189074
V případě HC-12 je to pořekadlo o malém kašpárkovi a velkém divadle docela příhodné

HC-12 lze skrze sériovou linku také řádně konfigurovat (i pomocí utility pro Windows), takže můžete zvolit jeden z mnoha dostupných komunikačních kanálů, pohrát si se zmíněným vysílacím výkonem a zvolit jeden z komunikačních profilů. K dispozici je jak úsporný, který si během čekání na příjem dat řekne jen o pár mikroampérů, tak dálkový, který s dobrou anténou, minimálním rušením a při přímé viditelnosti přenese data i na vzdálenost mezi 1 až 2 kilometry!

893449424
HC-12 a jeho konfigurační utilita pro Windows. Stačí destičku pomocí UART-USB převodníku připojit k PC a nastavit v tomto přehledném prostředí jeden z pracovních režimů FU (FU1 až dálkový FU4), pracovní kanál a také vysílací výkon (až 100 mW)

Vysílačka, kterou nebude mít ČTÚ rád

Abyste to však dotáhli vysoko přes kilometr, budete muset nastavit nejvyšší vysílací výkon 100 mW. A to se nemá…

722532037 143736958
Markantní snížení přenosové rychlosti v dálkovém režimu „1.8 km“ a výběr vysílacího výkonu

Když se začtete do všeobecného oprávnění č. VO-R/10/05.2014-3 k provozování zařízení krátkého dosahu (PDF), zjistíte, že v pásmu 433 MHz můžete použít nejvýše 10mW vysílací výkon. Pro vyšší energie tu je pásmo 869 MHz (až 500 mW).

176665280
Norma ČSÚ jasně stanoví provoz rádiových vysílačů na různých kmitočtech

Dlouhodobé dálkové výkonné vysílání s HC-12 je tedy na hraně a v krajním případě by z toho mohly být i nepříjemnosti. Pokud však použijete rádiový signál jen k rychlému odeslání drobných dat jednou za čas, měřící vůz ČTÚ vám okolo domu asi jezdit nebude.

Jdeme měřit dosah s telefonem v kapse

S HC-12 lze experimentovat stejně jako s HC-05 pomocí mobilního telefonu. Stačí v kapse nosit Android a použít UART-USB převodník. Na jedné straně připojíte HC-12 k napájení, RX a TX a na druhé straně vše připojíte s redukcí na microUSB port telefonu. Poté stačí z Play Storu opět nainstalovat některý z mnoha terminálů, který se tentokrát postará o emulaci sériové linky skrze USB. Bezchybně funguje třeba UsbTerminal.

810515735
HC-12 připojený pomocí UART-USB převodníku CP2102 a redukce na microUSB k telefonu s Androidem, na kterém běží UsbTerminal

Telefon se rázem promění ve vysílačku na kmitočtu 433 MHz a můžete s ním vyrazit do terénu a zkoumat, jak daleko se dostanete, dokud přestanete přijímat periodické zprávy od Arduina kdesi u vás doma na parapetu.

Takže zatímco Arduino s připojeným HC-12 leželo v práci na stole, já vyrazil směrem k blízkému výčepu Na stojáka. Dokud jsem přímo viděl na budovu redakce, získával jsem zprávy. V zákrytu už nikoliv.

889435784 536269189
HC-12 připojený k telefonu a přijímající zprávy

HC-12 koupíte s jednoduchou stočenou anténou, kterou musíte připájet na desku, nicméně na desce zbylo místo i na maličký konektor IPX, který znáte třeba z Wi-Fi/BT modulů uvnitř laptopů. Na IPX pak lze pomocí redukce připojit třeba adekvátní SMA anténu.

Ještě kód

Nakonec ještě ukázka jednoduchého kódu. Abych jej oproti HC-05 trochu obměnil, použil jsem tentokrát knihovnu SoftwareSerial a udělal piny RX a TX z digitálních 8 a 9. Jak vidno, princip použití ale zůstává i nadále naprosto identický.

#include <SoftwareSerial.h>

// Softwarovy RX a TX na digitalnich pinech 8 a 9
SoftwareSerial HC12(8, 9);

String msg;
int counter = 1;

void setup() {
  HC12.begin(9600);
}

void loop(){
  // Kazdych pet sekund posli zpravu
  msg = "PING " + String(counter) + ": Ahoj, tady Arduino u PC";
  HC12.println(msg);    
  counter++;
  delay(5000);
}

Hrátky s Arduinem jsou docela levné

Dnes jsme si tedy ukázali základy IR a RF komunikace. Zatímco ty nejlevnější moduly z prvních dvou kapitol pořídíte za pár desítek korun, HC-05 a HC-12 už budou dražší, stále se však jedná o levný hardware.

Kolegové si ze mě utahují, že jsem již na eBay a v českých e-shopech utratil jednu celou výplatu, a když se podívám na svou bednu plnou součástek i sofistikovaných obvodů, mám ten pocit také. Ve skutečnosti se však průměrná cena mých objednávek na eBay pohybuje okolo ceny několika dobře natočených piv. HC-12 není výjimkou. Modul pro sériovou rádiovou komunikaci koupíte na zahraničních e-shopech za cenu lehce přes stokorunu.

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , , ,