Obsah:

Bezdrôtová komunikácia pomocou lacných RF modulov 433 MHz a obrazových mikrokontrolérov. Časť 2: 4 kroky (s obrázkami)
Bezdrôtová komunikácia pomocou lacných RF modulov 433 MHz a obrazových mikrokontrolérov. Časť 2: 4 kroky (s obrázkami)

Video: Bezdrôtová komunikácia pomocou lacných RF modulov 433 MHz a obrazových mikrokontrolérov. Časť 2: 4 kroky (s obrázkami)

Video: Bezdrôtová komunikácia pomocou lacných RF modulov 433 MHz a obrazových mikrokontrolérov. Časť 2: 4 kroky (s obrázkami)
Video: New Jersey's Disturbing Monolith Secrete (The Rise and Fall of Tuckerton Tower) 2024, Júl
Anonim
Bezdrôtová komunikácia pomocou lacných RF modulov 433 MHz a obrazových mikrokontrolérov. Časť 2
Bezdrôtová komunikácia pomocou lacných RF modulov 433 MHz a obrazových mikrokontrolérov. Časť 2

V prvej časti tohto návodu som ukázal, ako naprogramovať PIC12F1822 pomocou prekladača MPLAB IDE a XC8, aby sa bezdrôtový odosielal jednoduchý reťazec pomocou lacných modulov TX/RX 433 MHz.

Prijímací modul bol pripojený prostredníctvom káblového adaptéra USB k UART TTL k počítaču a prijaté údaje boli zobrazené na zariadení RealTerm. Komunikácia prebiehala pri 1200 baudoch a maximálny dosiahnutý dosah bol asi 20 metrov cez steny. Moje testy ukázali, že v aplikáciách, kde nie je potrebný vysoký dátový tok a veľký dosah, a pri nepretržitom prenose tieto moduly fungujú mimoriadne dobre.

Druhá časť tohto projektu ukazuje, ako pridať na prijímač mikrokontrolér PIC16F887 a 16 -znakový modul LCD. Na vysielači sa navyše dodržiava jednoduchý protokol s pridaním niekoľkých bajtov preambuly. Tieto bajty sú potrebné pre modul RX na úpravu zisku pred získaním skutočného užitočného zaťaženia. Na strane prijímača je PIC zodpovedný za získavanie a overovanie údajov, ktoré sú zobrazené na LCD obrazovke.

Krok 1: Úpravy vysielača

Úpravy vysielača
Úpravy vysielača
Úpravy vysielača
Úpravy vysielača
Úpravy vysielača
Úpravy vysielača

V prvej časti vysielač odosielal jednoduchý reťazec každých niekoľko ms pomocou ôsmich dátových bitov, štartu a stop bitu pri 1200 bitoch za sekundu. Keďže prenos bol takmer nepretržitý, prijímač nemal problémy s nastavením zisku na prijaté údaje. V druhej časti je firmvér upravený tak, aby sa prenos vykonával každých 2,3 sekundy. To sa dosiahne použitím prerušenia časovača strážneho psa (nastaveného na 2,3 s) na prebudenie mikrokontroléra, ktorý je medzi každým prenosom prepnutý do režimu spánku.

Aby mal prijímač čas na doladenie zisku, pred skutočnými údajmi sa odošle niekoľko bajtov preambuly s krátkymi časmi LO "(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa)". Užitočné zaťaženie je potom označené štartovacím & bajtom a**bajtom.

Preto je jednoduchý protokol popísaný nasledovne:

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

Medzi V+ a GND RF modulu je navyše pridaný 10uF oddeľovací tantalový kondenzátor, aby sa zabránilo zvlneniu spôsobenému zosilňovacím modulom DC-DC.

Prenosová rýchlosť zostala rovnaká, ale moje testy ukázali, že aj pri 2 400 baudoch bol prenos účinný.

Krok 2: Úpravy prijímača: Pridanie LCD PIC16F887 a HD44780

