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, Arduino, Programování, Mobilní telefon, Bluetooth, Rychlé odeslání, BTS, Serial, Infračervený vysílač, Infračervený signál, Serial read, Slabý signál, Praktická elektronika, Atraktivní hra, I/O, BPS, Silný signál, Primitivní dálkoměr, Facka, Wi-fi čip, Available, Televizní ovladač, Levný hardware, Samsung monitor 27 na Mall.cz


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

Vyzkoušeli jsme chytrou čínskou zásuvku Sonoff S26 za tři stovky. Nevyhořeli jsme

Vyzkoušeli jsme chytrou čínskou zásuvku Sonoff S26 za tři stovky. Nevyhořeli jsme

** Je sice z Aliexpressu, ale funguje ** Můžete ji ovládat hlasem přes Amazon Echo nebo Google Home ** Za tři stovky zautomatizuje menší 230V spotřebič

Jakub Čížek | 96

Je ta fotka černobílá, nebo barevná? Náš mozek realitu pouze odhaduje a vymýšlí si

Je ta fotka černobílá, nebo barevná? Náš mozek realitu pouze odhaduje a vymýšlí si

** Klasický počítač bezchybně zpracuje bit po bitu dat ** Mozek si realitu naopak spíše představuje a chybuje ** Teď se tím baví internet u další optické iluze

Jakub Čížek | 33

3D tisk pro naprosté zelenáče: Co vyrobíte na laciném stroji za pár tisíc korun

3D tisk pro naprosté zelenáče: Co vyrobíte na laciném stroji za pár tisíc korun

** Domácí 3D tisk je dnes už finančně dostupný prakticky všem ** Lacinou tiskárnu pořídíte za pár tisíc korun ** Jak vlastně tisk probíhá a jak navrhnout, co vytisknout

Jakub Čížek | 66

Co zabírá nejvíce místa na disku? Těchto 10 nástrojů odhalí největší žrouty dat

Co zabírá nejvíce místa na disku? Těchto 10 nástrojů odhalí největší žrouty dat

** Je vhodné jednou za čas zanalyzovat, co vám leží na disku ** Poradíme vám nástroje, kterými zjistíte, jaká data uchováváte ** Podle výsledků můžete optimalizovat svá data či úložiště

Karel Kilián | 49

Nové iPhony, hodinky a další novinky Applu: Zase bude za co utrácet

Nové iPhony, hodinky a další novinky Applu: Zase bude za co utrácet

Dnes proběhla další velká prezentační akce Applu, na které došlo k odhalení nových iPhonů a dalších novinek. Událost jsme sledovali online, a tak se můžete podívat na chronologický zápis těch nejdůležitějších informací.

David Polesný | 136



Aktuální číslo časopisu Computer

Speciál o přechodu na DVB-T2

Velký test herních myší

Super fotky i z levného mobilu

Jak snadno upravit PDF