Jedná se o velmi oblíbený Bluetooth (BT) modul, který ke své činnosti potřebuje pouze napájecí napětí 3,3 V. Běžně se prodává již připájený k destičce jen o malinko větší než je sám BT modul. Na této destičce bývá stabilizátor napětí, signalizační LED a několik odporů a diod, které slouží pro přizpůsobení napěťových úrovní tak, aby bylo možné BT modul připojit k zařízením používajícím 5V logiku, 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ěma Arduiny. Tím se HC-05 liší od modulu HC-06. Modul HC-05 podporuje režim MASTER i SLAVE, což je základní předpoklad pro propojení dvou BT modulů. V dalším textu se budu věnovat hlavně modulům HC-05 osazeným na desce adaptéru.

Technické specifikace

Napájecí napětí3,6 až 6 V
Odběr proudu30 až 40 mA, přibližně 10 mA po spárování
KomunikaceUART, linky RX a TX
Podporované rychlosti4800 až 1382400 bps
VýkonClass 2, přibližně 4 dBm / 2,5 mW
Dosahpřibližně 10 m
Konfiguracepomocí AT příkazů
Režim provozuMaster / Slave
BT specifikacev2.0 + EDR

Použití

Použití tohoto BT modulu je zcela univerzální. Je možné ho použít k propojení vlastní aplikace a například PC nebo mobilního telefonu v režimu SLAVE. Případně je možné 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 nebo jiných aplikací. V režimu MASTER je možné navázat spojení také například s BT GPS. Možností a variant je opravdu mnoho.

Připojení BT do aplikace

Zapojení Bluetooth modulu HC-05 k Arduino Nano
Příklad připojení modulu HC-05 k desce Arduino Nano.

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, která má výstup UARTu s datovými vodiči TX a RX. Při tomto propojení je nutné datové vodiče mezi BT modulem a aplikací překřížit, stejně jak je patrné z obrázku výše.

Na lince TX z Arduina je naznačen odporový dělič 1 kΩ (680 Ω) a 2 kΩ (1 kΩ). Ten se ve většině případů nemusí použít, ale u desek Arduino, kde je BT modul připojován na sdílený UART s USB převodníkem, ho rozhodně doporučuji. Bez tohoto děliče může docházet k chybám v přenosu dat.

Konfigurace

Konfigurace tohoto BT modulu se provádí pomocí AT příkazů. 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,3 V na tento vstup dojde k přepnutí BT modulu do režimu konfigurace.

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 jeho restartu. UART bude v tomto režimu nastaven na komunikační rychlost 38400 bps. Toto je doporučený způsob pro jednorázové naprogramování.

2. způsob – BT modul je již v provozu a následně aktivujeme vstup KEY. Modul přejde do konfiguračního režimu bez toho, aby byla změněna rychlost UARTu. Ta zůstane na hodnotě, na které BT komunikuje v běžném provozu.

Důležité je také vědět, že modul lze konfigurovat pouze z UART rozhraní. Není tedy možné se s ním spojit z počítače bezdrátově. Je nutné použít USB/TTL převodník připojený k BT modulu přes datové linky TX a RX. Tyto linky je samozřejmě také nutné překřížit.

Schéma konfigurace modulu HC-05 přes USB TTL převodník
Zapojení modulu HC-05 pro konfiguraci přes USB/TTL převodník.

Pokud máme takto propojený BT modul a USB/TTL převodník, připojíme převodník k PC. Nyní potřebujeme sériový terminál, do kterého budeme zapisovat AT příkazy. Terminálů existuje velké množství. Pro ukázku lze použít například SimpleSerialTerminal, který je jednoduchý, přehledný a umožňuje předdefinovat až šest samostatných příkazů.

Po propojení modulu s převodníkem a připojení převodníku k PC je potřeba zjistit COM port, pod kterým se USB/TTL převodník přihlásil do systému. To zjistíme ve Správci zařízení v části Porty (COM a LPT).

Výběr COM portu ve Windows
COM port USB/TTL převodníku ve Správci zařízení.

V ukázce je použit COM port 4, ale každý systém ho může mít jiný. Tento port je nutné nastavit v terminálu a přenosovou rychlost nastavit na 38400 bps, pokud používáme první způsob konfigurace. Poté otevřeme komunikaci na daném portu a můžeme začít posílat AT příkazy.

