Obsah:

Bezdrátová komunikace pomocí levných RF modulů 433 MHz a obrazových mikrokontrolérů. Část 2: 4 kroky (s obrázky)
Bezdrátová komunikace pomocí levných RF modulů 433 MHz a obrazových mikrokontrolérů. Část 2: 4 kroky (s obrázky)

Video: Bezdrátová komunikace pomocí levných RF modulů 433 MHz a obrazových mikrokontrolérů. Část 2: 4 kroky (s obrázky)

Video: Bezdrátová komunikace pomocí levných RF modulů 433 MHz a obrazových mikrokontrolérů. Část 2: 4 kroky (s obrázky)
Video: Přehled a konfigurace modulu EBYTE LoRa 2024, Listopad
Anonim
Bezdrátová komunikace pomocí levných RF modulů 433 MHz a obrazových mikrokontrolérů. Část 2
Bezdrátová komunikace pomocí levných RF modulů 433 MHz a obrazových mikrokontrolérů. Část 2

V první části tohoto pokynu jsem demonstroval, jak naprogramovat PIC12F1822 pomocí kompilátoru MPLAB IDE a XC8, aby bezdrátově odeslal jednoduchý řetězec pomocí levných modulů TX/RX 433 MHz.

Modul přijímače byl připojen pomocí kabelového adaptéru USB k UART TTL k počítači a přijatá data byla zobrazena na zařízení RealTerm. Komunikace probíhala rychlostí 1200 baudů a maximální dosah byl asi 20 metrů skrz stěny. Moje testy ukázaly, že v aplikacích, kde není třeba vysokého datového toku a dlouhého dosahu, a pro nepřetržitý přenos, si tyto moduly vedly výjimečně dobře.

Druhá část tohoto projektu ukazuje, jak na přijímač přidat mikrokontrolér PIC16F887 a LCD modul 16 × 2 znaků. Navíc na vysílači následuje jednoduchý protokol s přidáním několika bajtů předzesilovače. Tyto bajty jsou nezbytné k tomu, aby modul RX upravil svůj zisk před získáním skutečného užitečného zatížení. Na straně přijímače je PIC zodpovědný za získání a ověření dat, která jsou zobrazena na LCD obrazovce.

Krok 1: Úpravy vysílače

Úpravy vysílače
Úpravy vysílače
Úpravy vysílače
Úpravy vysílače
Úpravy vysílače
Úpravy vysílače

V první části vysílač vysílal jednoduchý řetězec každých několik ms pomocí osmi datových bitů, startu a stop bitu na 1200 bitů za sekundu. Vzhledem k tomu, že přenos byl téměř nepřetržitý, přijímač neměl problémy s nastavením zisku na přijatá data. Ve druhé části je firmware upraven tak, aby byl přenos prováděn každých 2,3 sekundy. Toho je dosaženo pomocí přerušení hlídacího časovače (nastaveného na 2,3 s) k probuzení mikrokontroléru, který je mezi každým přenosem uveden do režimu spánku.

Aby měl přijímač čas na doladění zisku, odešle se před skutečnými daty několik bajtů preambule s krátkými časy LO „(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa)“. Užitečné zatížení je pak indikováno počátečním '&' a zastavovacím '*' bajtem.

Proto je jednoduchý protokol popsán následovně:

(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa) & Hello InstWorld!*

Mezi V+ a GND RF modulu je navíc přidán 10uF oddělovací tantalový kondenzátor, aby se odstranilo zvlnění způsobené rozšiřujícím modulem DC-DC.

Přenosová rychlost zůstala stejná, ale moje testy ukázaly, že při 2400 baudech byl přenos účinný.

Krok 2: Úpravy přijímače: Přidání LCD PIC16F887 a HD44780

Úpravy přijímače: Přidání LCD PIC16F887 a HD44780
Úpravy přijímače: Přidání LCD PIC16F887 a HD44780
Úpravy přijímače: Přidání LCD PIC16F887 a HD44780
Úpravy přijímače: Přidání LCD PIC16F887 a HD44780
Úpravy přijímače: Přidání LCD PIC16F887 a HD44780
Úpravy přijímače: Přidání LCD PIC16F887 a HD44780

Design přijímače byl založen na PIC16F887, ale můžete použít jiný PIC s malými úpravami. V mém projektu jsem použil tento 40 pin μC, protože pro budoucí projekty založené na tomto designu budu potřebovat další piny. Výstup RF modulu je připojen k pinu UART rx, zatímco 16x2 znakový lcd (HD44780) je připojen přes PORTB piny b2-b7 pro zobrazení přijatých dat.

Stejně jako v části 1 jsou přijatá data také zobrazena na RealTerm. Toho je dosaženo pomocí UART tx pin, který je připojen přes USB k UART TTL kabelovému adaptéru k PC.

Když se podíváme do firmwaru, když dojde k přerušení UART, program zkontroluje, zda je přijatý bajt počátečním bajtem ('&'). Pokud ano, začne zaznamenávat následující bajty, dokud není zachycen stop byte ('*'). Jakmile je získána celá věta a pokud odpovídá jednoduchému protokolu popsanému dříve, je odeslána na obrazovku LCD a také na port UART tx.

Před přijetím počátečního bajtu přijímač již upravil svůj zisk pomocí předchozích bajtů preambule. Ty jsou rozhodující pro hladký provoz přijímače. Provádí se jednoduchá kontrola chyb při překročení a rámování, jedná se však pouze o základní implementaci zpracování chyb UART.

Pokud jde o hardware, pro přijímač je zapotřebí několik částí:

1 x PIC16F887

1 x HD44780

1 x modul RF Rx 433 MHz

1 x 10 μF tantalový kondenzátor (oddělení)

1 x 10 K trimr (jas písma LCD)

1 x 220 Ω odpor 1/4 W (podsvícení LCD)

1 x 1 KΩ 1/4 W

1 x anténa 433 MHz, 3dbi

V praxi přijímač fungoval výjimečně dobře v dosahu až 20 metrů přes stěny.

Krok 3: Několik referencí…

Kromě oficiálního webu Microschip je na webu mnoho blogů, které poskytují tipy ohledně programování PIC a řešení problémů. Velmi užitečné mi přišlo následující:

www.romanblack.com/

0xee.net/

www.ibrahimlabs.com/

picforum.ric323.com/

Krok 4: Závěry a budoucí práce

Doufám, že vám tento návod pomohl pochopit, jak používat RF moduly a mikrokontroléry Pic. Svůj firmware můžete upravit podle vlastních potřeb a zahrnout CRC a šifrování. Pokud chcete, aby byl váš návrh ještě propracovanější, můžete využít technologii Keeloq společnosti Microschip. V případě, že vaše aplikace potřebuje obousměrná data, budete potřebovat dvojici TX/RX na obou mikrokontrolérech, nebo můžete použít důmyslnější transceiver moduly. Při použití tohoto druhu levných 433 MHz modulů však lze dosáhnout pouze poloviční duplexní komunikace. Kromě toho, aby byla komunikace spolehlivější, budete potřebovat nějakou formu potřesení rukou mezi TX a RX.

Na dalším pokynu vám ukážu praktickou aplikaci, kde je na vysílač přidán snímač prostředí s teplotou, barometrickým tlakem a vlhkostí. Zde budou přenášená data obsahovat crc a budou mít základní šifrování.

Senzor bude používat port i2c na PIC12F1822, zatímco implementace vysílače i přijímače bude odhalena pomocí schémat a souborů PCB. Děkuji za přečtení!

Doporučuje: