Připojení bluetooth hc 05 k arduinu. Lekce Arduina: ovládání zařízení ze smartphonu pro figuríny. Připojte se ze smartphonu pomocí Bluetooth terminálu

Bluetooth píšťalka pro počítač: http://ali.pub/2jfj3y

Nejprve pojďme zjistit, co je to bluetooth.

Bluetooth(z anglických slov blue - modrý a zub - zub; vyslovováno /bluːtuːθ/), bluetooth- výrobní specifikace bezdrátové osobní sítě ( Bezdrátová osobní síť, WPAN). Bluetooth umožňuje výměnu informací mezi zařízeními jako např osobní počítače(stolní počítač, kapsa, notebooky), Mobily, tiskárny, digitální fotoaparáty, myši, klávesnice, joysticky, sluchátka, náhlavní soupravy na spolehlivé, bezplatné, univerzálně dostupné rádiové frekvenci pro komunikaci na krátkou vzdálenost. Bluetooth umožňuje těmto zařízením komunikovat, když jsou v okruhu až 10 m od sebe (dosah se značně liší v závislosti na překážkách a rušení), a to i v různých místnostech.

Nyní, když víme, že bluetooth se používá k budování sítí a výměně dat mezi zařízeními, použijeme jej k propojení CNC (CNC) stroje a počítače nebo telefonu nebo tabletu a notebooku.

Vzhledem k tomu, že pro ovládání CNC používám firmware grbl na platformě arduino, připojíme ke stroji bluetooth modul vhodný pro arduino a to bluetooth modul HC-06.

Před připojením modulu Bluetooth k Arduinu se musíte ujistit, že modul Bluetooth a Arduino fungují stejnou rychlostí jako COM port.

Pokud používáte firmware grbl 0.8, nemusíte nic měnit, ale pokud grbl 0.9 a vyšší, pak bude rychlost COM portu Arduino 115200 a výchozí rychlost na modulu je 9600.

Musíme tedy změnit rychlost portu na samotném modulu Bluetooth.

Pro konfiguraci modulů Bluetooth existují speciální AT příkazy, pomocí kterého můžeme nastavit potřebné parametry modulu.

Pomocí AT příkazů můžeme změnit rychlost COM portu nebo změnit název Zařízení Bluetooth nebo zjistěte či změňte PIN kód pro spárování.

Abychom mohli připojit Bluetooth modul k počítači pro zadávání AT příkazů, budeme potřebovat FTDI programátor (odkaz na něj na začátku článku). Myslím, že schéma zapojení je zde zbytečné. Musíte připojit GND na GND, 5V na 5V, rx na TX a TX na rx.

Po připojení budeme potřebovat program HMComAssistant pro zadávání AT příkazů a programování našeho modulu. Ke stažení: https://yadi.sk/d/eVzPmnh63Wab5R

Zde dám několik AT příkazů pro změnu nastavení modulu Bluetooth:

AT příkaz Odezva modulu Komentář
NA OK Používá se k testování komunikace, zpravidla před provedením jakékoli operace, tento příkaz se nejprve používá k testování komunikace.
AT+BAUD1 OK nebo OK1200 Nastaví rychlost přenosu dat na 1200 baudů
AT+BAUD2 OK nebo OK2400 Nastaví přenosovou rychlost na 2400 baudů
AT+BAUD3 OK nebo OK4800 Nastaví přenosovou rychlost na 4800 baudů
AT+BAUD4 OK nebo OK9600 Nastaví přenosovou rychlost na 9600 baudů
AT+BAUD5 OK nebo OK19200 Nastaví přenosovou rychlost na 19200 baudů
AT+BAUD6 OK nebo OK38400 Nastaví přenosovou rychlost na 38400 baudů
AT+BAUD7 OK nebo OK57600 Nastaví přenosovou rychlost na 57 600 baudů
AT+BAUD8 OK nebo OK115200 Nastaví přenosovou rychlost na 115200 baudů
AT+BAUD9 OK nebo OK230400 Nastaví přenosovou rychlost na 230 400 baudů
AT+BAUDA OK nebo OK460800 Nastaví přenosovou rychlost na 460 800 baudů
AT+BAUDB OK nebo OK921600 Nastaví přenosovou rychlost na 921 600 baudů
AT+BAUDC OK nebo OK1382400 Nastaví přenosovou rychlost na 1382400 baudů
AT+NAME +NAME=test Vrátí aktuální název modulu
AT+NAMEiarduino_BLU +NAME=test OK Nastaví nový název modulu „test“
AT+PIN +PIN=000000 Vrátí aktuální heslo, v tomto případě je heslo „000000“
AT+PIN123456 +PIN=123456 OK Nastavte nové heslo, v tomto případě je heslo „123456“
AT+VERZE +VERZE=Firmware V3.0.6,Bluetooth V4.0 LE Vrátí verzi firmwaru, v tomto případě je heslo „Firmware V3.0.6,Bluetooth V4.0 LE“
AT+RESET + RESET OK
AT+HELP ——– Vrátí seznam všech dostupných AT příkazů

