Lekce 24 - Arduino a Bluetooth II - komunikace s Androidem
15.09.2013 21:24Translate 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ětDiskusní téma: Lekce 24 - Arduino a Bluetooth II - komunikace s Androidem
Datum | 30.10.2016 |
---|---|
Vložil | Petr L. |
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 | 01.08.2016 |
---|---|
Vložil | Guest |
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 | 27.08.2014 |
---|---|
Vložil | Lukáš Skrbek |
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 | 25.02.2016 |
---|---|
Vložil | Toncek |
Titulek | Re: HC-06 |
Zkus v podmínkách zvětšit zpoždění
———
Datum | 01.08.2014 |
---|---|
Vložil | Adam |
Titulek | nefunguje |
Ahoj, mám Arduino Uno rev. 3, koupil jsem si tento bluetooth modul z Ebay.
https://www.ebay.com/itm/Interface-Base- ... 27e85f7513
Bohužel jej nedokáži zprovoznit. Vše jsem zapojil jako zde https://www.instructables.com/id/how-to- ... /?ALLSTEPS
Bluetooth nic nedělá, nebliká, nic telefon nenalezne.
Prosím o radu, díky moc :-)
———
Datum | 01.08.2014 |
---|---|
Vložil | Adam |
Titulek | Re: nefunguje |
https://www.ebay.com/itm/Interface-Base-Board-Serial-Transceiver-Bluetooth-Module-HC-05-06-For-Arduino-/171402294547?pt=LH_DefaultDomain_0&hash=item27e85f7513
———
Datum | 31.12.2014 |
---|---|
Vložil | pan89 |
Titulek | Re: Re: nefunguje |
to není bluetooth, je to jen deska na ten bluetooth!
———
Datum | 22.12.2013 |
---|---|
Vložil | Jan Nekovář |
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 | 13.12.2013 |
---|---|
Vložil | Petr Kovář |
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 | 10.07.2014 |
---|---|
Vložil | tomajstr |
Titulek | Re: Párování Arduina s Arduinem |
tohle bych řešil přes 433 MHz