Weather Station 433 MHz Sensors Node-red Experiments
by marco.sillano in Workshop > Science
2027 Views, 2 Favorites, 0 Comments
Weather Station 433 MHz Sensors Node-red Experiments
Developping interfaces for my project tuyaDAEMON (a node-red IOT framework) I found a problem: how to find a valid connection with node-red for devices using the ISM bands: 433.92 MHz, 868 MHz, 315 MHz, 345 MHz and 915 MHz. Examples of such devices include weather stations, sensors alarm, utility monitor, tire pressure monitor and more. In my case I have a weather station: the "Auriol IAN-114435" offered some time ago by Lidl for € 50 . Good quality/price factor.
I am not an RF expert, here is a summary of my experiments.
Full story at https://github.com/msillano/tuyaDAEMON/wiki/case-study:-433-MHz-weather-station
Exploring
As HW, I used the RTL-SDR, a very cheap USB dongle, around $ 30 with antenna, that can be used as a computer-based radio scanner to receive live radio signals on Pc, Raspberry, Android.
As software there is the brink of choice, see list. I chose SDRsharp (SDR#) due to the presence of a specialized 433 plugin:
- I downloaded "SRD# with Community Plugins" from https://airspy.com/download/ for its easy installation.
- After installing SRD# (see instructions at https://www.rtl-sdr.com/rtl-sdr-quick-start-guide...
- I also installed NET 5.0 SDK from https://dotnet.microsoft.com/download/dotnet/thank-you/sdk-5.0.401-windows-x86-installer
- Then I followed these instructions https://www.rtl-sdr.com/rtl-sdr-quick-start-guide... to install in SRD# the RTL_433 plugin from https://www.rtl-sdr.com/rtl-sdr-quick-start-guide...
- Last I installed the Win driver as indicated in https//www.rtl-sdr.com/getting-the-rtl-sdr-to-work-on-windows-10/. The Zadig.exe file is present in the bin dir of SRD#.
The SDR# screen show the strength of signals.
Standalone
To my surprise the RTL_433 plugin has decoded all the weather devices providing this output in clear text
All three channels of the weather station use the same protocol #16, called 'Alecto V1': see here for protocol details.
Time to use the RTL_SDR standalone, using the rtl_433.exe from https://github.com/merbanan/rtl_433 The following operations were necessary:
- I downloaded the rtl_433-win-msvc-x64-21.12.zip file from https://github.com/merbanan/rtl_433/releases
- I created a directory (d:\usrbin) and added it to the windows PATH (pop-up system properties then environment variables) and unzipped here rtl_433-win-msvc-x64- 21.12.zip.
- Using the RTL_SDR, we can't use the default rtl_433.exe. So I renamed the file "D:\userbin\rtl_433.exe" to "D:\userbin\rtl_433_base.exe" and I make a copy of the file "D:\userbin\rtl_433-rtlsdr.exe" as "D:\userbin\rtl_433.exe".
Now you can test all exe in d:\usrbin simply using a command line terminal (cmd.exe): the dir is in the PATH, so it works from anywhere.
Node-red Driver
I installed the node-red-contrib-rtl_433 then I build a minimal test flow: just with the default settings, it worked the first time: as you can see in the debug pad, it returns all data in an object. Perfect!.
The final drive node-red is a little more complex:
- Uses the RT/AVG filter subflow to everage device data (optional, e.g. every 5 min).
- User runtime configuraton data are grouped for easy access in a Global 433 gateway config node.
- Some useful meteorological functions are implemented in a singleton object context.global.meteoUtils to allow easy reuse in any flow/node. This library can be used in any meteo application.
- If you are receiving signals from other sensors in a stable way, you can extend this '433 gateway' node-red flow to process your data.
Full story at https://github.com/msillano/tuyaDAEMON/wiki/case-study:-433-MHz-weather-station
That's all folks
In the hope that this will help other users, best regards.
m.s.