Bezdrátové moduly
Jedná se o velmi oblíbený Bluetooth (BT) modul, který ke své činnosti potřebuje pouze napájecí napětí 3,3V (na obrázku výše je to zelená PCB). Běžně se prodává již připájený k destičce jen o malinko větší než je sám BT modul, na které je stabilizátor napětí, signalizační LED a několik odporů a diod, které vesměs slouží pro přizpůsobení napěťových úrovní, tak aby bylo možno BT připojit k zařízením používajícím 5V logiku. Tedy například k Arduinu a jiným platformám. Pomocí těchto modulů je také možné vytvořit BT most mezi dvěma zařízeními (například mezi dvěmi Arduiny). Tím se liší od BT modulu HC-06. Je to díky tomu, že modul HC-05 podporuje jak režim MASTER, tak i SLAVE, což je základní předpoklad pro propojení dvou BT modulů. V dalším textu se budu věnovat výhradně BT modulům HC-05 osazeným na desce adaptéru (na fotce výše je to modrá PCB).
Napájecí napětí | 3,6-6V |
Odběr proudu | 30-40mA (10mA když je zpárovaný) |
Komunikace | UART (RX, TX) |
Podporované rychlosti | 4800-1382400bps |
Výkon | Class 2 (cca 4dBm / 2,5mW) |
Dosah | cca 10m |
Konfigurace | pomocí AT příkazů |
Režim provozu | Master / Slave |
BT specifikace | v2.0 + EDR |
Použití tohoto BT modulu je zcela univerzální a je možno ho použít k propojení Vaší aplikace a například PC nebo mobilního telefonu (MT) v režimu Slave. Případně je možno použít u jednoho modulu režim Master a u druhého Slave a tím je vzájemně propojit. Můžeme tak dosáhnout propojení například dvou Arduino desek (aplikací). Také je možno v režimu Master provést spojení s BT GPS. Možností a variant je opravdu mnoho.
Na obrázku je znázorněno připojení k desce Arduino NANO, ale úplně stejným způsobem se BT modul připojí do jakékoli jiné aplikace, jež má výstup UARTu s datovými vodiči TX a RX. Při tomto propojení je samozřejmě nutné datové vodiče mezi BT modulem a aplikací překřížit, stejně jak je to patrné z obrázku výše. Taktéž je na obrázku na lince TX z Arduina naznačen odporový dělič 1K (680R) a 2K (1K). Ten se ve většině případů nemusí použít, ale zrovna u desek Arduino, kde je BT modul připojován na sdílený UART s USB převodníkem to rozhodně doporučuji. Bez tohoto děliče může jinak docházet k chybám v přenosu dat.
Konfiguraci tohoto BT modulu provádíme pomocí AT příkazů. Přičemž existují dva způsoby jak tuto konfiguraci provádět. Každý HC-05 modul má vyveden jeden vývod většinou označovaný jako KEY, EN nebo WakeUP. Přivedením kladného napětí 3,3V na tento vstup dojde k přepnutí BT modulu do režimu konfigurace. Podle toho, kdy tento vstup aktivujeme, přejde modul do různých režimů:
1. Způsob – Vstup KEY se aktivuje současně s připojením BT modulu k napájení. V tomto případě přejde BT modul do konfiguračního režimu, který bude trvat až do doby jeho restartu. V tomto režimu bude jeho UART nastaven na komunikační rychlost 38400bps. Toto je doporučený způsob v případě jednorázového naprogramování.
2. Způsob – BT modul je již v provozu a následně aktivujeme vstup KEY. V tomto režimu přejde BT modul do konfiguračního režimu, bez toho, aby byla změněna rychlost UARTu. Ta zůstane na hodnotě jakou BT komunikuje v běžném provozu.
Důležité je také vědět, že modul se dá konfigurovat pouze z UART rozhraní. Není tedy možné se sním spojit z počítače bezdrátově, ale je nutné použít nějaký USB/TTL převodník, připojený k BT modulu přes datové linky TX a RX. Tyto linky je samozřejmě taktéž nutné překřížit. Propojení s PC krásně ilustruje následující obrázek.
Pokud máme takto propojený BT modul a USB/TTL převodník, propojíme převodník s PC. Nyní potřebujeme nějaký sériový terminál kam budeme zapisovat AT příkazy. Těchto terminálů existuje nepřeberné množství a pokud nemáte nějaký svůj oblíbený můžete použít například SimpleSerialTerminal od společnosti Flajzar. Tento terminál používám já velice rád neb je jednoduchý a tím pádem velice přehledný. Taktéž je možno si předdefinovat až 6 samostatných příkazů. Já tedy použiji pro ukázku právě tento terminál. Takže poté co jsme propojily BT modul s převodníkem USB/TTL a ten následně připojili k PC (samozřejmě jsme předtím nainstalovali ovladače pro převodník) můžeme spustit SimpleSerialTerminal (SST). Nyní potřebujeme vědět Com port, pod kterým se nám do systému přihlásil USB/TTL převodník. To zjistíme ve správci zařízení. Do toho se dostaneme tak, že klikneme pravím myšítkem na Tento počítač a vybereme Vlastnosti. V otevřeném okně následně klikneme na Správce zařízení. Otevře se nám další okno, kde rozklikneme řádek Porty (COM a LPT). Tam bychom měli vidět všechny dostupné Com porty a jejich čísla. Viz následující obrázek:
V našem případě je to ComPort 4 (ten bude mít každý jiný!). Tento port musíme tedy v SST nastavit. Taktéž nastavíme přenosovou rychlost na 38400 (použijeme tedy 1 způsob konfigurace). Poté můžeme kliknout na tlačítko Open, kterým otevřeme komunikaci na daném portu. V tuto chvíli již můžeme začít posílat AT příkazy. Pro ověření, že máme s BT modulem spojení odešleme pouze samotné AT. Následně by nám měl BT modul odpovědět OK. To, že je BT modul v konfiguračním režimu, jde poznat i podle velmi pomalého blikání LED (2s). Ukázka z SST terminálu je na následujícím obrázku:
Na obrázku z SST jsou zároveň vidět již před vyplněné další příkazy (F1-F6). Při zadávání těchto příkazů je taktéž dobré vědět, že za příkaz se musí vložit ukončovací znaky (v tomto terminálu to jsou
Nebudu zde vypisovat zcela všechny podporované AT příkazy, ale zaměřím se jen na ty nejdůležitější, bez kterých se nedá obejít. Seznam všech AT příkazů můžete najít v dokumentaci.
AT+UART=<Param>,<Param2>,<Param3>
Param2 určuje počet stop bitů 0 nebo 1. Přičemž 0 znamená - 1Stop bit a 1 znamená - 2Stop bity.
Param3 určuje paritu 0,1,2. Přičemž 0 znamená – bez parity, 1 znamená – lichá parita a 2 znamená – sudá parita.
V ukázce z SST je nastavena rychlost na 19200bps, 1Stop bit, bez parity: AT+UART=19200,0,0
Změna komunikační rychlosti je platná pouze pro běžný provoz. Pokud je BT modul v režimu konfigurace dle způsobu 1, nebude rychlost měněna neb je fixně nastavena na hodnotu 38400.
AT+UART? – Tímto příkazem můžeme z BT modulu vyčíst aktuální konfiguraci. Pokud použijeme za jakýkoli příkaz ? dostaneme aktuální nastavení daného parametru. Proto to již pro další příkazy nebudu uvádět.
AT+NAME= - Tímto příkazem nastavíme jméno BT modulu. V ukázce SST je to AT+NAME=Sakul-BT
AT+PSWD=<Param> - Tímto příkazem se nastaví párovací pin BT modulu. Zadává se 4 místné číslo. Defaultní pin BT modulu je 1234. V ukázce SST je to AT+PSWD=1111
AT+ROLE=<Param> - Tímto příkazem se volí zda má BT modul pracovat v režimu SLAVE (0), MASTER (1) nebo SLAVE-LOPP (2). V ukázce z SST je to AT+ROLE=1
AT+CMODE=<Param> - Tímto příkazem se nastaví režim párování. Je platný pouze pro BT nastavený v režimu MASTER. (0) spárování je možné pouze s konkrétním zařízením s předem definovanou MAC adresou (tu je nutno definovat v AT+BIND=). (1) spárování je možné s jakýmkoli zařízením v režimu SLAVE. Samozřejmě musí souhlasit pin kód. (2) spárovaní je možné se zařízením v režimu SLAVE-LOPP. V ukázce z SST je nastaveno párování s jakýmkoli zařízením AT+CMODE=1
AT+BIND=<Param> - Tímto příkazem se definuje konkrétní zařízení, se kterým bude možno se spárovat. K tomu se používá MAC adresa, kterou má každé zařízení na světě jedinečnou. Takže pokud chceme spárovat se zařízením jež má MAC adresu: 00:18:96:D1:48:D7 je třeba to zapsat do příkazu následovně: AT+BIND=0018,96,d148d7
AT+INIT – Tímto příkazem se provede inicializace SPP záznamů.
No a to by byl takový výcuc příkazů, bez kterých se nedá obejít. Samozřejmě jich je k dispozici mnohem více, ale to si již každý může prostudovat v dokumentaci k tomuto BT modulu.
Tento modul se tedy hodí nejen pro spojení Vaší aplikace s PC a MT, ale i pro spojení dvou BT modulů mezi sebou. K tomu je možno použít jeden modul HC-05 v režimu MASTER a druhý například HC-06 nebo HC-05 v režimu SLAVE . Jeho cena se pohybuje v ČR kolem 250Kč, ale v zahraničí se nechá včetně poštovného sehnat za cenu kolem 150Kč, což je velice pěkná cena. Taktéž ho lze sehnat jen jako samostatný modul viz následující obrázek:
Tato verze je vhodná pro nasazení přímo ve Vaší aplikaci. Je třeba však si dát pozor na maximální napájecí napětí, které nesmí překročit 4V a doporučené je 3-3,7V. Taktéž logika UARTu je 3,3V a tak při komunikaci s procesory s 5V logikou je nutné signály převést na správné úrovně. Pěkně je to popsáno v Datasheetu. Pro pokusy a běžné nasazení v prototypech je výhodnější použít tyto BT moduly osazené na malé destičce (úvodní foto) vybavené stabilizátorem napětí a konektory pro snadné připojení. Bohužel nevýhodou je poměrně krátký dosah někde kolem 10m v otevřeném prostoru a nemožnost připojit snadno externí anténu.
Závěrem si zde můžete stáhnout veškerou dokumentaci.
DOWNLOAD
Diskusi pro tuto konstrukci najdete ZDE.
RoboDoupě | Programování HC-05 modulů |
Simple Serial Terminal | Stažení terminálu Flajzar |
Mcu store HC-05 | Kde koupit modul HC-05 |
Mcu store USB/TTL | Kde koupit USB/TTL převodník |
Carriage Return | WikipediE – zakončovaní znaky |
Linefeed | WikipediE – zakončovaní znaky |