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

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

Zatím jsme si hráli jen s nízkoúrovňovými IR/RF vysílači, to se ale s HC-05 mění. HC-05 je vysílač pro Bluetooth od čínské fabriky HC, který komunikuje pomocí rozhraní UART – tedy skrze sériovou linku. Tu už velmi dobře znáte, doposud jsem ji totiž používal pro výpis informací do připojeného PC skrze USB.

Klepněte pro větší obrázek
Bluetooth vysílač HC-05 připájený na obslužné desce pro snadnější připojení k Arduinu

HC-05 mi k experimentování poskytl Arduino-shop.cz

Mocná sériová linka

Arduino a jeho mikrokontroler Atmel rozhraní UART nativně podporuje, takže pro přenos dat nejsou zapotřebí žádné knihovny a tuny kódu.

Stačí na začátku programu nastartovat sériovou linku třeba na základní rychlost 9600 bps:

Serial.begin(9600);

No a poté do linky poslat třeba textový ASCII řádek:

Serial.println("Nazdar");

Pokud bude Arduino přes USB připojené k PC, zobrazí se v otevřeném terminálu pro sériovou komunikaci text „Nazdar“. A pokud bude přes UART připojené jako v našem případě k Bluetooth modulu HC-05, zpráva „Nazdar“ dorazí na jeho mikročip, ten jej zpracuje a vyšle protokolem Bluetooth do spárovaného zařízení.

Jednoduché jako facka, viďte!

Sériová komunikace je samozřejmě oboustranná, takže pokud druhé zařízení odpoví, HC-05 data opět zpracuje, a bude-li se jednat o textový řetězec, přečtu jej třeba tímto způsobem:

if(Serial.available()){
zprava = Serial.readString();
}

HC-05 má vedle napájecích a konfiguračních pinů dva klíčové UART vodiče: TX pro zápis a RX pro čtení. Ty mohu buď křížově připojit na totožné piny na Arduinu (RX patří do TX a naopak) a začít komunikovat pomocí zmíněných příkazů výše, anebo je připojím na libovolné digitální piny, které proměním v UART softwarovou cestou pomocí standardní knihovny SoftwareSerial.

To je velmi praktické, pokud je totiž Arduino připojené k PC, hardwarový UART je zpravidla obsazený právě tímto spojením. Základní modely Arduina přitom mají zpravidla jen jeden pár dedikovaných pinů pro TX/RX.

Suma sumárum, díky knihovně SoftwareSerial může být k Arduinu připojeno hned několik UART zařízení naráz.

Pojďme ovládat barevná LED světýlka

Dost ale bylo teoretické omáčky. Pojďme si to konečně vyzkoušet v praxi. Připojil jsem k Arduinu HC-05 a také jednu modrou a červenou LED diodu. Na mobilní telefon jsem nainstaloval BT Simple Terminal, který použije BT profil SPP – Serial Port Profile, jenž je v podstatě emulátorem sériové linky.

Klepněte pro větší obrázek
Barevné LED diody s dálkovým ovládáním přes Bluetooth

Jakmile bude Arduino pod napětím, připojený HC-05 se přepne do párovacího módu a na telefonu jej připojíte jako jakékoliv jiné BT zařízení. Ve výchozím stavu se jmenuje HC-05, pomocí sériové linky jej ale můžete libovolně nastavit, takže se může jmenovat jako váš finální produkt, který na něm postavíte.

Klepněte pro větší obrázek Klepněte pro větší obrázek Klepněte pro větší obrázek
Na straně telefonu komunikuji s Arduinem skrze emulátor sériové linky

Po spárování už mohu otevřít samotný mobilní terminál, kde se mi Arduino ohlásí uvítací zprávou s informací, že když napíšu slovo cervena, rozsvítí se červená dioda, no a když modra, rozsvítí se zase modrá.

Klepněte pro větší obrázek Klepněte pro větší obrázek
Je libo červené, nebo modré světýlko sepnuté na dálku pomocí Bluetooth?

