CATALOG

芯步的射频网关开放了HTTP/MQTT接口,核心思路是“监听→解析→转发”的事件驱动架构。以下方案展示如何通过30行Python代码实现315MHz/433MHz双频的收发闭环,让您能为任意老旧射频设备自定义联动规则。

1. 引言与背景

在物联网项目中,经常会遇到“设备孤岛”问题:大量的老旧315MHz/433MHz射频设备(如卷帘门、遥控插座、车库门、无线继电器)无法与现代IP网络设备联动。芯步智能射频网关支持315MHz接收和433MHz发射,结合其开放的HTTP/MQTT接口,可以作为打破孤岛的“通用翻译器”。

本方案的目标是指导开发者如何基于该网关进行二次开发,搭建一个事件驱动型的射频联动系统,实现“听见315MHz的信号,执行433MHz的动作”或反之,从而自定义任何射频场景逻辑。

2. 技术架构与核心原理

要实现“收发一体”与“自定义联动”,我们不能依赖芯步官方App的固化逻辑,而是需要搭建一个独立的业务后端作为大脑。

2.1 核心架构图(逻辑描述)

  1. 感知层:315MHz遥控器/传感器(发射信号)。

  2. 硬件层:芯步射频网关(接收信号,通过HTTP推送至服务器;接收服务器指令,发射433MHz信号)。

  3. 中枢层:您的私有服务器(运行Webhook接收端 + 业务逻辑引擎)。

  4. 执行层:433MHz继电器/插座/卷帘门电机。

2.2 工作流(以“按下A遥控器,打开B灯”为例)

  • Step 1:用户按下315MHz遥控器。

  • Step 2:网关收到315MHz信号,根据预设规则(在网关后台配置),将信号转换为HTTP请求,推送到您的服务器公网地址。

  • Step 3:您的服务器接收请求,解析出“设备ID”和“按键码”,通过逻辑判断(If Key=0x01 Then Action=Turn_On)。

  • Step 4:服务器调用芯步开放平台的HTTP接口,向网关下发433MHz发射指令。

  • Step 5:网关执行指令,发射433MHz射频信号,灯亮。

3. 环境准备与接口对接

我们需要利用两种接口模式:设备事件推送(接收数据)和设备控制接口(发送数据)。

3.1 接收数据:配置网关回调(Webhook)

为了让服务器知道射频信号被触发了,需要将网关的接收事件上报至您的后端。

  • 设置路径:登录芯步控制台 -> 找到该网关设备 -> 配置“事件订阅/HTTP推送”。

  • 推送地址http://[您的服务器公网IP]:8080/api/rf/receive

  • 推送内容:当网关识别到特定315MHz编码时,会POST如下JSON(示例格式,依据官方文档):

3.2 发送数据:HTTP控制接口

当服务器逻辑决定执行动作时,调用此接口让网关发433MHz信号。

  • API地址https://api.thingboot.com/{AppID}/device/control/

  • 请求方式:POST (JSON)

  • 核心参数

    • gateway: 网关ID(指定由哪个网关发射)。

    • device: 子设备ID(在控制台预先添加的虚拟子设备或射频插座)。

    • order: 命令内容,如 {"key":"on"} 或直接发送原始射频码 {"rf_data":"0xFF00FF"}

4. 核心开发实战:自定义联动逻辑

这一部分是整个解决方案的“大脑”。这里提供一个基于 Python (Flask) 的后端核心代码示例,展示如何接收315MHz信号,解析后决定是否下发433MHz指令。

4.1 业务逻辑示例:场景联动解析器

假设场景:当315MHz遥控器的“CH1”键按下时,触发433MHz频段的电动窗帘电机(代码为 0x5501)打开。

4.2 高级控制:分组与广播

如果需要同时控制多个设备(例如离家模式关闭所有灯),可以利用芯步的分组控制接口

  • 场景:收到“离家”射频码信号。

  • 接口/group/control

  • 参数{"group": 10086, "action": "close_all"}

  • 优势:一条API调用,网关发出一连串433MHz指令,延迟更低。

5. 自定义射频场景典型案例

以下是利用上述架构可以快速实现的典型自定义场景,展示了315MHz与433MHz之间的双向转换能力:

5.1 第一种场景:老旧门磁联动声光报警

  • 设备:315MHz门磁传感器、433MHz声光报警器。

  • 痛点:不同频段无法直连。

  • 自定义逻辑

    • 网关接收 315MHz门磁开启 -> 服务器判断 时间>22:00 -> 下发 433MHz报警鸣笛

    • 价值:无需更换现有门磁,直接升级安防系统。

