CATALOG

AC4-30A物联网开关的一个关键特性是“按钮动作可自定义、可屏蔽”。实现二次开发的核心思路是:通过HTTP API向设备下发配置指令,将物理按钮模式设为“屏蔽”或“禁用”,同时保留远程控制能力。

以下是完整的技术实现方案,包含接口调用示例、去抖动处理、异常恢复机制等工程实践要点。

1. 解决概述

1.1 核心原理

AC4-30A 的固件设计支持按钮行为配置。其物理按钮(自复位开关)默认直接串联在继电器的控制线路上。通过 API 写入特定配置后,设备 MCU 会忽略 GPIO 引脚的电平变化中断,使按钮按下不再触发继电器动作。

1.2 逻辑架构

在这种模式下,系统逻辑分为三层:

  • 物理层:按钮信号被 MCU 屏蔽,按下无反应。

  • 指令层:二次开发服务器通过 HTTP API 下发指令。

  • 执行层:AC4-30A 执行 power 命令,实现远程通断。

2. 环境准备与接口鉴权

在进行开发前,需要获取必要的凭证和目标设备标识。

2.1 获取关键参数

  1. AppID:在芯步开发者后台创建应用后获取。

  2. API Key/Secret:用于生成接口签名 sign

  3. Device ID:目标 AC4-30A 设备的唯一标识(通常在控制台设备列表或设备贴纸上)。

  4. API Endpointhttps://api.thingboot.com

2.2 签名算法

接口请求需携带签名 sign 和时间戳 ts 进行鉴权。这是为了保护接口不被恶意调用。

  • 规则:通常涉及将 AppIDDevice IDtsSecret Key 按特定顺序拼接后进行 MD5 或 SHA256 加密。

  • 注意:严禁在客户端代码中硬编码 Secret Key,应在您的后端服务器生成签名。

3. 实现“按钮屏蔽”的具体步骤

要实现按钮动作的屏蔽,关键在于利用 AC4-30A 开放的 HTTP 接口,向设备发送特定的配置指令。这通常不需要直接修改设备固件,而是通过云端或局域网 API 下发配置参数。

3.1 下发配置指令

使用 HTTP POST 请求调用设备配置接口,将按钮功能禁用。

请求示例:

3.2 指令执行流程

  1. 您的服务器接收业务请求。

  2. 服务器调用 AC4-30A 的 API 接口,下发屏蔽指令。

  3. 设备返回 200 状态码,确认指令已接收,按钮自此失效。

3.3 状态维持与同步

按钮屏蔽状态属于设备配置的一部分,设备断网重连后应自动同步该配置:

  1. 设备上电:AC4-30A 启动,主动请求服务器获取最新配置。

  2. 配置下发:服务器响应最新配置(button_lock = true)。

  3. 状态生效:设备加载配置,确保按钮功能保持锁定状态。

为确保配置已生效,可以通过查询接口验证:

响应示例:

4. 屏蔽后的远程控制逻辑

当物理按钮失效后,唯一驱动继电器闭合/断开的方式是通过 API 操作继电器。此时您的二次开发系统需要接管原本由人工按钮触发的逻辑。

4.1 远程控制接口

使用 power 命令控制 AC4-30A 的主线路继电器。

  • {"power":"1"}:继电器吸合,负载通电。

  • {"power":"0"}:继电器断开,负载断电

curl 示例:

4.2 业务逻辑的二次开发集成

由于按钮被屏蔽,您的应用需要提供替代的交互方式。以智能充电桩场景为例:

  • 需求:只有授权用户扫码才能充电。

  • 技术适配:屏蔽物理按钮防止免费充电。用户扫码后,后端服务调用 power:1。计费结束后,调用 power:0

5. 工程实践与高级优化

5.1 去抖动与误触发处理

即使屏蔽了按钮,由于 AC4-30A 直接接入 220V 市电,若物理线路存在干扰,仍可能导致误判。在二次开发中:

  • 硬件滤波:确保按钮开关质量良好,避免因触点抖动导致的状态不稳定。

  • 软件状态机:在您的后端逻辑中维护设备的“期望状态”,定时与 AC4-30A 的“实际状态”进行核对。若发现状态不一致且非 API 操作引起,可主动下发修正指令。

5.2 异常恢复机制

如果云端服务出现故障,导致无法远程控制且按钮已被屏蔽,设备将无法操作。这是一个关键的容错场景,采取以下策略:

  • 方案一(推荐 - 硬件应急):在 AC4-30A 前端串联一个物理空气开关,作为紧急断电手段。

  • 方案二(软件 - 看门狗):在设备固件逻辑中支持心跳检测。若设备连续 30 分钟无法连接云端 API,自动触发“恢复按钮功能”作为 fallback 机制。这需要确认您的 AC4-30A 固件版本是否支持该特性。

5.3 局域网直连控制

对于要求高实时性(无延迟)或高可靠性(不希望经过外网)的工业场景,AC4-30A 支持局域网 HTTP 控制。您可以绕过云端服务器,直接向设备的内网 IP 发送 HTTP 命令,实现更低延迟的控制。

6. 总结

通过以上方案,您可以利用芯步 AC4-30A 的开放接口,实现以下几个目标:

  1. 物理锁死:通过 API 彻底屏蔽物理按钮,消除本地误触风险。

  2. 远程接管:建立云端或局域网控制机制,完全接管设备操作权。

  3. 逻辑集成:将开关控制集成到您的业务逻辑中(如计费、权限验证),构建符合需求的物联网应用。