Úpravy prijímača: Pridanie LCD PIC16F887 a HD44780
Úpravy prijímača: Pridanie LCD PIC16F887 a HD44780
Úpravy prijímača: Pridanie LCD PIC16F887 a HD44780
Úpravy prijímača: Pridanie LCD PIC16F887 a HD44780
Úpravy prijímača: Pridanie LCD PIC16F887 a HD44780
Úpravy prijímača: Pridanie LCD PIC16F887 a HD44780

Dizajn prijímača bol založený na PIC16F887, ale môžete použiť iný PIC s malými úpravami. V mojom projekte som použil tento 40 pin μC, pretože pre budúce projekty založené na tomto dizajne budem potrebovať ďalšie piny. Výstup RF modulu je pripojený k pinu UART rx, zatiaľ čo 16 x 2 znakový LCD (HD44780) je pripojený cez PORTB piny b2-b7 na zobrazenie prijatých údajov.

Rovnako ako v časti 1 sa prijaté údaje zobrazujú aj na serveri RealTerm. To sa dosiahne použitím kolíka UART tx, ktorý je pripojený pomocou káblového adaptéra USB k UART TTL k počítaču.

Keď sa pozrieme do firmvéru, keď dôjde k prerušeniu UART, program skontroluje, či prijatý bajt je počiatočný bajt ('&'). Ak áno, začne zaznamenávať nasledujúce bajty, kým sa nezachytí stop byte ('*'). Hneď ako je získaná celá veta, a ak vyhovuje predtým popísanému jednoduchému protokolu, je potom odoslaná na obrazovku LCD, ako aj na port UART tx.

Pred prijatím počiatočného bajtu prijímač už upravil svoj zisk pomocou predchádzajúcich bajtov preambuly. Tieto sú rozhodujúce pre hladký chod prijímača. Vykonáva sa jednoduchá kontrola chýb pri prebehu a rámovaní, je to však iba základná implementácia spracovania chýb UART.

Pokiaľ ide o hardvér, pre prijímač je potrebných niekoľko častí:

1 x PIC16F887

1 x HD44780

1 x modul RF Rx 433 MHz

1 x 10 μF tantalový kondenzátor (oddelené)

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

1 x 220 Ω odpor 1/4 W (podsvietenie LCD)

1 x 1 KΩ 1/4 W

1 x anténa 433 MHz, 3dbi

V praxi prijímač fungoval mimoriadne dobre v rozsahu až 20 metrov cez steny.

Krok 3: Niekoľko referencií…

Okrem oficiálnej webovej stránky Microschip je na webe mnoho blogov, ktoré poskytujú tipy na programovanie PIC a riešenie problémov. Nasledujúce informácie sa mi zdajú veľmi užitočné:

www.romanblack.com/

0xee.net/

www.ibrahimlabs.com/

picforum.ric323.com/

Krok 4: Závery a budúca práca

Dúfam, že vám tento návod pomohol pochopiť, ako používať RF moduly a mikrokontroléry Pic. Firmvér si môžete prispôsobiť svojim vlastným potrebám a zahrnúť CRC a šifrovanie. Ak chcete, aby bol váš návrh ešte sofistikovanejší, môžete využiť technológiu Keeloq spoločnosti Microschip. V prípade, že vaša aplikácia potrebuje obojsmerné údaje, budete potrebovať pár TX/RX na oboch mikrokontroléroch alebo môžete použiť sofistikovanejší transceiver. moduly. Použitím tohto druhu lacných modulov 433 MHz je však možné dosiahnuť iba polovičnú duplexnú komunikáciu. Ďalej, aby bola komunikácia spoľahlivejšia, budete potrebovať nejakú formu podávania rúk medzi TX a RX.

Na ďalšom pokyne vám ukážem praktickú aplikáciu, kde je na vysielač pridaný snímač prostredia s teplotou, barometrickým tlakom a vlhkosťou. Tu budú prenášané údaje obsahovať crc a budú mať základné šifrovanie.

Senzor bude používať port i2c na PIC12F1822, zatiaľ čo implementácia vysielača a prijímača bude odhalená prostredníctvom schém a súborov PCB. Ďakujem za prečítanie!

Odporúča: