Menu

Email: SakulRaider@seznam.cz

Servery:

Dnes návštěv: 300  On-line: 2

Elektronika

Bezdrátové moduly

 - Modul HC-12 (433MHz)

 

​​

Jedná se o bezdrátový modul v pásmu 433MHz, určený k bezdrátovému přenosu dat, ze sériové linky UART. Pomocí dvou těchto modulů je tak možné vytvořit most mezi dvěma aplikacemi komunikujícími po sériové lince UART, využívající RX a TX kanál. Výhodou tohoto modulu je možnost připojení externí antény (ANT1) nebo malé spirálové, jež je dodávána spolu s modulem (ANT2).

Technické specifikace

Napájecí napětí 3,3-6V
Odběr proudu 80uA-22mA (dle zvoleného režimu provozu FU)
Komunikace UART (RX, TX)
Podporované rychlosti 1200-115200bps
Výkon -1 až 20dBm (nastavitelné v 8mi úrovních)
Dosah až 500m
Konfigurace pomocí AT příkazů

Použití

Hlavním použitím těchto modulů je náhrada kabelového sériového rozhraní za bezdrátové. Pokud se používá komunikace pouze jedním směrem (vysílá jen jeden modul) je možno definovat hned několik modulů, které budou vysílaná data přijímat. To se může hodit, pokud máme například někde rozmístěny 2 displeje a chce na nich zobrazovat stejná data z jednoho zdroje.

Připojení BT do aplikace

​​

Na obrázku je znázorněno připojení k desce Arduino UNO a v horní části obrázku pak blokové schéma propojení dvou aplikací (Arduino desek) pomocí dvou modulů HC-12. I zde si můžete všimnout, že všechny datové linky TX a RX jsou vždy mezi modulem a aplikací překříženy.

Konfigurace

Tento modul můžeme konfigurovat pomocí AT příkazů. Do AT módu lze vstoupit dvěma způsoby:
1. Za běžného provozu přivedeme na vývod 5 (CON / SET) logickou úroveň L. V tomto režimu s námi bude modul stále komunikovat rychlostí, jež má aktuálně nastavenu. V AT režimu bude po dobu, co bude na vývodu 5 (CON / SET) logická úroveň L. Jakmile tento vstup přejde do úrovně H, přejde modul do běžného provozu.
2. Vypneme napájení modulu, následně přivedeme na vývod 5 (CON / SET) logickou úroveň L a opět zapneme napájení modulu. Tím se dostaneme také do AT módu s tím rozdílem, že bude nastavena komunikační rychlost UARTu na 9600bps bez ohledu s jakou rychlostí komunikuje modul v běžném provozu. V AT režimu bude po dobu, co bude na vývodu 5 (CON / SET) logická úroveň L. Jakmile tento vstup přejde do úrovně H, přejde modul do běžného provozu. Následné přivedení logické úrovně L je stejné jako dle bodu 1.
Z toho plyne, že je možno připojením vývodu 5 (CON / SET) k Vaší aplikaci tento modul za běhu překonfigurovávat, dle momentální potřeby. Pokud není vývod 5 (CON / SET) nikam připojen je na něm automaticky logická úroveň H, což je běžný provoz.
Pokud jsme tedy v režimu AT příkazů je třeba se s modulem spojit pomocí nějakého sériového terminálu. 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ů. Takže poté co jsme propojily 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 9600 (použijeme tedy 2 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 modulem spojení, odešleme pouze samotné AT. Následně by nám měl modul odpovědět OK, případně příkaz AT+RX, který nám vypíše aktuální konfiguraci modulu. Viz následující obrázek:

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 ). Carriage Return označovaný jako CR (konec řádku) a znak Linefeed označovaný jako LF (nový řádek). Proto pokud používáte jiný terminál je nutné si pohlídat, aby jste v jeho nastavení měli zapnuté automatické vkládání těchto znaků, případně je dopsat ručně.

Jednotlivé AT příkazy

Opět tu nebudu vypisovat naprosto všechny podporované příkazy, ale pouze ty důležité pro konfiguraci a zprovoznění modulu. Další příkazy můžete najít v Datasheetu od tohoto modulu.

AT+RX – Tento příkaz vypíše aktuální nastavení modulu (viz obrázek SST). Taktéž lze zadat příkazy pro vypsání konkrétního parametru. To se provede zapsáním příkazu AT+Ry, kde místo y vyplníme písmeno daného parametru, který chceme zobrazit. Například C-kanál, P-vysílací výkon, B-přenosová rychlost, F-režim provozu. Tedy například AT+RB nám vrátí komunikační rychlost UARTu.

AT+C – Tímto příkazem se nastavuje kanál. V ukázce z SST, jeto příkaz AT+C001. Vždy se kanál udává jako 3 místné číslo. V tomto případě je to kanál 1. Zde je rozhodně dobré vědět, že v České Republice je povoleno v tomto pásmu vysílat pouze na kanálech 1-4. Ostatní kanály jsou zakázané! Pro úplnost rozsah kanálů je 001-127. Tyto kanály musí být na všech modulech, jež spolu mají bezdrátově komunikovat stejné.

AT+B – Tímto příkazem se nastavuje komunikační rychlost. V ukázce z SST, jeto příkaz AT+B19200. Tedy komunikační rychlost 19200bps. Další podporované rychlosti jsou: 1200, 2400, 4800, 9600, 19200, 38400, 57600 a 115200.

AT+ FU – Tímto příkazem se nastavuje režim provozu, který má vliv na spotřebu proudu, maximální přenosovou rychlost a celkové chování sériového rozhraní. V ukázce z SST, jeto příkaz AT+FU3. Význam jednotlivých režimů:
FU1 – Toto je režim, se střední spotřebou a lze nastavit všechny rychlosti komunikace. Přibližná spotřeba je 4mA.
FU2 – Toto je režim s nízkou spotřebou (80uA). Nicméně díky tomu má přenos extrémně vysokou latenci až 500ms. Taktéž je podporována pouze rychlost 1200, 2400 a 4800. Při tomto nastavení je také nutné hlídat buffer, a nemělo by být odesíláno najednou více jak 60 bytů (packet). Taktéž mezi jednotlivými pakety by měla být minimální prodleva 1s. Tento režim je vhodný pro bateriově napájené aplikace s nízkým datovým tokem, jako jsou například různé teploměry.
FU3 – Toto je režim s nejnižší latencí kolem 10ms. To je vykoupeno největší spotřebou kolem 16mA. Zato jsou podporovány všechny dostupné komunikační rychlosti. Ideální pro nasazení v aplikacích s velkým datovým tokem oběma směry.
FU4 – Tento režim je zaměřen na co největší dosah. Podporuje pouze jednu komunikační rychlost a to 1200bps. Maximální velikost jednoho packetu je 60 bytů (lepší je ještě méně) a prodleva mezi vysíláním jednotlivých paketů by měla být větší jak 2s. Při tomto režimu lze teoreticky dosáhnout vzdálenosti až 1,8Km.
Doporučuji na všech modulech jež spolu mají komunikovat nastavit stejný režim FU.

AT+P – Tímto příkazem se nastavuje vysílací výkon. V ukázce z SST, jeto příkaz AT+P1. To odpovídá -1dBm (0,8mW), což je také maximální výkon povolený v tomto pásmu s tímto provozem v České Republice! (ještě by možná šlo použít: 2dBm/1,6mW)  Pro úplnost zde jsou všechny možnosti: -1dBm(1),  2dBm(2), 5dBm(3), 8dBm(4), 11dBm(5), 14dBm(6), 17dBm(7) a 20dBm(8).

AT+V – Tímto příkazem je možno zjistit verzi Firmware. Můj modul má v2.3.

Konfigurace pomocí aplikace

Konfigurace přes terminál je celkem nepohodlná a je tu tedy ještě jedna možnost a to použití aplikace určené přímo pro konfiguraci tohoto modulu. Ukázka této aplikace je na následujícím obrázku:

Při spuštění této aplikace budeme dotázáni, na kterém Com portu je modul připojen. Po jeho vybrání a potvrzení se nám již objeví toto okno. Zde můžeme konfigurovat přenosovou rychlost včetně nastavení Parity a StopBitů. Dále režim provozu FU. Pravá část se věnuje bezdrátové části, kde v horní části volíme vysílací výkon, následuje kanál, na kterém bude modul vysílat. Pro uložení hodnot do modulu slouží tlačítko send config. Pro zobrazení aktuálních hodnot slouží tlačítko check configuration.

Závěrem

Tento modul je výbornou volbou pro přenos dat a díky možnosti režimu IO je ideální i pro jednoduchá dálková ovládání. Taktéž je vhodný pro přenos dat z jedné aplikace do více podřízených aplikací (například do několika displejů). Taktéž velké plus vidím v možnosti připojit externí anténu do připraveného konektoru přímo na desce modulu. Na druhou stranu je nutné si pohlídat parametry, které v modulu měníme (vysílací výkon a kanál), které jsou v České Republice značně omezeny. Ale i tak si myslím, že tento modul najde svoje uplatnění v mnoha aplikacích.

​​

DOKUMENTACE

Závěrem si zde můžete stáhnout veškerou dokumentaci.
DOWNLOAD
Diskusi pro tuto konstrukci najdete ZDE

Kde koupit

 

Zajímavé odkazy

VO-R/10/05.2014-3 Využívání vymezených rádiových kmitočtů
Simple Serial Terminal Stažení terminálu Flajzar
Aliexpress Kde koupit HC-12
Mcu store USB/TTL Kde koupit USB/TTL převodník
Carriage Return WikipediE – zakončovaní znaky
Linefeed WikipediE – zakončovaní znaky

 

Můj Youtube kanál:

fb-large.png, 5,8kB
Copyright © Resi-Design 2017 www.resi-design.cz.
TOPlist