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ů

No dobrá, komunikace pomocí IR je sice praktická pro ovládání existujících spotřebičů, ale pokud budete chtít přenést jednoduchou zprávu z jedné místnosti do druhé, už to bude k ničemu.

433MHz vysílač v ceně jednoho piva

Tady na scénu nastupuje radiový signál, přičemž nejlevnější jednosměrný vysílač koupíte i na českých e-shopech zhruba za čtyřicet korun (třeba zde). Zpravidla se jedná o některou z variant 315/433MHz modulu, který se skládá z drobného vysílače a přijímače.

Klepněte pro větší obrázek
Nejjednodušší a nejlevnější modul přijímače a vysílače pro rádiovou digitální komunikaci

Výkon podobných vysílačů je samozřejmě nízký a zpravidla disponují jen maličkou svinutou anténkou přímo na desce. Vysílač tedy poslouží třeba pro rádiové dálkové ovládání, anebo přenos drobných údajů třeba z meteorologické sondy na balkoně, nějakého chytrého zařízení v kuchyni, koupelně, anebo třeba na zahradě.

Stejně jako v případě IR se v základu jedná o holý vysílač. Na jeho datový pin můžete poslat buď silný, nebo slabý signál, který se poté modulací promění v rádiovou vlnu, kterou zachytí přijímač a převede opět na slabý, nebo silný signál – nulu, nebo jedničku.

Knihovna VirtualWire promění drobný obvod v použitelný vysílač

Pokud chcete přenášet nějaká opravdová data, můžete buď strávit týden tvorbou vlastního komunikačního protokolu, anebo sáhněte opět po další knihovně – třeba jednoduché VirtualWire (dokumentace), s jejíž pomocí už můžete přenášet smysluplné bajty – třeba textové znaky.

Kód vysílače

#include <VirtualWire.h>

// Nase zprava
char zprava[] = "ahoj sefe";

void setup(){
  vw_set_ptt_inverted(true);
  // Vysilac je pripojeny na digitalnim pinu 2
  vw_set_tx_pin(2);
  // Rychlost bps
  vw_setup(4000);
}

void loop(){
  // Odesli zpravu, pockej 2 sekundy a opakuj
  vw_send((uint8_t *)zprava, strlen(zprava));
  vw_wait_tx();
  delay(2000);
}

Kód přijímače

#include <VirtualWire.h>

uint8_t zprava[VW_MAX_MESSAGE_LEN];
uint8_t delka = VW_MAX_MESSAGE_LEN;

void setup()
{
    vw_set_ptt_inverted(true);
    // Prijimac je pripojeny na digitalnim pinu 2
    vw_set_rx_pin(2);
    // Rychlost bps
    vw_setup(4000);
    // Nastaveni seriove linky pro vypis prijimace na PC
    Serial.begin(9600);
    vw_rx_start();      
}
void loop(){
  // Pokud prijimac dostal data, vypis je skrze seriovou linku na PC
  if(vw_get_message(zprava, &delka)){
    Serial.println((char *)zprava);
  }
}

VirtualWire je ale na druhou stranu už starší kousek, a i když korektně pracuje na Arduinu, problémy má třeba s populárními Wi-Fi čipy ESP8266. Novější alternativou proto může být knihovna RCswitch.

Já se pomocí drobného vysílače pokusím bezdrátově přenést textovou zprávu mezi destičkou Arduino Uno a Arduino Nano, která bude na nepájivém poli s přijímačem a data vypíše do sériové linky.

Klepněte pro větší obrázek
K většímu Arduino Uno v pozadí je připojený vysílač. Přijímač je připojený k maličkému Arduino Nano na nepájivém poli.

Jak ukazuje obrázek níže, funguje to! S vysílačem v ceně jednoho lepšího piva (a na eBay v ceně prošlé tatranky) tedy přenesete zprávu při přímé viditelnosti a malém rušení i na vzdálenost několika desítek metrů.

Klepněte pro větší obrázek
Zpráva dorazila do cíle a zobrazila se na připojeném PC

S podobným primitivním vysílačem můžete dělat i jiné a spíše studijní kousky. Třeba se můžete pokoušet získat signál bezdrátového zvonku a dalších zařízení používajících 433 MHz a podobně jako v příkladu s IR jej zreprodukovat. A jelikož máme takový bezdrátový zvonek i u nás v redakci, myslím, že si udělám z kolegů legraci a budu jej dálkově spouštět přímo ze svého PC a sledovat, jak běží po schodech až do přízemí.


V další kapitole opustíme knihovny a laciné cetky a podíváme se na mnohem sofistikovanější radiové vysílače, které ke komunikaci používají sériovou linku. V prvním případě se bude jednat o Bluetooth a v druhém o dálkový vysílač, který v pásmu 433 MHz přenese data i z kilometrové vzdálenosti.

Témata článku: Hardware, Pojďme programovat elektroniku, Android, Programování, Mobilní telefon, Arduino, Bluetooth, Barevný led, Rádiový signál, Digitální signál, Dálkový ovladač, Vysílací výkon, Metr, Infračervený detektor, Komunikační kanál, Counter, Bluetooth modul, Serial read, Vysílačky, Přízemí, Jednoduchý příklad, MicroUSB, Spárované zařízení, Arduino-shop cz, Atraktivní hra, Samsung monitor 27 na Mall.cz


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

Nejlepší notebooky do 20 000 Kč. Tipy, co se dnes vyplatí koupit

Nejlepší notebooky do 20 000 Kč. Tipy, co se dnes vyplatí koupit

** S cenou do 20 tisíc lze vybrat solidní notebook na práci i hry ** Přenosné notebooky nabídnou i kovová těla a rychlý hardware ** Na hraní se hodí více peněz, ale na použitelný základ dvacet tisíc stačí

Tomáš Holčík, David Polesný | 49

Nejlepší notebooky do 10 000 korun: Co koupit a čemu se raději vyhnout

Nejlepší notebooky do 10 000 korun: Co koupit a čemu se raději vyhnout

** Do deseti tisíc korun lze dnes koupit slušné notebooky ** V nabídce ale i tak převládají zastaralé a pomalé modely ** Poradíme, jak dobře vybrat i s omezeným rozpočtem

David Polesný | 112



Aktuální číslo časopisu Computer

Test 9 bezdrátových reproduktorů

Jak ovládnout Instagram

Test levných 27" herních monitorů

Jak se zbavit nepotřebných věcí na internetu