Po změně rychlosti com portu a nastavení PIN kódu pro spárování. (výchozí PIN kód pro párování je „1234“, připojte modul k Arduinu.

A jelikož používám CNC shield v 3.0. K tomu dodám i schéma zapojení.

Nebudu vytvářet vlastní schéma, ale vezmu to z jednoho článku. Ať mi jeho tvůrce odpustí.

Diagram jistě není příliš hladký, ale podle mého názoru je celkem srozumitelný.

Proč se tedy v obvodu používají odpory? Arduino má 5voltovou logiku, což znamená, že Arduino posílá na všechny své výstupy napětí 5V. Ale modul říká LEVEL 3.3v, což znamená, že Bluetooth vyžaduje 3.3V, ale ne 5V. Proto jsou připojeny odpory, které snižují napětí a brání selhání modulu Bluetooth.

Rozhodl jsem se ale použít přímo bez rezistorů, uvidíme, jak dlouho modul vydrží, uděláme nějaký crash test.

Pro ovládání CNC (CNC) stroje z telefonu nebo tabletu jsem použil program “Grbl controller”, je zdarma a je vcelku multifunkční. Ve videu níže jsem stručně ukázal, jak se stroj ovládá z tohoto programu.

Pokud se však připojujete z počítače, existuje nuance; při spárování připojení s modulem dvě nový COM přístav. Pro mě je to COM6 a COM7. Jeden z nich se tedy používá k odesílání dat a druhý k příjmu. Není proto třeba se děsit a zkusit se připojit k jednomu, pokud se nic neděje, připojit se k jinému.

Ale pokud něco není jasné, jasně jsem to ukázal ve videu:

Velmi často je ve vašich projektech potřeba dálkového ovládání nebo přenosu dat z vašich telefonů.

Jedna z nejpopulárnějších a nejrozšířenějších metod výměny dat přes Bluetooth .

Dnes se podíváme jednoduché příklady jak připojit bluetooth modul do Arduina a nakonfigurujte dálkové ovládání z telefonu.

Budeme potřebovat:

  • Sada vodičů MALE-MAMA
  • HC-06 Bluetooth

Připojte Bluetooth Modul k mikrokontroléru Arduino je nejpohodlnější pomocí zapojení MALE-MAMALE.

Arduino Bluetooth
Pin 1 (TX) RXD
Pin 0 (RX) TXD
GND GND
5V VCC

Buďte opatrní, musíte se připojit TX -> RXD ,RX -> TXD .

Nyní si musíte zapsat testovací kód programu:

Při načítání skici je nutné, aby byl Bluetooth modul odpojen od mikrokontroléru arduino. V opačném případě nebude náčrt nahrán, protože spojení s Bluetooth Modul komunikuje přes stejné RX a TX porty jako USB.

Int val; int LED = 13; void setup() ( Serial.begin(9600); pinMode(LED, OUTPUT); digitalWrite(LED, HIGH); ) void loop() ( if (Serial.available()) ( val = Serial.read(); / / Když je znak "1", zapněte LED, pokud (val == "1") ( digitalWrite(LED, HIGH); ) // Když je znak "0", vypněte LED, pokud (val == "0") ( digitalWrite(LED, LOW); )))

Po náčrtu se nahraje a Bluetooth Modul je připojen k Arduinu, můžete přejít k dalšímu kroku.

Připojení Bluetooth k telefonu

Jako zdroj energie pro arduino je vhodné použít nikoli USB, ale externí 9V zdroj.

  1. Zapněte v telefonu Bluetooth a vyhledejte nová zařízení
  2. Najdeme v seznamu poruch " HC-06" a připojte se k němu.
  3. Telefon požádá o zadání kódu PIN. musíte zadat " 1234 "nebo" 0000 "
  4. Hurá. Zařízení je připojeno.

Nyní si musíte do telefonu stáhnout bluetooth terminál. Podíváme se na příklad platformy Android.



Můžete instalovat různé bluetooth terminály, zpravidla se liší pouze v různých provedeních, funkčnost se nemění. Můžete také najít terminál pro produkty iOS.

Po instalaci terminálu jej spustíme, vybereme náš bluetooth modul HC-06 a připojíme se k němu.

Je čas vyzkoušet projekt v akci. Do terminálu napíšeme číslo „0“ a odešleme. LED L, která se nachází na desce arduino vedle pinu 13, by měla zhasnout. Nyní přes terminál pošleme číslo „1“ a LED L by se měla rozsvítit.

Ukázka práce:


Domácí práce:

  • Změňte náčrt tak, aby se LED rozsvítila a zhasla pomocí stejného příkazu, například „G“.
  • Dokončete skicu a naučte ji převádět textová data přicházející přes bluetooth na digitální data a implementujte stmívač, rozsviťte LED pomocí PWM při daném jasu od 0 do 254 přicházející přes bluetooth.

Dnes se seznámíme s levným modulem pro bezdrátový přenos dat přes Bluetooth.

Bluetooth je průmyslová specifikace pro bezdrátové osobní sítě, která umožňuje bezdrátový přenos dat mezi mnoha zařízeními.

Náš modul se jmenuje HC-05. Jedná se o jednoho ze zástupců řady podobných modulů HC-03 - HC-09.

Tyto moduly vám umožňují bezdrátově přenášet data, aniž byste přemýšleli o tom, jak obecně funguje protokol Bluetooth, o jeho polích a dalších jemnostech. Tyto moduly jsou správné nastavení zajistit přenos dat takovým způsobem, že programátor píšící kód zapíše algoritmus, jako by pracoval s drátovým rozhraním UART. Psaní kódu se tak stává maximálně pohodlným, a proto si tato řada modulů získala tak obrovskou oblibu nejen mezi začínajícími programátory.

Takže ty a já, také za nimi nezůstávejme a dáme si od nich trochu pauzu síťových protokolů a studovat takový modul. Bylo také mnoho osobních požadavků, stejně jako ve veřejných chatech, abych takové moduly neobcházel a nepsal s nimi nějaké lekce.

Moduly mají následující hlavní vlastnosti:

  • Bluetooth čip – BC417143 Výroba CSR společnost,
  • protokol přenosu dat - Bluetooth 2.0+EDR,
  • třídy 2, což odpovídá přenosu dat v okruhu do 10 m,
  • Podpora profilu sériového portu ( SPP), která zajišťuje kompatibilitu se všemi zařízeními, která tento profil podporují,
  • energeticky nezávislá flash paměť s kapacitou 8 MB,
  • rádiový kanál s frekvencí 2,4 - 2,4835 MHz,
  • Rozhraní USB Host 1.1/2.0,
  • Rozhraní UART s nastavitelnou přenosovou rychlostí.

Spolu s těmito vlastnostmi také stojí za zmínku, že modul má na desce spoustu nohou, což umožňuje jeho použití v širším rozsahu. Podívejme se na schéma zapojení modulu

Vidíme zde piny GPIO, SPI, USB, PCM.

Pravda, zatím budeme pracovat pouze s rozhraním USART, s jehož pomocí budeme nejen přenášet některá užitečná data, ale také konfigurovat náš modul.

Uděláme to za prvé proto, že naše moduly budou stejného typu (mám jich až 4!), ve kterých je modul HC-05 připájen na další desku, na které je vyvedeno pouze 6 kontaktů. Takto je mám všechny (pohled shora a pohled zdola)

Účel nožiček je naznačen na spodní straně desky, zjistíme je až připojíme modul.

Za druhé, nebudeme pracovat se zbytkem mnoha kontaktů, protože ne každý firmware vám to umožňuje.

Obecně padla volba na HC-05 i proto tento modul Dokonale konfigurovatelné pro master i slave provoz.

Modul je nakonfigurován pro další práci s daty pomocí AT příkazů. Myslím, že všichni víceméně známe, co to jsou příkazy, trochu jsme je poznali, když jsme pracovali s modulem Wi-Fi. Tyto příkazy se samozřejmě liší pro všechna zařízení a proto přiložím dokument s kompletním seznamem příkazů na konci stránky. Je také snadné najít zdroje na internetu, kde je popis těchto příkazů přeložen do ruštiny, a dokonce existuje několik příkladů jejich použití. Nebudeme se zde zabývat kompletním překladem příkazů, budeme studovat pouze ty příkazy, které budeme muset použít. Jejich výčet zatím nebude tak široký, ale později se k těmto modulům vrátíme, doufám, vícekrát a poté si rozšíříme obzory ve znalostech tohoto modulu. Mezitím uděláme jen krátkou prohlídku modulu. Samozřejmě to zkusíme v práci, ne bez toho.

Nyní připojíme náš modul k TTL-USB adaptéru, který zase připojíme k PC.

Zapojíme podle následujícího schématu

TTL-USB adaptér Module HC-05

VCC VCC

GND GND

TXD RXD

RXD TXD

V praxi to bude vypadat nějak takto

Připojíme adaptér k počítači, neřeknu vám, jak s adaptéry tohoto typu pracovat, už s nimi pracujeme neustále. Spustíme terminálový program, já použiji program CoolTerm, jelikož má flexibilnější nastavení pro přenos dat z klávesnice a pro zadávání příkazů potřebujeme, aby každý řádek při přenosu končil posunem řádku a návratovým kódem vozíku.

Pojďme do nastavení programu a nejprve nakonfigurujeme port

Tato rychlost 38400 byla zvolena, protože modul pracuje přesně s touto rychlostí při příjmu AT příkazů.

Nyní vyberte položku vlevo Dostávat a jedno tlačítko tam přepněte a druhé zapněte

První tlačítko slouží k ukončení přenášených příkazů znakem pro posun řádku a návrat vozíku a druhé proto, abychom po zadání v přijímacím terminálovém okně viděli také naše zadané příkazy.

Uložíme nastavení a zkusíme se připojit. Pokud je vše úspěšné, odpojíme se, protože nyní je náš modul v režimu přenosu dat, a pokud ještě nebyl nakonfigurován, pak s největší pravděpodobností ani neznáme jeho adresu nebo jeho nastavení. O nalezení modulu v tento režim To je indikováno rychlým blikáním modré LED, proto je potřeba modul nějak uvést do stavu vysílání AT příkazů.

K tomu nyní odpojíme adaptér z USB portu a připojíme vodič k noze modulu HC-05 KLÍČ. Pro někoho to může mít jiný název, ale myslím, že si to nemůžete splést. Zapojíme drát takhle a takhle

Pojďme připojit tento vodič ke kladnému napájení (s nohou VCC)

A bez uvolnění kontaktu připojte adaptér k USB port počítač a po chvíli (za vteřinu nebo dvě) odpojíme náš KLÍČOVÝ kontakt od VCC kontaktu odstraněním drátu. Modul se bude muset přepnout do režimu příjmu AT příkazů, což bude indikováno velmi pomalým blikáním LED.

Přejdeme do terminálového programu, připojíme se k portu a zkusíme odeslat příkaz NA, na kterou nám modul musí odpovědět "OK"

Modul odpověděl, což znamená, že je vše v pořádku.

Abychom se nepletli s nastaveními, která kdysi někdo provedl, shromážděme všechna nastavení zadáním příkazu „ AT+ORGL". Nastavení bude nutné resetovat na následující parametry:

  • Typ zařízení: 0
  • Kód dotazu: 0x009e8b33
  • Pracovní režim modulu: Slave Mode
  • Režim připojení: Připojte se k určenému zařízení Bluetooth
  • Sériový parametr: Přenosová rychlost: 38400 bitů/s; Stop bit: 1 bit; Paritní bit: Žádný.
  • Přístupový klíč: "1234"
  • Název zařízení: „H-C-2010-06-01“

Pouze nastavení se neprojeví okamžitě. Musíte znovu načíst modul. Je vhodné to provést zadáním příkazu " AT+RESET“, v reakci na to se modul restartuje a vrátí se do režimu přenosu dat a prozatím nebude moci přijímat příkazy. Aby je přijal, provedeme stejné akce jako výše, aby se modul opět přepnul do režimu příjmu AT příkazů. Existuje i jiný způsob, ale zatím jej nevyužijeme.

Pojďme se nyní podívat na některé parametry našeho modulu.

Chcete-li zjistit verzi firmwaru, zadejte příkaz „ AT+VERZE?“, na což bude muset modul nějak takto reagovat

Pokud firmware není nižší než tato verze, pak si můžeme být jisti, že tento modul s takovým firmwarem je schopen pracovat v režimu master.

Zjistěte adresu zařízení pomocí příkazu “ AT+ADDR?«

Tuto adresu použijeme k identifikaci našeho zařízení na hlavním zařízení. Jako hlavní zařízení vezmeme nejobyčejnější smartphone, ale to přijde o něco později. Stále potřebujeme hrát s týmy dobře.

Požádejme také o název zařízení pomocí příkazu " AT+NAME?“, na který mnoho modulů včetně mého reaguje pouze v případě, že je na KEY noze vysoká hladina, tedy když je připojen drát. Pojďme to udělat

Zkusme změnit i tento název, protože to není příliš pohodlné, zadejte k tomu příkaz „AT+NAME: Desired_name“. Tento příkaz lze zadat bez vysoké úrovně na kolíku KEY

Zkontrolujeme, že se jméno změnilo, jen nezapomeňte na vysokou úroveň na KEY noze

Název je dobře použitelný.

Zkontrolujeme heslo příkazem " AT+ PSWD?«

Stejným způsobem jako jméno můžete změnit heslo.

Nyní zjistíme typ zařízení (slave nebo master) pomocí příkazu “ AT+ ROLE?«

0 znamená otrok. Typ lze také kdykoli změnit. To ale zatím nepotřebujeme, protože se zařízením budeme pracovat jako otrok.

Resetujte spárovaná zařízení příkazem „ AT+RMAAD«

Nyní zjistíme nastavení rozhraní USART pomocí příkazu " AT+ UART?«

Tato nastavení znamenají: 38400 kbps, 1 stop bit a žádná parita.

Tato tabulka obsahuje možné možnosti Nastavení USART

Změňme například přenosovou rychlost příkazem " AT+UART=115200,0,0«

Pouze tato nastavení se projeví po restartu modulu a budou relevantní pouze pro režim přenosu dat, pro režim přenosu AT příkazů do modulu zůstane stejné nastavení při rychlosti 38400.

Pojďme znovu načíst modul příkazem " AT+RESET“, po kterém se modul přepne do režimu přenosu dat.

Pojďme nakonfigurovat port v terminálovém programu na daná rychlost a spojit se s ním

Zkusme zadat příkaz, na který náš modul nebude reagovat, protože režim není stejný

Ale nezoufejme. Ukazuje se, že pro odesílání příkazů do modulu není nutné jej uvádět do tohoto režimu. Můžete povolit podporu pro přenos AT příkazů v datovém režimu. Na krátkou dobu (stačí méně než vteřina) se dotkneme vodiče, který je připojen ke kontaktu KEY kladné sběrnice modulu a modul se přepne do režimu podpory AT-příkazů. Je pravda, že to nemůžeme určit podle povahy blikání LED, bude blikat stejně rychle. V režimu podpory přikazujeme také hlavní zařízení, které se k nám nebude moci připojit. Ale přesto nemusíme drát neustále odstraňovat USB konektor a překonfigurujte port v terminálovém programu. To už je dobré. Proveďme tuto akci a ujistěte se, že modul bude také přijímat příkazy, jako v režimu příjmu příkazů

Chcete-li tuto podporu odstranit a modul se mohl připojit, stačí jej restartovat příkazem „ AT+RESET". Pojďme to udělat

Skvělý! Něco už víme. V podstatě jsme nakonfigurovali modul pro přenos dat v master režimu.

Nyní bude smartphone, který máme dnes, fungovat jako hlavní zařízení. Každý s Androidem to zvládne, pokud má nějaký terminálový program pro Bluetooth. Nainstaloval jsem tento. Přišlo mi to pohodlné

Za prvé je zdarma, nevyžaduje vytvoření spojení předem a má také několik tlačítek s řetězci, které jsme si předem uložili.

Pojďme si stáhnout a nainstalovat program a spustit jej. Stiskněte tlačítko SCAN a náš modul by se měl objevit v seznamu nalezených zařízení

Pojďme si vybrat toto zařízení a dostaneme se do dialogu pro vytvoření páru, ve kterém budete muset zadat heslo (máme „1234“) a odsouhlasit kliknutím na tlačítko „OK“

Přemýšleli jste někdy o tom, že byste nějakou spravovali elektronická zařízení pomocí smartphonu? Souhlasíte, bylo by velmi cool ovládat robota nebo jakákoli jiná zařízení z vašeho smartphonu. Nabízíme jednoduchou lekci pro začátečníky a figuríny, jak ovládat smartphone pomocí Arduina přes Bluetooth. Pokud po této lekci chcete Arduino lépe poznat, můžete o něm najít knihy.

Krok 1. Co potřebujeme

Zařízení

Modul - Bluetooth Module HC 05/06
Deska - Arduino
Světelná dioda (LED)
Rezistor - 220Ω
zařízení Android

Software

Arduino IDE
Android Studio (ve skutečnosti není nutné, protože aplikaci pro Android najdete níže)

Krok 2. Jak to funguje

Obvykle tento krok děláme na konci, ale abyste pochopili, čeho máme dosáhnout, podívejte se na výsledek u tohoto mezikroku. Níže jsme také zveřejnili video tutoriál krok za krokem.

Krok 3. Začneme sestavovat obvod

Obvod v našem tutoriálu je tak jednoduchý a malý, že potřebujeme provést pouze několik spojení:

Arduino Pins___________Bluetooth Module Pins
RX (Pin 0)____________________________TX
TX (Kolík 1)____________________________RX
5V____________________________VCC
GND________________________GND

Připojte záporný pól LED ke GND na Arduinu a kladný k pinu 13 přes odpor 220 Ohm - 1 kOhm. Obecně je na našem obrázku níže vše zcela jasné.

Nepřipojujte RX k RX a TX to TX Bluetooth výstupy k Arduino výstupům, nebudete přijímat žádná data, zde TX znamená vysílat, RX znamená přijímat.

Krok 4: Nahrání programu do Arduina

Nyní musíme napsat program a nahrát jej do našeho Arduina. Pokud ještě nevíte, jak na to, stáhněte si knihy. Níže uvedený kód je přesně to, co potřebujeme nahrát do Arduina.

/* Bluetooh Basic: LED ON OFF * Coder - Mayoogh Girish * Webové stránky - http://bit.do/Avishkar * Stáhněte si aplikaci: https://github.com/Mayoogh/Arduino-Bluetooth-Basic * Tento program vám umožňuje k ovládání LED na kolíku 13 arduina pomocí modulu bluetooth */ char data = 0; //Proměnná pro ukládání přijatých dat void setup() ( Serial.begin(9600); //Nastaví přenosovou rychlost pro sériový přenos dat pinMode(13, OUTPUT); //Nastaví digitální pin 13 jako výstupní pin ) void loop() ( if(Serial.available() > 0) // Odesílejte data pouze tehdy, když přijímáte data: ( data = Serial.read(); //Přečtěte si příchozí data a uložte je do proměnných dat Serial.print(data); // Tisk hodnoty uvnitř dat v sériovém monitoru Serial.print("\n"); //Nový řádek if(data == "1") // Zkontroluje, zda je hodnota dat rovna 1 digitalWrite(13, HIGH); // Pokud je hodnota 1, LED se rozsvítí, jinak if(data == "0") // Kontroluje, zda je hodnota dat rovna 0 digitalWrite(13, LOW); //Pokud je hodnota 0, LED zhasne ) )

Krok 5. Jak proces funguje

Modul HC 05/06 pracuje přes sériový komunikační kanál. Aplikace pro Android odesílá data postupně do modulu Bluetooth, když stisknete konkrétní klávesu. Bluetooth na druhém konci přijímá data a odesílá je do Arduina prostřednictvím TX připojení modulu Bluetooth (připojení Arduino RX).

Kód načtený do Arduina kontroluje přijatá data a porovnává je. Pokud je přijata "1", LED se rozsvítí a zhasne, když je přijata "0". Otevřete monitor sériového portu a sledujte přijatá data.

Krok 6. Aplikace pro zařízení Android

V tomto tutoriálu se nebudeme dotýkat vytváření aplikací pro zařízení Android. Aplikaci si můžete stáhnout na GitHubu.

Jak aplikaci používat?

Po připojení přes Bluetooth si musíme stáhnout a nainstalovat aplikaci, která pomocí smartphonu :) bude naši LED ovládat na dálku. Aplikaci si můžete zdarma stáhnout na Amazon.com. Smartphone připojíme k modulu Bluetooth HC 05/06:

  1. Zapněte modul HC 05/0
  2. Hledáte zařízení
  3. K HC 05/06 se připojíme zadáním výchozího hesla „1234“ nebo „0000“ (čtyři nuly).

Poté nainstalujeme aplikaci na náš smartphone. Pojďme to otevřít. Vyberte zařízení - vyberte modul Bluetooth ze seznamu (HC 05/06). Po úspěšném připojení stiskněte tlačítko ON pro zapnutí LED a tlačítko OFF pro vypnutí LED. Poté můžete kliknout na tlačítko „Odpojit“ pro odpojení od modulu Bluetooth.

Toto byl návod pro figuríny a začátečníky, jak propojit Bluetooth modul s Arduinem. Tento projekt lze vylepšit a posunout na vyšší úroveň například pro automatizaci domácnosti prostřednictvím ovládání chytrým telefonem, řízeného robota a mnoho dalšího.

Recenze Bluetooth modulu HC-05

Ovladač Arduino nepodporuje bezdrátovou komunikaci a často je to prostě nutné. Například, dálkové ovládání robot na Arduinu, odesílání dat z meteostanice do Arudina na internet nebo do domácí server, komunikace několika zařízení mezi sebou. Zde, pro pomoc vývojářům zařízení, existuje mnoho externích modulů pro organizaci různých technologií. bezdrátová komunikace: WiFi moduly, GSM/GPRS, IR, Bluetooth, rádiové moduly pro provoz v různých frekvenčních rozsazích.

Technologie Bluetooth se používá k přenosu dat mezi dvěma zařízeními, která jsou ve vzájemné blízkosti, aniž by byla vyžadována přímá viditelnost. Technologie Bluetooth poskytuje dobrou odolnost proti širokopásmovému rušení a umožňuje více zařízením na stejném místě komunikovat současně, aniž by se vzájemně rušily. Velmi široký tuto technologii používá se v telefonech, tabletech, noteboocích.

Jeden z nejlepší řešení pro organizaci obousměrné Bluetooth komunikace mezi vaším zařízením Arduino a tabletem, notebookem nebo jiným Bluetooth zařízením - Bluetooth modul HC-05, který může fungovat jako master (vyhledává Bluetooth zařízení a inicializuje komunikaci) i slave (slave zařízení) ).

Technické vlastnosti modulu HC05

  • Bluetooth čip: HC-05 (BC417143)
  • Rádiový frekvenční rozsah: 2,4 - 2,48 GHz
  • Vysílací výkon: 0,25–2,5 mW
  • Citlivost: –80 dBm
  • Napájecí napětí: 3,3–5 V
  • Spotřeba proudu: 50 mA
  • Dosah: až 10 metrů
  • Rozhraní: sériový port
  • Režimy: master, slave
  • Skladovací teplota: –40…85 °C
  • Rozsah provozních teplot: –25…75 °C
  • Rozměry: 27 x 13 x 2,2 mm

Spojení

Senzor má 6 standardních kolíků 2,54 mm:

  • VCC - (napájení 3,6 – 6 V);
  • GND - (zem).
  • Rozhraní TXD, RXD - UART;
  • STATE - indikátor stavu;
  • KLÍČ - kontakt pro vstup do programovacího režimu.

Modul se konfiguruje v programovacím režimu odesíláním AT příkazů přes sériový port. Chcete-li vstoupit do programovacího režimu, musíte na kontakt KEY přivést signál vysoké úrovně. Na některých modulech není pin KEY a místo toho je pin EN:

  • CZ - zapnutí/vypnutí modulu;


V tomto případě, abyste mohli vstoupit do programovacího režimu, musíte na pin 34 použít signál vysoké úrovně:


Pro modul k Deska Arduino použijeme sériový port ze strany Software Arduino UART. Schéma zapojení na obrázku:


Měli byste dostat něco jako následující:


Programování modulu Bluetooth HC05

Modul se konfiguruje v programovacím režimu odesíláním AT příkazů přes sériový port. Připojme modul HC05 k desce Arduino podle schématu zapojení na obrázku 5. Přiveďte 3,3V na pin KEY modulu (nebo pin 34 desky). Budeme odesílat AT příkazy z monitoru sériového portu Arduino IDE. Nahrajeme do Arduina skicu z výpisu 1. Budeme potřebovat knihovnu Arduino SoftwareSerial. Rychlost modulu UART v programovacím režimu je 38400 baudů, ale může se lišit, v tomto případě by měla být zvolena.

Zahrnout SoftwareSerial mySerial(2, 3); // zadejte piny rx a tx void setup() ( pinMode(2,INPUT); pinMode(3,OUTPUT); Serial.begin(9600); mySerial.begin(38400); Serial.println("start prg" ) ; ) void loop() ( if (mySerial.available()) ( char c = mySerial.read(); // čtení ze softwarového portu Serial.print(c); // zápis na hardwarový port ) if ( Serial .available()) ( char c = Serial.read(); // čtení z hardwarového portu mySerial.write(c); // zápis na softwarový port ) )

Po stažení náčrtu otevřete monitor sériového portu Arduino IDE a začněte odesílat AT příkazy:


Seznam základních AT příkazů:

  • AT - testovací příkaz.

Nejsou žádné parametry.

Reakce modulu: OK

  • AT+VERZE? - získat verzi firmwaru modulu.

Nejsou žádné parametry.

Odpověď modulu: +VERSION:

Kde Verze firmwaru modulu Bluetooth.

  • AT+RESET - resetování nastavení.

Nejsou žádné parametry.

Reakce modulu: OK

  • AT+ORGL - nastavení vlastního nastavení modulu.

Nejsou žádné parametry.

Reakce modulu: OK

  • AT+ADDR? - získat adresu modulu.

Nejsou žádné parametry.

Odpověď modulu: +ADDR:

Kde Adresa modulu Bluetooth NAP: UAP: LAP.

  • AT+NAME? - získat název modulu.

Nejsou žádné parametry.

Odpověď modulu: +NAME:

Kde Název modulu Bluetooth.

  • AT+NAME= Nastavte nový název modulu.

Parametr: Název modulu Bluetooth.

Odpověď modulu: +NAME:

OK (nebo FAIL)

  • AT+PSWD? - získat PIN kód pro přístup k modulu Bluetooth.

Nejsou žádné parametry.

Odezva modulu: + PSWD:

Kde Kolík. Výchozí hodnota je 1234.

  • AT+PSWD= Nastavte přístupový kód pro modul Bluetooth.

Parametr: Přístupový kód modulu.

Odpověď modulu: OK (nebo FAIL)

  • AT+CLASS= Nastavte provozní režim modulu Bluetooth.

Parametr: Třída. Dokumentace modulu neuvádí možné hodnoty tento parametr. Standardně je nastavena na 0. Pokud hodláte modul používat v master režimu, není třeba hodnotu měnit. Pokud modul používáte v režimu slave, s hodnotou parametru rovnou 0, je neviditelný pro zařízení s provozním systém Android. Pro viditelnost musíte nastavit hodnotu parametru na 7936.

Reakce modulu: OK

  • AT+CLASS? - získat třídu modulu.

Nejsou žádné parametry.

Odezva modulu: +CLASS:

Kde Třída modulu.

  • AT+IAC - získejte přístupový kód k požadavku GIAC (General Inquire Access Code).

Různé fyzické komunikační kanály používané v procesu navazování spojení mají různé přístupové kódy kanálu. V pollingových kanálech, s výjimkou vyhrazených, se pro všechna zařízení používá stejný obecný dotazovací přístupový kód.

Nejsou žádné parametry.

Odezva modulu: + IAC:

Kde Vyžádejte si přístupový kód.

  • AT+IAC= Nastavte přístupový kód požadavku.

Parametr: Vyžádejte si přístupový kód. Výchozí hodnota je 9e8b33.

Odpověď modulu: OK (nebo FAIL)

  • AT+ROLE? - získat provozní režim modulu.

Nejsou žádné parametry.

Odezva modulu: +ROLE:

Kde Provozní režim modulu Bluetooth:

  • 0 - otrok. V tomto režimu se může k modulu připojit další master;
  • 1 - mistr. V tomto režimu se modul může sám připojit k libovolnému zařízení Bluetooth;
  • 2 - slave-smyčka. Modul odešle zpět všechny bajty, které mu byly zaslány.
  • AT+ROLE= Nastavte provozní režim modulu Bluetooth.

Parametr: Provozní režim modulu Bluetooth:

  • 0 - otrok;
  • 1 - mistr;
  • 2 - otrok-

Reakce modulu: OK

  • AT+UART= ,,Nainstalujte modul pro sériový port.

Možnosti:

  • Stop bit:
  • 0 - ne;
  • 1 - ano;
  • Paritní bit:
  • 0 - ne;
  • 1 - ano.

Odpověď modulu: OK (nebo FAIL).

  • AT+UART? - získat parametry výměny modulu.

Nejsou žádné parametry.

Odezva modulu: +UART: ,,

  • přenosová rychlost (9600,19200,38400,57600,115200);
  • Stop bit;
  • Paritní bit.
  • AT+CMODE= Nastavte režim připojení modulu Bluetooth.

Parametr:

  • 2 - režim slave-loop.

Reakce modulu: OK

  • AT+CMODE? - získat režim připojení modulu.

Nejsou žádné parametry.

Odpověď modulu: +CMODE:

Kde Režim připojení modulu Bluetooth:

  • 0 - modul se může připojit pouze k zařízení Bluetooth určenému příkazem AT+BIND;
  • 1 - modul lze připojit k jakémukoli zařízení Bluetooth;
  • 2 - režim slave-loop.
  • AT+INQM= ,,Nastavte možnosti pro vyžádání hledání zařízení Bluetooth.

Možnosti:

  • :
  • 0 - standardní režim požadavku;
  • 1 - požadavek v režimu RSSI;
  • Maximální počet zařízení odpovídajících na požadavek;
  • Časový limit čekání (1–48: 1,28 s až 61,44 s).

Odpověď modulu: OK (nebo FAIL).

  • AT+INQM? - získat parametry pro vyžádání vyhledávání zařízení Bluetooth.

Nejsou žádné parametry.

Odezva modulu: +UART: ,,

  • AT+INQ - spusťte vyhledávání zařízení Bluetooth.

Nejsou žádné parametry.

Odpověď modulu je seznam nalezených zařízení.

  • AT+BIND= Propojte modul Bluetooth s jiným modulem.

Odpověď modulu: OK (nebo FAIL).

  • AT+BIND? - získat adresu zařízení spojeného s modulem Bluetooth.

Nejsou žádné parametry.

Odpověď modulu: Adresa zařízení spojeného s modulem Bluetooth.

  • AT+FSAD=

    Odpověď modulu: OK (nebo FAIL).

    • AT+RMSAD=

      Odpověď modulu: OK (nebo FAIL).

      • AT+RMAAD - vymaže seznam autorizovaných zařízení pro náš Bluetooth modul.

      Odpověď modulu: OK (nebo FAIL).

      • AT+LINK= Připojte se k zařízení Bluetooth.

      Parametr: Adresa zařízení Bluetooth.

      Odpověď modulu: OK (nebo FAIL).

      Kompletní seznam AT příkazů naleznete.

      Příklad použití

      Uvažujme příklad příjmu dat o vlhkosti a teplotě vzduchu ze senzoru DHT11 připojeného k Arduinu na zařízení Android (telefon, smartphone, tablet). Arduino přijímá data ze senzoru DHT11 každých 10 sekund a odesílá je přes modul HC05 do zařízení Android.

      Budeme potřebovat následující díly:

      • Deska Arduino
      • prototypová deska
      • Senzor DHT11
      • Bluetooth modul HC05
      • propojovací dráty
      • Android telefon nebo tablet

      Sestavíme obvod znázorněný na obrázku:


      Dostaneme:


      Nahrajte náčrt na desku Arduino (viz níže) - přijímání dat o vlhkosti a teplotě ze senzoru DHT11 a odesílání dat na sériový port (hardware) prostřednictvím modulu HC05 na zařízení Android.

      H" // konstanty #define DHTPIN 8 // pin pro připojení DATA kontaktu #define DHTTYPE DHT11 // senzor DHT 11 #define INTERVAL_GET_DATA 2000 // interval měření, ms // vytvoření instance objektu DHT DHT dht(DHTPIN, DHTTYPE); // proměnná pro interval měření unsigned long millis_int1=0; int pos=0; // včetně knihovny SoftwareSerial.h #include SoftwareSerial mySerial(2, 3); // zadejte piny rx a tx void setup() ( Serial.begin(9600); // spusťte sériový port mySerial.begin(9600); dht.begin(); // spusťte DHT Serial.println("start prg "); ) void loop() ( if(millis()-millis_int1 >= INTERVAL_GET_DATA) ( pos=1-pos; if(pos==0) ​​​​( // získávání údajů o vlhkosti z DHT11 int vlhkost = dht.readHumidity (); // výstup na monitor sériového portu Serial.print("humidity=");Serial.println(vlhkost); mySerial.print("H=");mySerial.println(vlhkost); ) else ( // získávání údajů o vlhkosti z DHT11 int temp = dht.readTemperature(); // výstup na monitor sériového portu Serial.print("temperature=");Serial.println(temp); mySerial.print("T=");mySerial .println(temp) ; ) // začátek intervalu počítání millis_int1=millis(); ) )

      Zkontrolujme na zařízení Android příjem dat odeslaných Arduinem přes bluetooth modul HC05. Nainstalujme program Bluetooth Terminal na zařízení Android. V programu navážeme spojení s modulem HC05:


      A pozorujeme příjem dat přicházejících z Arduina prostřednictvím modulu HC05:


      A výstup dat na monitor sériového portu Arduino IDE:


      Často kladené otázky FAQ

      1. Modul nereaguje na AT příkazy
      • Zkontrolujte, zda je modul správně připojen;
      • Zkontrolujte připojení pinu KEY modulu (nebo pinu 34) na 3,3V;
      • Zkontrolujte nastavení sériového portu (rychlost 38400 baudů, možná pro moduly různých výrobců vypnout).
      2. Zařízení Android se nemůže připojit k modulu bluetoothHC05
      • Zkontrolujte připojení modulu k napájení, LED na modulu by měla rychle blikat (vyhledávání sítě);
      • Zkontrolujte, zda je KEY pin modulu (nebo pin 34) odpojen od 3,3V;
      • Nastavte roli slave pomocí AT příkazů (AT+ROLE=0).
      3. Data nejsou přenášena dozařízení Android
      • Zkontrolujte, zda je modul bluetooth HC05 správně připojen k desce Arduino;
      • Přenosová rychlost Data Arduina a HC05 se musí shodovat s nastavením pomocí příkazu AT+UART AT.