Lekce 24 - Arduino a Bluetooth II - komunikace s Androidem

15.09.2013 21:24

Translate to English

V první části tutoriálu jsme si ukázali přenos dat mezi Arduinem a PC pomocí modulu Bluetooth a v tomto díle si ukážeme přenos dat se zařízením se systémem Android. V dnešní době rozmachu chytrých mobilních telefonů a tabletů s tímto systémem tento způsob komunikace využijeme více jak s PC.

Ze začátku ovšem upozorňuji, že to nebo věc lehká, a budeme muset programovat i pro Android. Já sám, protože zkušenosti s programováním se systémem Android nemám, jsem se musel naučit spousty nových věcí v programovaní pod jiným systémem. Na straně Arduina nebudeme nic měnit. Bluetooth je připojen na sériový port a dále je k Arduino připojeno čidlo teploty a vlhkosti DHT11 a také diody, kterou budeme pomocí tabletu nebo telefonu rozsvěcet a zhasínat, je připojena na digitální pin přes odpor 1,2 kOhmu. Kód pro Arduino zůstává stejný jako v předchozí části tutoriálu o Bluetooth.  

Aby jsme si komunikaci se systémem Android vyzkoušeli, nebudeme zatím nic programovat, a využijeme jednoduchý terminál pro Android, který dokáže najít naše zařízení a odesílat a přijímat nějaká data. Jedná se o program od společnosti ITEAD STUDIO "Bluetooth and Wifi Debuging Assistant". Program naleznete na Google Play zdarma. Odkaz je zde:

Obslužný program pro Arduino je zde:

Kód programu je vysvětlen v první části tutoriálu o Arduinu. Změnou pouze je to, že nepoužíváme PC ale např. tablet. 

Nemusím připomínat, že je nutné také si nejdříve naše zařízení v zařízení s Androidem najít a spátovat. Po spuštění programu Bluetooth Assitant ... vybereme možnost "Bluetooth" a následně i naše zařízení. 

Na obrázku vidíte screenshot z programu Bluetooth Assistant.

Čísla která se tam objevují se symbolem "*" odesílá Arduino jako teplotu z čidla DHT11 každé 3 vteřiny. * je tam pouze proto, aby program poznal, že je přijímána teplota.   

 

s tímto programem dokážeme také hodnoty odesílat. Víme, že k Arduinu máme připojenou LED diodu, která se rozsvítí, pokud Bluetooth modul přijme hodnotu '1', myšleno jako jako znak a pokud přijme hodnotu '0' tak diodu zhasne. Pokaždé také nazpět odešle z Arduina "OK 1" nebo "OK 2". To jsem naprogramoval navíc jen jako kontrolu, zda Arduino příkaz dostalo. Není to povinné. Vše bez problémů funguje a LED dioda se rozsvěcí a zhasíná jak má. 

Težko ovšem budeme ovládat naše Arduino přes Bluetooth tímto terminálem, ale budeme si muset napsat vlastní program pro systém Android. Tak to dále nebudeme zdržovat a začneme. Nevím jestli se zde rozepisovat a tom jak začít programovat pro Android, ale něco málo si k tomu řekneme. Pro programování pro tento systém se mi zdálo nejlepší prostředí "Eclipse". Najděte si na internetu jak a kde ho stáhnout. Já jsem při vývoji mé aplikace používal tablet NEXUS 7, který jsem měl při programovaní spojen s počítačem  a při kompilaci mého programu se vždy program nahrál rovnou do tabletu, kde se spustil. Je samozřejmé mít zařízení (tablet nebo telefon), kde je Bluetooth a také mít aktivovanou volbu "Pro vývojáře" a "Ladění přes USB" - hledejte na internetu. Já jsem vyvíjel tento druh aplikace poprvé a používal jsem hodně internet, kde najdete spoustu návodů (samozřejmě v angličtině) pro programovaní Bluetooth pro Android. 

Dávám sem zdrojová kód "Activity", který Vám sice samostatně fungovat samozřejmě nebude, ale mnohé napoví:

Upozorňuju, že není dokonalý. Bez zapnutého Bluetooth spadne a nefunguje. Avšak jako moje první dílo pro Android to docela ujde. Z videa je patrné, že vše dělá co má a i když to není sofistikovaný program, LED diodu už ovládáme tlačítkem a i text s teplotou určitě vypadá lépe něž nějaká data z terminálu. 

Někdy v předchozím dílu jsem slíbil, že Vám ukážu jak změnit zobrazovaný název zakoupeného bluetooth modulu. Pro ty, který to dočetli až sem je to jako bonus. Provedeme to pomocí AT příkazu.

Nezapomeňme, že jsme v programu nepoužili SoftwareSerial, takže modul musí být připojen na RX a TX (pozor na RX --> TX a TX --> RX a odpojte modul při programovaní Arduina !). AT kódy jde měnit rychlost přenosu, jméno, heslo, a další parametry dané výrobcem. Na internetu bude spousta manuálů a návodů, někdy je uváděn zápis AT+NAME="NOVY_NAZEV"\r\n někdy stačí pouze AT+NAMENOVY_NAZEV jako v mém případě. Vyzkoušejte sami, mě to vše funguje, pouze pozor na změnu rychlosti spojení. Defaultně je nastavena na 9600 v případě, že tuto změníte, musíte k návratu na původní hodnotu poslat AT příkaz již v nastavené rychlosti, kterou jste provedli naposledy. 

Zpět

Diskusní téma: Lekce 24 - Arduino a Bluetooth II - komunikace s Androidem

Datum
Vložil
Titulek

Změna jména HC-05

AT příkaz pro změnu názvu modulu HC-05 je Serial.print ("AT+NAME=Novy_nazev"). Přes konzole AT+NAME=Novy_nazev

Datum
Vložil
Titulek

Problém párování

Dobrý den,
prosil bych o radu. Po zapojení vcc->5v, gnd->gnd, txd->rx, rxd-> tx bluetooth modul bliká. Když otevřu telefon (android 4.4), bluetooth arduina se jeví jako "00:15:83:00:9F:CE", po kliknutí "párovat" mi po cca 5 sekundách napíše: "Nelze párovat se zařízením.... Kód pin nebo přístupový klíč je nesprávný." Přitom jsem ani jedno nezadával. A ještě jedna věc: při parování a chvilku poté bluetooth přestal blikat, jen svítil, ale poté znovu začal blikat.

Datum
Vložil
Titulek

HC-06

Dobrý den.
Zkouším z telefonu přes modul Arduina s HC-06 posílat a přijímat data z a do linky RS232, komunikace funguje ale směrem z linky RS232 do telefonu data chodí pozměněná, resp v špatném pořadí.. Setkali jste se s podobným problémem někdy?? Děkuji za reakci..

Datum
Vložil
Titulek

Re: HC-06

Zkus v podmínkách zvětšit zpoždění

Datum
Vložil
Titulek

nefunguje

Ahoj, mám Arduino Uno rev. 3, koupil jsem si tento bluetooth modul z Ebay.

http://www.ebay.com/itm/Interface-Base- ... 27e85f7513

Bohužel jej nedokáži zprovoznit. Vše jsem zapojil jako zde http://www.instructables.com/id/how-to- ... /?ALLSTEPS

Bluetooth nic nedělá, nebliká, nic telefon nenalezne.

Prosím o radu, díky moc :-)

Datum
Vložil
Titulek

Re: nefunguje

http://www.ebay.com/itm/Interface-Base-Board-Serial-Transceiver-Bluetooth-Module-HC-05-06-For-Arduino-/171402294547?pt=LH_DefaultDomain_0&hash=item27e85f7513

Datum
Vložil
Titulek

Re: Re: nefunguje

to není bluetooth, je to jen deska na ten bluetooth!

Datum
Vložil
Titulek

parovani

Problem byl až po zadání hesla, heslo bylo správné, ale když jsem to zkoušel z menu bluetootu poze se priparovat, tak to neslo. Sony Xperia Go bohuzel nesla. Zkousel jsem HC-05 ale stejny problem. Po zmene telefonu na Samsung uz vse funguje tak jak ma a s programem Bluetooth SPP PRO, kde si lze nadefinovat co se ma posilat, je to docela radost ;p)

Datum
Vložil
Titulek

Párování Arduina s Arduinem

Dobrý den, komunikace z telefonu i z pc se mi povedla, ale chtěl bych se zeptat, zda by nějak šla zrealizovat komunikace dvou arduin mezi sebou, hodlám vytvářet autíčko a napadlo mě, že bych ho mohl ovládat druhým adruinem, které by sloužilo jako ovladač a ke kterému bych připojil akcelerometr a autíčko by tak šlo ovládat i náklonem.

Předem díky

Datum
Vložil
Titulek

Re: Párování Arduina s Arduinem

tohle bych řešil přes 433 MHz

1 | 2 >>

Vyhledávání

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