433 MHz is not dead! Using an ESP32 board with LoRa module to talk to 433 MHz sensors

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.

ESP32 433 MHz

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.

OOK sensors 433 MHz

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.

OpenMQTTGateway 433 MHz devices

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.

RTL_433toMQTT

Share this:

Support CNX Software! Donate via cryptocurrencies or become a Patron on Patreon

ROCK Pi 4C Plus
Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
7 Comments
oldest
newest
andelf
andelf
24 days ago

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

Schmurtz
Schmurtz
23 days ago

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)

psyko_chewbacca
psyko_chewbacca
23 days ago

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).

David Willmore
David Willmore
23 days ago

Yeah, this^^^^

Occam
Occam
23 days ago

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.

David Willmore
David Willmore
21 days ago

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!

Howard Logan
Howard Logan
16 days ago

Boy I gotta learn this stuff!

Weller PCB manufacturer