RF433Mhz-es vevő és WiFi Bridge (DIY)
2019. február 21. írta: eNeS

RF433Mhz-es vevő és WiFi Bridge (DIY)

Amint már kifejtettem korábban a Vezeték nélküli kommunikációs formák témakörben, nem vagyok az egyszerű 433Mhz-es RF kommunikáció nagy híve. Már csak azért sem mert egy sűrűn lakott, nagy interferenciával bíró lakótelepen meglehetősen megbízhatatlan működésű lehet, de ritkán lakott területen is elég, ha a szomszéd olyan kütyüt vesz, ami véletlenül hasonló jelsorozatokat állít elő, mint az általunk használt eszköz.
Aztán nyomozhatjuk, hogy vajon miért kapcsolt fel a világítás, mikor nem is voltunk otthon... Elvileg az adóteljesítmény nemzetközileg szabályozott, így kertes házban, vastag falaink biztonságában azért elképzelhető, hogy bizonyos mértékben üzembiztosan tudunk használni némely RF megoldást. Illetve ha 868Mhz-es ugrókódos távirányítónk van a kapunkhoz, az természetesen nagyságrendekkel megbízhatóbb.
Azt már csak az ismétlés kedvéért írom le ismét, hogy ezek ugye egy irányban kommunikáló eszközök, tehát ha kiküldünk egy RF parancsot, nem tudhatjuk biztosan, hogy az célba ért. Ennyit az előszóról.

rf433.png

Tagadhatatlan előnye ezeknek az RF eszközöknek az ára: pl 1000Ft nagyságrendben beszerezhető RF nyitásérzékelő, 2000Ft-os nagyságrendben RF mozgásérzékelő, illetve RF távirányítók nevetségesen alacsony árakon. Illetve a fogyasztásuk meglehetősen kicsi, így hosszú elem élettartam várható tőlük - legalábbis adó oldalon. Persze a fenti korlátokat is tartsuk szem előtt, mielőtt nagy mennyiséget berendelünk ilyenekből!

t1_433mhz_controller.jpg

Érintőlegesen a Világítás vezérlése és a Sonoff T1 EU leírások kapcsán már foglalkoztam RF eszközökkel, és szándékomban áll egy RF nyitás+mozgásérzékelő próbaszettet összeállítani, valamint RF hőmérőt is fogok tesztelni, ám kezdetnek a vételi oldalt veszem górcső alá.

A Sonoff RF Bridge és a Broadlink RM Pro két elég népszerű (kész) termék az RF eszközök jeleinek WiFi-n történő továbbítására és feldolgozására. A Broadlink kicsit talán drágább, és tudomásom szerint nemigen lehet lecserélni a firmware-ét, bár kis ügyességgel azért Domoticz-hoz is csatolható akár, és IR is van benne. A Sonoff olcsóbb, de csak RF-et tud, a firmware a szokásnak megfelelően lecserélhető akár ESPurna akár Tasmotára, viszont a beépített dekódere korlátozza az általa dekódolni képes adatok hosszát és kódolását - talán nem mondok meglepő dolgot azzal, hogy elsősorban a saját RF termékeik csatolására fejlesztették ki? Ezt megkerülve a Tasmota lehetővé teszi a beépített EFM8BB1 dekóder chip megkerülését, és így a központi ESP chip tudja dekódolni többféle protokollból a bejövő rádiós jeleket az RCSwitch könyvtár segítségével.
Egy darabig morfondíroztam, hogy rendelek próbára egy RF Bridge-et, de aztán beütött az isteni szikra: miért vennék 3-4ezer Ft-ért egy Sonoff RF Bridge-et, ha ezt egy saját 800Ft-os ESP8266 D1 mini klón + egy 400 Ft-os RF vevővel is meg tudom oldani? Ha minden a terveknek megfelelően halad, az előbb említett két Bridge tesztelésével örökre adós maradok, mivel nem lesz rá szükségem...

Az RF vevőből hosszas kutakodás után három fajtát szereztem be, természetesen ennél jóval több létezik, melyek tesztelését más, vállalkozó kedvű barkácsolókra hagyom.
Nem akarom magamat a rádiótechnika avatott szakemberének beállítani, mert ez távol áll a valóságtól, egyszerűen néhány tapasztalatot írok le. A következő vevők "egyszerűek" olyan értelemben, hogy három csatlakozásuk van, a tápfeszültség, GND és adatláb. (ne zavarjon meg senkit, ha esetleg négy tüskét lát rajtuk, a két középső általában ugyanaz az adatláb)
Frekvenciájuk előre behangolt, fix. (pl 433,92Mhz) Az adatlábon egy külső vezérlőnek (ez lesz az ESP8266) kell figyelni a bejövő jeleket és dekódolni, amihez elég pontos időzítés szükséges, mivel mikroszekundumokról beszélünk.

1/ MX-05V 433MHZ RF Receiver 5V

rf_mx05v.png

Ha rákeresünk a 433MHz-re és ár szerint rendezzük a találatokat e-bayen, jó eséllyel ez a típus jön szembe, ráadásul párban az adó részével. Egy elhalt Arduino projektemhez rendeltem, aminél működött is kis távolságra, de a leírásához híven csak 5V-ról üzemeltetve. Mivel ugyebár az ESP8266 3.3V-os szintekkel dolgozik, így ennek a hatótávolságáról nem tudok érdemben nyilatkozni, de sok pozitívumot nem olvastam róla sehol. Aki ESP/Raspberry-vel akarja használni, nem feltétlenül ezt érdemes választania.

2/ 433MHz Wireless Receiver SYN480R ASK/OOK Wireless Receiver Module 3.3-5.5V

syn480r.png

Ezt az eszközt már célirányosan kerestem, képes 3.3V jelszinttel és táppal dolgozni, és aki figyelmesen olvasta a Sonoff T1 EU-val kapcsolatos cikkemet, láthatta, hogy abban egy SYN470R vevő kapott helyet, illetve plusz adalék: a Sonoff RF Bridge-ben is ez a chip felelős a vételért.
A SYN480R egy nagyon hasonló tudású, valamivel olcsóbb modul. Nem is kellett csalódnom benne, két falon keresztül beltérben egy RF433-as nyomógombbal 20-25méter hatótávot sikerült elérnem, 3.3V-ról tápolva, egy rá forrasztott kis spirálantennával.

3/ Superheterodyne RXB12 DC3.3-5V Ask Rf Receiver Module 433Mhz

rf_rxb12.png

Az RXB12-re különböző internetes fórumokon nézelődve akadtam, és mivel szintén 3.3V-barát ezért rendeltem belőle próbára. És nem bántam meg, csak ajánlani tudom mindenkinek. Ugyanott, ugyanazokkal a feltételekkel és eszközökkel, mint az előző SYN480R esetében az RXB12 több mint dupla távról, 50-60 méterről tudta 3-4 falon keresztül venni ugyanannak az RF433-as csengőnyomónak a jelét, ugyanakkora spirálantennával.

Természetesen a konkrét távolságok mindig a helyi zavaroktól, falvastagságoktól és az adóteljesítménytől függenek leginkább, de ugyanazzal az adóval próbálva úgy érzem elég meggyőző a teszt. Amennyiben még nagyobb távolságra lenne szükség, egyszerű 17,3cm hosszú réz vezetékkel helyettesítve az antennát elméletileg maximalizálni lehet a vételi minőséget. Aki arra gondol, hogy majd 5V-ról járatja a táprészüket és az adatlábra szintillesztőt, vagy feszültségosztó ellenállás tesz, le kell törjem a lelkesedését: az adatláb annyira "gyenge" hogy mind a szintillesztőben található passzív elemek, mind a feszültségosztó ellenállás részei, de még a vezérlő pullup-pulldown ellenállásait sem tudja leküzdeni, ha véletlenül beállítjuk ezek valamelyikét. Csak normál input-pinre  képes adatokat továbbítani. De nekem a fenti táv bőven elegendő.

A bekötésük nem túl bonyolult:

ESP8266 RF vevő
3V3 VDD/VCC
D5 (vagy más szabad digitális pin) DAT
GND GND

Ez így néz ki bekötve:

rfbridge.jpg

Nézzük a próbára használt szoftvert:

Talán sokkolóan hat, hogy nem a korábban felvezetett Tasmotát használom, de bevallom, bár szeretem, egyszerű kapcsolókhoz kiváló a Tasmota, és feltehetőleg be tudnám állítani a Sonoff RF Bridge üzemmódot egy egyszerű D1 Mini + RF vevő kombóra, ám én a bonyolultabb dolgokhoz még mindig jobban szeretem az ESPEasy-t.

Nosza, fogtam is egy aránylag stabil tavaly decemberi forrást, beletettem a PluginPlayground-ról a P111 RF plugint, ami ugyanazt az RCSwitch könyvtárat használja, mint a fent említett Tasmota, és lefordítottam.

Érdeklődők kedvéért íme a bináris (4MB flash-hez): ESPEasy.4M.2018dec.zip

Amennyiben a Domoticz eszközöknél a már korábban leírt módon ("Virtuális érzékelők létrehozása") készítünk egy TEXT/SZÖVEG típusú szenzort pl RFIN néven, ennek az IDX számát (51 e példában) megadjuk ESPEasy-ben az "RF Receiver - MX-05V alike receiver" típusú eszköznek, valamint beállítjuk a GPIO-t, amire kötöttük az RF vevő adatlábát, valahogy így:

rf_espeasy.jpg

Akkor az ESPEasy Log-ban máris valami ilyesmiket fogunk kapni, ahogy 433MHz-es, feldolgozható jelek érkeznek be, hatótávon belülről:

RF Code Recieved: 4593709
EVENT: rf0#RF=4593709

Látható, hogy az eszköznév eseményt is generál, amire alapozva tudnánk tetszőleges helyi szabályokat (eseménykezelőt-Rules) is írni az ESPEasy-ben, de most csak simán átküldjük MQTT-n keresztül az 51-es IDX-ű Domoticz eszközre.
A Domoticz oldalon én egy Device alapú LUA szkripttel oldom meg a további feldolgozást, tetszőleges műveleteket, pl rádió be/kikapcs, világítás be/kikapcs, stb. írhatunk az adott számú kapcsolóhoz. (van rádiós nyitásérzékelő ami két különböző kódot ad ha kinyitották, illetve becsukták, amikre praktikusan külön szabályokat tudunk így írni, esetleg egy másik, virtuális kapcsoló állapotát is követhetjük így, a lehetőségeknek csak a fantáziánk és tudásunk szab határt - ha csak egy kód jön, akkor időzítve válthatunk pl zárt állapotra is, bár ez nem túl biztos módszer)

Valahogy így néz ki egy alapfokú feldolgozása (Domoticz oldal) az MQTT-n bejövő RF adatoknak:

commandArray = {}

for deviceName,deviceValue in pairs(devicechanged) do
    if (deviceName=='RFIN') then
      if otherdevices_svalues['RFIN']=="4593709" then
       print("Megnyomtak egy radios gombot!")
      end
    end
end

return commandArray

Mi ez, ha nem egy RF-WiFi Bridge? :) PoorMan's RF Bridge...
Jó, természetesen ez csak egyirányú, fogadja az RF eszközök jeleit, vezérléshez adóra van szükség, az már egy másik cikk témája lesz.

Apró adalék: ugyanez az RCSwitch P111-es plugin immár az RPIEasy-ben is megtalálható, így Raspberry Pi-vel is használható mindez ESP8266 helyett, ugyanúgy 3.3V-os szintekkel dolgozik.

A bejegyzés trackback címe:

https://bitekmindenhol.blog.hu/api/trackback/id/tr4914641826

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

artur60 2019.03.18. 03:57:20

Szia!
A vevők meddig bírják elemmel?
Érdemesebb fix tápról működtetni?

eNeS 2019.03.18. 18:39:38

@artur60: az ESP8266 relatív nagy energiaigényű eszköz, kb 1 napot húz ki 1 db elemről folyamatos WiFi kapcsolattal, így én minden ESP eszközömet fix táppal látom el.