从433MHz到MQTT:如何用rtl_433_ESP+OpenMQTTGateway把无线气象传感器数据推送到Home Assistant

📅 2026/8/24 9:33:40
从433MHz到MQTT:如何用rtl_433_ESP+OpenMQTTGateway把无线气象传感器数据推送到Home Assistant
从433MHz到MQTT如何用rtl_433_ESPOpenMQTTGateway把无线气象传感器数据推送到Home Assistant【免费下载链接】rtl_433_ESPTrial port of the rtl_433 Library for use with OpenMQTTGateway on a ESP32 and a CC1101 Transceiver项目地址: https://gitcode.com/gh_mirrors/rt/rtl_433_ESPrtl_433_ESP 是一款运行在 ESP32 上的433MHz 无线传感器解码库它把经典解码项目 rtl_433 的 160 设备协议解码器移植到了 ESP32 平台。配合OpenMQTTGateway你可以把 Acurite、LaCrosse、FineOffset、Govee 等无线气象传感器的温度、湿度、风速、雨量数据自动发布到MQTT轻松接入 Home Assistant 智能家居系统。为什么需要 rtl_433_ESP市面上大量廉价无线气象传感器使用 433MHz 私有协议电池供电、无需布线但数据只在自家基站上显示想接入 Home Assistant 却没有接口。传统做法是用 RTL-SDR 电视棒 电脑上的 rtl_433 软件解码需要一台常开的电脑。rtl_433_ESP 的思路是把解码逻辑直接搬进 ESP32用 CC1101 或 SX127X 433MHz 射频模块接收信号解码结果通过 MQTT 直接推送到你的 Home Assistant无需任何 PC 参与。️它的核心能力信号接收支持 CC1101、SX1276/SX1278Heltec、LilyGo 开发板内置等 433MHz 收发模块协议解码内置 rtl_43324.10 版本的 OOK 与 FSK 设备解码器覆盖 160 种设备协议MQTT 集成作为 OpenMQTTGateway 生产分支中的可用模块解码结果以标准 JSON 发布到 MQTT Broker硬件准备433MHz 接收模块怎么选项目支持三类硬件方案任选其一即可方案特点参考接线资料CC1101 433MHz 模块 ESP32模块小巧、便宜需外接排线见下节接线表Heltec WiFi LoRa 32 V2433MHz板载 SX127X开箱即用Heltec 引脚图LilyGo LoRa32 V2.1433MHz板载 SX127X作者主力测试板LilyGo 引脚图AI-Thinker Ra-01SX1278 ESP32 DevKit模块化外接灵活见下节接线图⚠️ 选购提示选择 SX127X 方案时请确认芯片确实是SX127X 系列外观相似的其他芯片不支持所需的 OOK 接收模式。另外实测该接收链路灵敏度约为主流 RTL-SDR 的一半天线竖直摆放可显著改善接收效果。Heltec WiFi LoRa 32 V2 433MHz 引脚图rtl_433_ESP 无线气象传感器接收板 GPIO 接线参考CC1101 模块的典型接线详见example/OOK_Receiver/README.mdCC1101 PINESP32 GPIOGDO022GDO24CSN5默认 SPI CSMOSI / MISO / SCK23 / 19 / 18默认 SPI模块数据手册可查阅docs/E07-M1101D-TH_Usermanual_EN_v1.30.pdfCC1101与docs/sx1276_77_78_79.pdfSX127X。最快配置方法用 PlatformIO 构建 OOK 接收示例项目提供了开箱即用的示例工程example/OOK_Receiver/配合 PlatformIO 三步搞定克隆仓库到本地目录git clone https://gitcode.com/gh_mirrors/rt/rtl_433_ESP用 VS Code PlatformIO 打开example/OOK_Receiver目录构建时会自动拉取全部依赖库根据你的硬件选择编译环境定义在 platformio.ini硬件PlatformIO 环境CC1101 ESP32esp32_cc1101Heltec LoRa 32 V2esp32_heltecLilyGo LoRa32 V2.1esp32_lilygo默认Ra-01 ESP32 DevKitesp32doitv1_r01编译烧录后以 921600 波特率打开串口监视器看到setup complete即表示解码引擎已启动。示例主程序 OOK_Receiver.ino 展示了完整流程initReceiver()初始化接收 →setCallback()注册解码回调 →enableReceiver()开启监听。支持哪些设备160 OOK/FSK 解码器解码器代码位于src/rtl_433/devices/目录每个文件对应一类设备协议基于 rtl_433 24.10 版本移植覆盖两大调制方式OOK 信号解码器160 种常见气象设备包括Acurite 592TXR / 609TXC / 986温度计、5合1气象站、冰箱温度计LaCrosse TX141-B / TX141W温湿度、风速风向Govee 水浸传感器 H5054、门磁 B5023TFA Dostmann、Oregon Scientific、Ambient Weather、Ecowitt WH53 等温湿度传感器Skylink HA-434TL 运动传感器、各类门磁/报警器FSK 信号解码器96 种例如FineOffset / ECOWITT WH51 土壤湿度、WH45/WH46 空气质量传感器Bresser 5合1 / 7合1 气象站、Inkbird ITH-20RTFA 30.3196、LaCrosse Breeze Pro 风速传感器等⚙️ 注意OOK 与 FSK 解码模式不能同时启用受接收芯片解调器限制通过编译定义OOK_MODULATION切换true启用 OOKfalse启用 FSK。设备清单由include/rtl_433_devices.h自动管理可通过tools/update_rtl_433_devices.sh和tools/generate_include_src.sh脚本从 rtl_433 上游同步更新。数据长什么样解码结果以 MQTT JSON 发布每成功解码一个信号库都会生成一条结构化 JSON 消息在 OpenMQTTGateway 中会被发布到 MQTT 主题。以 Acurite 592TXR 温湿度传感器为例{model:Acurite-Tower,id:5989,channel:A,battery_ok:1, temperature_C:21.5,humidity:127,mic:CHECKSUM, protocol:Acurite 592TXR Temp/Humidity, 5n1 Weather Station...,rssi:-57, duration:220996}字段含义一目了然temperature_C温度、humidity湿度、rssi信号强度、battery_ok电池状态、model设备型号。在 Home Assistant 中你可以直接通过 MQTT 自动发现或手动创建sensor实体映射这些字段实现温度曲线、湿度告警等玩法。信号检测机制也很智能库会持续监测 RSSI当信号强度超过「噪声底 9dB」阈值时开始接收RSSI_THRESHOLD、RSSI_SAMPLES可调信号消失 150ms 以上判定结束无需人工干预。接入 OpenMQTTGateway 与 Home Assistant使用OpenMQTTGateway 生产分支——rtl_433_ESP 已作为其可用射频模块集成在 OMWG 编译选项中启用该模块并选择你的射频板型配置 MQTT Broker 地址、认证信息与主题前缀OMWG 原生功能无需写代码Home Assistant 安装MQTT 集成指向同一 Broker 即可订阅到传感器数据开启 MQTT 自动发现后可自动生成实体至此一个零代码、7×24 小时在线的 433MHz 传感器网关就搭好了传感器 → ESP32 解码 → MQTT → Home Assistant。✅常见问题与调优建议收不到信号先确认调制模式OOK/FSK与传感器一致开启DEMOD_DEBUG、DRAW_SIGNAL_DEBUG编译定义查看原始脉冲与 RSSI 信息解码不完整可调高RSSI_THRESHOLD默认 9或检查天线位置SX127X 还可调OOK_FIXED_THRESHOLD收到不认识的信号定义PUBLISH_UNPARSEDtrue会发布未识别信号的调试信息便于排查只解码少数设备想省资源定义MY_DEVICEStrue可编译个人设备子集显著缩小固件体积完整编译选项清单见 README.md 的「Compile definition options」章节项目目录导航路径说明src/rtl_433_ESP.h / src/rtl_433_ESP.cpp库主类接收、RSSI 门限、任务调度src/signalDecoder.cpprtl_433 解码器封装与协议注册接口src/receiver.cppRadioLib 射频层封装CC1101/SX127X 驱动src/rtl_433/devices/160 设备解码器acurite.c、govee.c、fineoffset.c 等src/rtl_433/pulse_slicer.c脉冲切分与解调核心include/rtl_433_devices.h设备解码器注册清单自动生成example/OOK_Receiver/OOK 接收示例工程含 PlatformIO 配置example/FSK_Transmitter/FSK 信号发射测试工具signals/协议分析文档acurite_986.md、philips.md 等tools/从 rtl_433 上游同步解码器的脚本docs/射频模块数据手册与接线图无论是想盘活吃灰的 433MHz 气象站还是搭建一套低成本自组网环境监测rtl_433_ESP OpenMQTTGateway 都是一条经过验证、无需 PC 值守的轻量级路线。【免费下载链接】rtl_433_ESPTrial port of the rtl_433 Library for use with OpenMQTTGateway on a ESP32 and a CC1101 Transceiver项目地址: https://gitcode.com/gh_mirrors/rt/rtl_433_ESP创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考