5.2 第二种场景:万能射频遥控器(学习与模拟)

  • 设备:空调、电视(通常为红外/射频混合)。

  • 实现逻辑

    1. 学习模式:App触发服务器进入“学习状态” -> 服务器指令网关准备接收 -> 用户按下原装遥控器 -> 网关截获码并存入数据库。

    2. 模拟模式:App点击按钮 -> 服务器提取数据库中的码 -> 通过HTTP接口指令网关发

    • 接口关键点:使用 {"order":{"rf_raw":"CODE_VALUE"}} 支持自定义原始码下发。

5.3 第三种场景:跨网关联动(大型场所)

  • 需求:A区网关收到信号,B区网关执行动作。

  • 实现:这是纯软件层面的逻辑。后端收到A网关的事件后,遍历数据库中的关联规则,分别调用B、C网关的控制接口即可,这也是云联动的典型应用。

6. 关键注意事项与优化

6.1 防抖与去重

射频信号容易被同频干扰或重复触发。在二次开发时,必须在服务器端实现防抖逻辑

  • 策略:在 rf_callback 函数中,针对同一个 rf_code,如果在 500ms 内收到两次,忽略第二次。避免门磁抖动导致报警器连响。

6.2 异步处理与消息队列

如果射频控制指令涉及复杂的第三方API调用(如同时发射433、发邮件、推App通知),引入消息队列(如Redis Stream 或 RabbitMQ)。

  • 流程网关推送 -> Flask接收 -> 写入队列 -> Worker消费执行

  • 好处:避免因执行时间长导致网关HTTP超时重试。

6.3 本地化部署(局域网方案)

如果对公网依赖有顾虑,或要求极低延迟。芯步通网版(UNI-WG-SP-LAN)支持私有化部署,服务器和网关处于同一局域网。

  • 改动:将API请求地址从 api.thingboot.com 改为网关的局域网IP。

  • 优势:断网环境下依然可以执行联动逻辑

6.4 射频码的解码与透传

由于不同厂家的编码协议(如PT2262, EV1527)格式不同,网关默认上报的可能是已解析的设备ID,也可能是原始波形。

  • :在二次开发调试时,先让网关工作在“透传模式”,观察原始数据特征,再编写解码插件,提高兼容性。

7. 总结

通过本文所述的二次开发方案,芯步射频网关不再是一个只能点对点控制的工具,而是一个可编程的射频中控大脑。开发者利用其标准的 HTTP/MQTT接口,仅需编写200行左右的代码即可以实现:

  1. 硬件解耦:315MHz与433MHz设备的无缝互操作。

  2. 场景自定义:随心所欲定义“如果...那么...”逻辑。

  3. 系统集成:轻松将现有射频设备接入苹果HomeKit、HomeAssistant或企业ERP系统。

这种方案充分利用了网关的收发一体特性,真正实现了射频场景的“软件定义联动”。

网关产品方案:
怎么接入315射频网关以实现设备状态实时反馈
查看 >>
舞蹈室射频设备联动:怎么将智能射频通讯网关对接到软件项目中
查看 >>
怎样二次开发射频转WiFi网关来实现HTTP接口远程控制
查看 >>
弱电间射频设备接入:如何把智能射频控制器接入到软件项目中
查看 >>
安防门禁射频信号接入:怎么将射频转WiFi网关对接到项目中
查看 >>
联动场景方案:
如何二次开发单路墙壁智能门禁开关来实现门禁设备联动控制
查看 >>
怎么二次开发一路门禁一路照明开关来实现场景联动照明门禁控制
查看 >>
如何接入8位总控PDU插排以实现场景联动总控电源
查看 >>
怎么在商场店铺安全监测中对接智能设备来实现多设备联动控制
查看 >>
怎样接入4路智能直流开关以实现多设备联动控制
查看 >>
射频用途方案:
怎样接入射频设备联网模块来实现射频信号接收与解析
查看 >>
如何在门店射频设备管理中对接智能硬件来实现射频信号转发处理
查看 >>
怎样在设备机房射频信号管理中对接智能硬件以实现射频信号转发处理
查看 >>
门店射频设备管理:如何将射频设备联网模块接入到项目中
查看 >>
如何对接智能射频网关来实现射频协议转换
查看 >>