Na FreeHostingu Endora běžà desĂtky tisĂc webĹŻ. PĹ™idejte se ještÄ› dnes!
VytvoĹ™it web zdarmaNa FreeHostingu Endora běžà desĂtky tisĂc webĹŻ. PĹ™idejte se ještÄ› dnes!
VytvoĹ™it web zdarmaOVLÁDÁNÍ
LED NEBO ZÁSUVKY S MODULEM CC1101 433.92Mhz
Vlastimil
Vágner
Po prvních pokusech s moduly
CC1101 433.92Mhz jsem se po čase rozhodl si vyzkoušet napsat program na
jednoduché ovládání led diody tak aby jeden modul pravidelně vysílal hodnoty
které se na druhém modulu vyhodnotí a tento pak bude pravidelně blikat led diodou.
Po tomto programu a jeho odzkoušení jsem se rozhodl si napsat další program na
zjištění číselných hodnot tlačítek na dálkovém ovladači pro bezdrátové zásuvky
433Mhz, a tyto pak ovládat dalším napsaným programem na zapínání a vypínání
zásuvky. Pro ovládání jsem použil Arduino Nano které jsem pro testování osadil
do Arduino IO shieldu, pro komunikaci mezi Arduino a modulem CC1101 jsem použit
8 – kanálový obousměrný převodník logických úrovní (5V – 3.3V) a pro napájení
celé sestavy jsem použil vyrobený napájecí zdroj s výstupním napětím 8V
pro napájení Arduino Nano, 5V a 3.3V pro napájení převodníku a modulu
CC1101. Uvedené přípravky rozšiřují zapojení uveřejněná v [1].
POPIS
MODULU CC1101 433.92Mhz
Uvedený modul má několik závažných nedostatků
a to jsou optická absence že modul je zapnut, dále není optická signalizace komunikace
mezi modulem a řídícím mikrokontrolérem po sběrnici SPI, jediná detekce že
funguje komunikace SPI mezi modulem a Arduino je pomocí programu když se při
startu programu v setupu provede dotaz na registr testující komunikaci SPI a
výsledek se zobrazí na monitoru. To že modul využívá čip, který komunikuje pomocí
registrů a na vše je možné se dotazovat pouze programově, bez uvedených
možností signalizace z něho dělá z mého pohledu „hloupý modul“. Další
důležitá věc je napájení modulu CC1101
a to je 3.3V
včetně datových linek které jsou také v tomto rozpětí A TOTO NAPĚTÍ JAK U
NAPÁJENÍ TAK DATOVÝCH LINEK SE NESMÍ NIKDY PŘEKROČIT viz [2]. Čip
komunikuje rozhraním SPI což také zabírá více IO linek u použitého mikrokontroléru
a modul se spíše hodí pro komunikaci s čidly nebo něco zapnout/vypnout.
Nikdy nezapínejte modul bez připojené antény většinou dojde ke zničení
koncového stupně bez viditelné známky. Pro napájení Arduino, obousměrného převodníku
logických úrovní a modulu CC1101 je vždy lepší v hotových modulech v
provozu i při testování modulů a programů používat zdroje mimo desky Arduino
tyto nemusí snést odběr modulu, dost často bývají zarušeny a hlavně pokud je
v programu použita funkce „ ELECHOUE_CC1101.setPa(parametr)“ tato umožňuje
zvýšit výstupní výkon a hlavně proudový odběr což zdroj 3.3 na desce Arduino
zcela dobře přetíží ne-li zničí.
POPIS
ZDROJE PRO NAPÁJENÍ ELEKTRONIKY A MODULU CC1101
Zdroj je vyrobený na univerzální vrtané
destičce a propojení součástek je provedeny pomocí drátků, napájení vyrobeného
zdroje bylo při testování z regulovatelného zdroje 230VAC/4V – 12VDC/2A
v terénu je možné používat dobíjecí články o výstupním napětí do 9VDC. Na
stabilizaci napětí na hodnotu 5VDC je použit stabilizátor 7805 jehož vstup a
výstup je blokován keramickými kondenzátory osazení nutno dodržet jinak dochází
k rozkmitání stabilizátoru a na
stabilizaci napětí z 5V na 3.3V je použit step.down typu TPS62A02 4.5 – 5.5V
- 3.3V/2A. Schéma zapojení zdroje je na Obr.č.01., na Obr.č.02 je základní schéma
celkového propojení elektroniky. Pozor pokud je ARDUINO NAPÁJENO Z PROGRAMOVACÍHO KABELU
PŘI TESTOVÁNÍ PROGRAMU NESMÍ BÝT SOUČASNĚ NAPÁJENO I ZE ZDROJE PŘIPOJENÉHO DO NAPÁJECÍHO
JACKU 5.5/2.1! NA ARDUINO NEBO ARDUINO IO SHIELDU. Na zdroji je
signalizace napětí 5V pomocí červené nízkopříkonové led diody a výstupní napětí
3,3V je signalizováno nízkopříkonovou žlutou led diodou.


Pro ovládání led diody (blikání) je
použito zapojení podle Obr.č.03 a Obr.č.04 přípravky pracují bez připojeného
počítače tak že signalizace zda modul komunikuje po sběrnici SPI s Arduino
je na straně přijímače pomocí žluté led diody D4 připojené na pinD4 a dioda D3
pro blikání je připojena na pinD3. Pro blikání je použito červené led diody D3
obě led diody jsou nízkopříkonové o průměru 3mm. Na přípravku vysílače je pro
signalizaci komunikace SPI použito žluté led diody připojené na pinD3.