Pro ověření spojení odešleme samotný příkaz AT. Modul by měl odpovědět OK. To, že je BT modul v konfiguračním režimu, jde poznat také podle velmi pomalého blikání LED, přibližně jednou za dvě sekundy.

Ukázka sériového terminálu s AT příkazy
Ukázka sériového terminálu s předvyplněnými AT příkazy.

Při zadávání AT příkazů je dobré vědět, že za příkaz se musí vložit ukončovací znaky CR a LF. Carriage Return se označuje jako CR a Line Feed jako LF. Pokud používáte jiný terminál, je nutné pohlídat, aby v jeho nastavení bylo zapnuté automatické vkládání těchto znaků, případně je dopsat ručně.

Jednotlivé AT příkazy

Nebudu zde vypisovat úplně všechny podporované AT příkazy, ale zaměřím se na ty nejdůležitější, bez kterých se při základním nastavení obvykle neobejdeme.

AT+UART=<rychlost>,<stop>,<parita> mění konfiguraci komunikační linky UART. K dispozici jsou rychlosti 4800, 9600, 19200, 38400, 57600, 115200, 23400, 460800, 921600 a 1382400 bps. Parametr stop bitů má hodnotu 0 pro 1 stop bit a 1 pro 2 stop bity. Parita má hodnotu 0 bez parity, 1 lichá parita a 2 sudá parita. Příklad nastavení rychlosti 19200 bps, 1 stop bit a bez parity: AT+UART=19200,0,0.

AT+UART? vyčte aktuální konfiguraci UARTu. Otazník lze podobně použít i u dalších příkazů pro zjištění aktuálního nastavení.

AT+NAME=<jméno> nastaví jméno BT modulu. Příklad: AT+NAME=Sakul-BT. Jméno je platné až po restartu modulu.

AT+PSWD=<pin> nastaví párovací PIN modulu. Zadává se čtyřmístné číslo. Výchozí PIN modulu je 1234. Příklad: AT+PSWD=1111. PIN je platný okamžitě po zapsání.

AT+ROLE=<režim> volí, zda má BT modul pracovat v režimu SLAVE (0), MASTER (1) nebo SLAVE-LOOP (2). Příklad AT+ROLE=1 nastaví režim MASTER.

AT+CMODE=<režim> nastaví režim párování. Platí pouze pro modul nastavený jako MASTER. Hodnota 0 povolí párování pouze s konkrétním zařízením definovaným přes AT+BIND. Hodnota 1 povolí spárování s jakýmkoli zařízením v režimu SLAVE, pokud souhlasí PIN. Hodnota 2 povoluje párování se zařízením v režimu SLAVE-LOOP. Příklad: AT+CMODE=1.

AT+BIND=<adresa> definuje konkrétní zařízení, se kterým bude možné se spárovat. Používá se MAC adresa zařízení. Pokud má zařízení MAC adresu 00:18:96:D1:48:D7, zapíše se například jako AT+BIND=0018,96,d148d7. Pro běžné použití často stačí párování podle PINu, ale volba zabezpečení záleží na konkrétní aplikaci.

AT+INIT provede inicializaci SPP záznamů.

Závěrem

Modul HC-05 se hodí nejen pro spojení vlastní aplikace s PC nebo mobilním telefonem, ale také pro spojení dvou BT modulů mezi sebou. K tomu je možné použít jeden modul HC-05 v režimu MASTER a druhý například HC-06 nebo HC-05 v režimu SLAVE.

Modul lze sehnat i jako samostatný díl bez adaptační destičky. Tato verze je vhodná pro nasazení přímo ve vlastní aplikaci. Je však nutné dát pozor na maximální napájecí napětí, které nesmí překročit 4 V, doporučené je přibližně 3 až 3,7 V. Také logika UARTu je 3,3 V, takže při komunikaci s procesory s 5V logikou je nutné převést signály na správné úrovně.

Samostatný Bluetooth modul HC-05
Samostatný modul HC-05 bez adaptační destičky.

Pro pokusy a běžné nasazení v prototypech je výhodnější použít modul osazený na malé destičce, která obsahuje stabilizátor napětí a konektory pro snadné připojení. Nevýhodou modulu je poměrně krátký dosah kolem 10 m, takže při návrhu aplikace je nutné s tím počítat.

Dokumentace

Ke stažení je připraven balík dokumentace k modulu HC-05.

Zajímavé odkazy