Lekce 24 – Arduino a Bluetooth I – komunikace s PC

V dnešním díle si k Arduinu připojíme Bluetooth modul a zkusíme si komunikaci, přenos dat a řízení. V dalším díle se pokusíme spojit Arduino přes Bluetooth se zařízením se systémem Android (telefon, tablet). Takže co budeme potřebovat. V první řade Arduino – jedno jaké a dále tedy nějaký ten modul Bluetooth. Já použiji již s připravenými vývody na modulu, který zasunu do mini nepájivého kontaktního pole.

Na obrázku vidíte, že modul má celkem 6 pinů, ale k zapojení je třeba jen 4. Z toho 2 napájení a protože modul komunikuje po sériové lince tak další je Tx a Rx. Napájení je 3,3V nejsem si jistý, ale na modulu je možná regulátor takže by měl umožnit i 5V napájení.

Modul si tedy zapojíme. V případě zapojení s Arduinem UNO máme sériovou komunikaci připravenou na pinu digital 0 (Rx) a digital 1 (Tx). Ovšem pozor !!! Tx z Arduina zapojíme na Rx modulu bluetooth a Rx z Arduina na Tx modulu. Nejedná se o sběrnici, takže receive do transmit a naopak 🙂. Do Arduina si nahrajeme program, který bude tedy něco pro začátek vysílat.

Pozor ovšem na to, když ho programujeme. Při programovaní přes USB je využíván právě sériový port na pin 0 a 1, který je zapojen k modulu. Modul si při programování odpojíme a nemělo by to dělat problémy.

A jak to udělat, aby jsme nemuseli pořád něco odpojovat od sériového portu?

Prostě si sériový port uděláme nikde jinde. Pomocí knihovny SoftwareSerial.h, která by již měla být standardně integrována do prostředí Arduina, si vytvoříme sériový port na pinech 2 a 3 a nazveme ho Bluetooth. Kód k tomuto je zde:

Nezapomeňme tedy přepojit modul na pin 2 a 3. No teď už jenom spojit bluetooth modul s počítačem. Vešina notebooků má již bluetooth integrován. V mém případě jsem použil bluetooth modul do USB. Po zapojení napájení našeho modulu, by měl tento operační systém detekovat. V mém případě u OS W7 nebyl problém.

v ovládacích panelech v systému Windows 7 otevřeme záložku “Tiskárny a zařízení” a dále přidat zařízení. V nabídce by se měl objevit náš modul. Ovšem pozor vy tam uvidíte ne název Arduino monitor, ale HC-08… nebo nějak tak. Já si svůj modul přejmenoval (ukážu později jak se to dělá). Poté kliknete na další kdy se objeví následující nábídka.

Vybereme nabídku “Zadat párovací kód zařízení”. V našem případě to bude obligátní “1234” nebo “0000”, mě fungovalo 1324. I tento PIN jde změnit stejně jako název, ale jak jsem již uvedl, vysvětlím později. Po těhto krocích by mělo být zařízení spojeno s počítačem. Ovšem k čemu nám to teď je? Systém Windows vytvoří v počítači seriový port COM pro komunikaci s naším modulem.

My teď tedy potřebujeme program, kde budeme odposlouchávat příchozí data z modulu a také do něho i data posílat. Já jsem pátral na internetu a nenašel jsem mnoho programů. Ale jedním z nich, který fungoval byl TERA TERM, který si můžete stáhnout na tomto odkazu. Program má sice cca 10MB, což je dost, ale funguje a to je hlavní.

Po spuštění vybereme Serial a v rozbalené nabídce již vidíme port který budeme potřebovat. Po potvrzení OK si můžeme všiimnout, že že LED dioda na našem modulu připojeném k Arduinu přestala blikat a začala svítit. To znamená, že je zařízení spárované a mělo by to být funkční.

Na terminálu na počítači již nyní můžeme vidět jak se vypisuje text “ahoj” každé 2 vteřiny. :-). Pokud jste se dostali až sem tak gratuluji :-).

Ptáte se proč jsme nepoužili SerialMonitor z prostředí Arduina? Prostě protože, ač se mi tam někdy COM8 ukázal, program vykazoval chybu, prostě se zařízení nespárovalo. A vzhledem k tomu, že program TERATERM mi připadal dost těžkopádný, napsal jsem si malý prográmek sám v C# .NET. má cca 250KB a mě plně postačí. Stejně, aby jsem modul s počítačem plně využil, aplikaci si budu muset napsat sám. Těžko budu psát příkazy a číst data na nějakém terminálu. Takže program dávám k dispozici zde. Nevím zda po Vás nebude systém vyžadovat nějaké knihovny .NET, ale mě to fungovalo bez problémů.

V mém programu vše funguje. Jednosměrnou komunikaci jsme si ukázali a teď si to uděláme trošku složitější. Použijeme např. čidlo teploty a vlhkosti DHT11 a do počítače budeme bezdrátově odesílat hodnotu teploty a při tomto budeme ještě z počítače ovládat LED diodu, kterou budeme příkazy rozsvěcovat či zhasínat.

Tak program je jasný. Čidlo DHT11 připojíme na digital pin 4 (dle lekce 6) a LED přes odpor 1,2kOhm na digital pin 13.

Arduino přes rozhraní Bluetooth odesílá v určené časovém intervalu hodnotu teploty. Dále, když odešleme počítačem přes Bluetooth znak 0 nebo 1, LED dioda se rozsvítí nebo zhasne. Samozřejmě pro aplikace již přímo určené nějakému účelu bude námi naprogramované rozhraní na počítači trochu lépe vypadat a k zapnutí něčeho tam nebudeme odesílat přes příkazový řádek nějaké hodnoty, ale bude vše skryto pod tlačítky a např. teplota pod nějakými grafickými ukazateli.

Napsat komentář

Translate »