Dálkový ovladač pro zásuvku musí při každém
stisknutí stejného tlačítka například zapnuto posílat vždy stejné číslo, ty
dálkové ovladače které při každém stisknutí stejného tlačítka posílají jiné
číslo se v programu na ovládání zásuvky NEDAJÍ POUŽÍT. A pouze se programem
na načítání hodnoty čísla dá zjistit že jsou funkční.
PROGRAMY
Pro počítač jsou uloženy
v podadresáři POČÍTAČ jsou celkem dva jde o sériové terminály jeden
umožňuje zobrazovat delší zprávy na řádku stejně tak i odesílat, oba programy
používají shodnou knihovnu která se musí nacházet ve stejném adresáři jako
uvedené programy. K programům je v adresáři i popis pro zadávaní
parametrů. V podadresáři ARDUINO je celkem pět programů, program test.SPI.INO
ten pouze otestuje zda modul CC1101 komunikuje pomocí SPI s Arduino Nano,
další dva programy jsou pro ovládání led diody LED_PŘIJÍMAČ.INO,
LED_VYSÍLAČ.INO, a další dva programy jsou na načítání čísla tlačítka a na
ovládání zásuvky ČÍSLO_ZÁSUVKY.INO, OVLÁDÁNÍ-ZÁSUVKY.INO. Hodnoty zadávané v setupu jednoho
modulu musí být shodné s hodnotami v setupu druhého modulu VYJMA
PŘÍKAZU U MODULU PŘIJÍMAČE KDY TENTO MUSÍ BÝT FUNKCÍ ELECHOUSE_CC1101_SetRx(); nastaven
na příjem a V SETUPU U MODULU VYSÍLAČE FUNKCÍ ELECHOUSE_CC1101_SetTx(); nastaven vysílání.
Pro nastavení aby moduly komunikovali pouze spolu se používá funkce ELECHOUSE_CC1101_SetSyncWord(hodnota,
hodnota); pro program během testování byla použita jedna z mnoha knihoven
pro CC1101 „ELECHOUSE_CC1101_SRC_DRV“. Důležitá věc v případě že máme
v programu v setupu test zda je modul aktivní a na konci je příkaz
while a inicializace modulu bude až po příkazu while tak se program automaticky
zastaví. Doporučuji vždy mít v setupu před funkcí testování vloženo aktivování
čipu. Zde popsané programy používají dvě knihovny ELECHOUSE_CC1101_SRC_DRV a RCSwitch.
Programy si může každý upravovat dle potřeby.
TEST PROGRAMU
NA ZJIŠTĚNÍ ČÍSEL TLAČÍTEK
Provedeme propojení Arduino IO SHIELDU
s převodníkem napěťových úrovní a propojení modulu CC1101
s převodníkem napěťových úrovní podle Obr.č.05. Do ARDUINO IO SHIELDU
ZASUNEME Arduino s nahraným programem číslo_zásuvky.ino na počítači
spustíme sériový terminál nastavíme parametry, propojíme Arduino programovacím
kabelem s počítačem a stiskneme na dálkovém ovladači libovolné tlačítko.
Na monitoru se pak zobrazí číselná hodnota podle typu ovladače v mém případě
jeden ovladač zásuvek dává vždy při stisku stejného tlačítka vždy stejnou číselnou
hodnotu. Po ukončení testování uzavřeme sériový port a odpojíme kabel od počítače.
TEST
PROGRAMU NA OVLÁDÁNÍ ZÁSUVKY
Provedeme stejné propojení Arduino IO SHIELDU s převodníkem
napěťových úrovní a propojení modulu CC1101 s převodníkem napěťových
úrovní podle Obr.č.05. Do ARDUINO IO SHIELDU ZASUNEME Arduino s nahraným
programem ovládání_zásuvky.ino na počítači spustíme sériový terminál nastavíme
parametry, propojíme Arduino programovacím kabelem s počítačem a na
monitoru se bude pravidelně v zadaných intervalech zobrazovat „zásuvka
zapnuta, zásuvka vypnuta. Do ovládané zásuvky stačí připojit například lampičku
pro kontrolu.
TEST
PROGRAMŮ NA OVLÁDÁNÍ LED DIODY
Do
jednoho Arduino Nano nahrajeme program led_přijímač.ino a do druhého Arduino
Nano program led_vysílač.ino poté Arduino osadíme do ARDUINO IO SHIELDŮ
vzdálíme modul přijímače a vysílače od sebe tak 2m a připojíme napájení. Poté
již bude pravidelně led dioda blikat, zde se nepoužívá ke kontrole počítač a
kontrola komunikace SPI je pouze pomocí led diod na každém modulu.

vyrobený zdroj připojený k Arduino IO
shieldu

vyrobený
zdroj připojený k Arduino IO shieldu

celkové zapojení modulu přijímače vlevo a
vysílače vpravo před testováním

dálkový ovladač zásuvky se zásuvkou

typ ovladače : MODEL 20298
Použité prameny :
[1] www.mojeelektronika.mzf.cz různá
zapojení a programy
[2] technická
dokumentace k modulu CC1101
Bližší informace :
Přeji hodně zábavy
s uvedenými moduly CC1101.