CNXSoft: This is a guest post by Florian Robert (1technophile) of the OpenMQTTGateway project about using a 433 MHz LoRa transceiver on an ESP32 board for home automation, specifically to talk to 433 MHz sensors
Everyone is talking about Matter, Bluetooth, Zigbee, and Zwave, but before these complex communication technologies, we had one simple, robust one that our sensors and devices used to leverage: 433MHz. It may be too simplistic to talk about 433 MHz as a technology as there are different and various usages of this frequency. You can find it being used in numerous devices around your home, from your outdoor temperature sensors, and security sensors to the tire pressure sensors in your car.
If we want to be specific, we can talk about the different radio frequencies (433 MHz, 915MHz, 868MHz, 315MHz, or 350MHz) and signal modulations OOK, ASK, FSK that we encounter behind the keyword 433MHz. But as most of the sensors made and currently on the market are leveraging 433MHz, let’s keep this keyword.
I wrote an article in 2017 to compare the different 433MHz gateways available for decoding 433 MHz sensors, and I wanted to share an update. Especially about the significant progress made by NortherMan54 who wrote an Arduino library to make a 433MHz LoRa Transceiver-based ESP32 board work with regular 433 MHz sensors found on the market. This gives end users a simple off-the-shelf solution for receiving these signals without having to use a soldering iron and making a circuit.
You can now read OOK (On–off keying) sensors with a LILYGO LoRa32 V2.1 or a HELTEC LORA32 v2. These boards are based on the Espressif ESP32 chip, which most of you are already aware of, but they also include a Semtech SX127x Transceiver and an SSD1306 OLED display making it very easy to implement a receiver for 433 MHz sensor signals.
But that’s not all, and what makes his work amazing is the use of the RTL_433 and the RadioLib project together on a little board like this, and with it, create the ability to receive signals from a long list of OOK sensors. The RTL_433 library would typically be used with an RTL SDR (Software defined Radio) attached to a computer or a Raspberry Pi. With this solution, you can have a 433-to-MQTT gateway for less than 30$ on a tiny microcontroller without the need for a USB SDR dongle. This opens many doors regarding 433 MHz sensor readings with one device, including weather stations, doors, PIR, TPMS, temperature, and BBQ sensors.
Once the sensors’ data is decoded, you need to visualize it, so the solution is integrated into the OpenMQTTGateway project. You can web upload the program to the ESP32 board by selecting heltec-rtl_433 or lilygo-rtl_433, then configure the gateway through its web portal, and you will see the information in your MQTT broker. You can now process them with Node-Red, Home Assistant, OpenHAB, Domoticz, and all the IoT platforms supporting MQTT.
Of course, this is not sufficient to process and display the data, so if you don’t want to configure your OpenHAB or Home Assistant manually, we added support for Auto Discovery. It means that OpenMQTTGateway will automatically add devices and list their parameters.
This makes it easy to add the sensors to your dashboards. Finally, NortherMan54 has also added support for displaying the sensor’s data on the onboard display, so you can have a quick look at the data.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
9 Replies to “433 MHz is not dead! Using an ESP32 board with LoRa module to talk to 433 MHz sensors”
Someone’s bound to utilize esp32-c6 and lora to build a really cheap gateway for “all your wsn needs”. just add a 4g module
The project of 1technophile is awesome !
I worked previously on a RFlink port for esp32 : https://github.com/cpainchaud/RFLink32
It works also with esp32 lora modules and two version of the rflink decoding is implemented : one based on RFlink and the other on rtl-433 with different results (rflink use less memory if I remember well)
FYI rtl_433 can already interface a MQTT broker. There is also a ready-made addon for Home Assistant.
All you need is a USB port and a RTL-SDR USB dongle. I’ve been using 2 for years (to avoid hoping frequencies with a single dongle).
OOK is a terrible encoding “protocol” very susceptible to impulse noise and multipath interference. Most (all?) of these cheap 443 sensors aren’t part of mesh networks and don’t implement any type of frequency diversity. All of this results in unreliable communications in the very very low power ISM band.
Yes, and? This is a gateway that lets you use *existing* sensors and bring them into a more modern system. Are you suggesting this isn’t useful, but instead someone should redesign all the existing sensors to make them more expensive, but to use a more robust modulation system?
Best of luck with that!
Very interested with this idea at first.
No much knowledge on these OOK or radio comm.
I have use CC1101(SX1276 is not much better as I heard) to receive data from my weather sensor, the range is terrible. It’s better to use cheap superheterodyne with better range.
Any idea to improve its range?
Boy I gotta learn this stuff!
FYI, the Heltec v2.1 has been deprecated and the newer V3 does not support OOK/ASK and therefore OMQTTG (https://github.com/1technophile/OpenMQTTGateway/issues/1436#issuecomment-1416757970)