Lekce 24 - Arduino a Bluetooth I - komunikace s PC

14.08.2013 12:12

Translate to English

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ám právě seriový 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 rohraní 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. 

 

Zpět

Diskusní téma: Lekce 24 - Arduino a Bluetooth I

Datum
Vložil
Titulek

modul

Mohu dostat přesnÿ název bluetooth modulu který používáte?

Datum
Vložil
Titulek

dělič

neměl by se udělat dělič napětí z arduina na bluetooth rx aby tam šlo 3,3volt?

Datum
Vložil
Titulek

BT <->BT

Ahoj rozmýšlal som nad komunikáciou medzi dvoma BT. Ak by si spravil tutorial taký by bolo super :D .. Aj som to skúšal ale neviem to rozbehať . Nevedel som ich spárovať . Ak by si mi vedel poradiť bol by som rád :)

Datum
Vložil
Titulek

Re: BT <->BT

Ahoj
podarilo sa ti to uz?

Datum
Vložil
Titulek

služby Bluetooth

Zdravím , postupuji dle návodu, ale když přidám zařízení tak mi to ve službách zařízení nic nenabízí :( co s tím ? Díky

Datum
Vložil
Titulek

monitor z IDE

Mám modul BC04-B. Připojil jsem ho k MEGA 2560. Vytvořil se COM7. Nahrál jsem do Arduina "ahoj". Spustil nejprve program PuTTY, který jsem měl už nainstalovaný, nastavil COM7 a ahoj se normálně zobrazovalo. Spustil jsem tedy IDE, nastavil COM7, a spustil monitor. A kupodivu, "ahoj" se zobrazovalo také bez problému. Při pokusu nahrát do Arduina program přes BT to ale skončilo timeoutem. Takže to asi opravdu nepůjde :-(

Datum
Vložil
Titulek

teraterm nejde

dobrý den, teraterm mi nechce fungovat na sériový lince (je to šedivý a nadá se na to klinout)

Datum
Vložil
Titulek

Re: teraterm nejde

tak teď už se na to dá kliknout, ale vyhazuje to chybu (cannot open COM4)

Datum
Vložil
Titulek

Díky;-)

Moc děkuji za inspirace kolem bluetooth a jistě také za celý "kurz".

Datum
Vložil
Titulek

Program pre PC

Čau, dal by si mi kod toho programu pre PC v C# ? Diki :)

1 | 2 >>

Vyhledávání

arduino8.cz © 2015 Všechna práva vyhrazena.