Radio Links for Raspberry Pi Sensors: HC-12 vs WiFi with ESP32-C3
Hardware used in this build
- HC-12 433 MHz wireless module
HiLetgo HC-12 433 MHz SI4438 module with antenna. Reliable for 100–1 000 m links. - ESP32-C3 dev board
The shed node MCU. Runs the AI_optimized_shed_TX.ino sketch. Seeed's own board. - Raspberry Pi 4
Used in the running shed build; works reliably.
This guide is generated from data/guides.json and data/parts.json. Don’t edit by hand — edit the data.
Comparison
| Part | Role | Interface | Verdict | Price |
|---|---|---|---|---|
| HC-12 433 MHz wireless module | Radio link shed <-> Pi 4 | Serial1, 9600 baud, RX20/TX21 | yes | — |
| HiLetgo HC-12 433 MHz SI4438 module with antenna. Reliable for 100–1 000 m links. | ||||
| ESP32-C3 dev board | Shed node MCU | GPIO; Serial1 HC-12 (RX20/TX21); I2C SDA8/SCL9 | yes | ~$10.99 |
| The shed node MCU. Runs the AI_optimized_shed_TX.ino sketch. Seeed’s own board. | ||||
| Raspberry Pi 4 | 1-Wire master + villa collector | dtoverlay=w1-gpio; SQLite timeseries.db | yes | — |
| Used in the running shed build; works reliably. |
Verdict
Pick the part that matches your interface and accuracy needs. If you need humidity, prefer BME280 over BMP180. For long 1-Wire runs, DS18B20 is the most robust choice.
Disclosure: SensorRig is reader-supported. Some links may be affiliate links; if you buy through them I may earn a commission at no extra cost to you.
Related reading
- How to Spot a Fake DS18B20 Temperature Sensor on a Raspberry Pi
Spot a fake DS18B20 on a Raspberry Pi: family-code check, sysfs CRC test, and ice/boil calibration against the datasheet. 3 of 7 probes in one batch were counterfeits, drifting 1.5–3.5 °C.
- SQLite Rollups and Retention: Stop Your Sensor DB From Eating the SD Card
How rollup tables and a retention policy keep a Raspberry Pi sensor SQLite database from growing unbounded — and why SD-card wear is rarely the real problem.
- CT Clamp Burden Resistor Calibration for ADS1115 on Raspberry Pi
CT clamp burden resistor calibration for ADS1115 on Raspberry Pi: pick the external burden, stabilise with a decoupling cap, and apply the DC-bias correction that separates a stable watt reading from drift — with the 51 Ω + 10 µF combination I actually measured.