Namísto textového BT Simple Terminalu bych si samozřejmě mohl v dalším kroku napsat vlastní mobilní aplikaci a LED diody ovládat pomocí tlačítek. Ti bystří už tuší – právě jsem pomocí Arduina demonstroval, jak funguje ovládání chytrých RGB Bluetooth žárovek. Ta moje je jen o něco jednodušší.

Jednoduchý kód spínače by mohl vypadat třeba takto:

String zprava;
zprava.reserve(20);

void setup(){
  Serial.begin(9600);
  Serial.println("Ahoj, tady Arduino!");
  Serial.println("Napis 'cervena' nebo 'modra' pro aktivaci svetla");
  pinMode(8,OUTPUT); // modra LED
  pinMode(9,OUTPUT); // cervena LED
}

void loop(){
  if(Serial.available()){
    zprava = Serial.readString();
    if(zprava == "cervena"){  
      digitalWrite(8,LOW);
      digitalWrite(9,HIGH);
      Serial.println("Zapinam cervene svetlo!");
    }
    if(zprava == "modra"){
      digitalWrite(8,HIGH);
      digitalWrite(9,LOW);
      Serial.println("Zapinam modre svetlo!");
    }
  }
  delay(100);
}

Tak to bychom měli Bluetooth skrze sériovou linku, mně se ale UART prostě líbí, a tak se na něj podívám i v poslední kapitole. Vrátím se ke kmitočtu 433 MHz, tentokrát ale nepůjde o vysílačku s dosahem několika metrů, ale o mnohem robustnější signál, který si za ideálních podmínek poradí i se vzdáleností více než kilometr!

Témata článku: Hardware, Pojďme programovat elektroniku, Android, Programování, Mobilní telefon, Arduino, Bluetooth, Free To Play, Blikání, Řetězec, Elektro, Podobný problém, Levný hardware, Bluetooth modul, Rychlé odeslání, Maličké Arduino, BPS, Infračervený detektor, Atraktivní hra, Praktická elektronika 2016, Pulse, Spotřebiče, Zvonek, Metr, Dálkový ovladač, Samsung monitor 27 na Mall.cz


Určitě si přečtěte

Že by konečně revoluce? Nové chytré hodinky od Garminu mají průhledný solární panel

Že by konečně revoluce? Nové chytré hodinky od Garminu mají průhledný solární panel

** Chytré hodinky mají relativně malou výdrž ** Sportovní fénixy od Garminu jsou na tom ale lépe ** Poslední verze nabízí dokonce transparentní solární panel

Jakub Čížek | 56

Google dosáhl revolučního milníku v kvantové nadvládě. IBM ale nesouhlasí

Google dosáhl revolučního milníku v kvantové nadvládě. IBM ale nesouhlasí

** Google představil nový kvantový čip s 53 qubity ** Oznámil, že díky němu lidstvo poprvé dosáhlo kvantové nadvlády ** IBM toto tvrzení zlehčuje

Karel Javůrek | 15

Už desítky let se pokoušíme odposlouchávat mozek. Rusům se podařil kousek, ze kterého vám spadne brada

Už desítky let se pokoušíme odposlouchávat mozek. Rusům se podařil kousek, ze kterého vám spadne brada

** K odposlechu mozků používáme EEG ** To má ale žalostné informační rozlišení ** Rusům pomohla počítačová neuronová síť

Jakub Čížek | 28

20 tipů a triků pro Gmail: Užitečné maličkosti, které zefektivní práci s e-maily

20 tipů a triků pro Gmail: Užitečné maličkosti, které zefektivní práci s e-maily

** V Gmailu je řada užitečných funkcí, které možná všechny neznáte ** Odeslání mailu můžete například pozdržet či naplánovat na později ** Nad Gmailem můžete mít s několika triky daleko lepší kontrolu

Karel Kilián | 25



Aktuální číslo časopisu Computer

Megatest 20 procesorů

Srovnání 15 True Wireless sluchátek

Vyplatí se tisknout fotografie doma?

Vybíráme nejlepší základní desky