一、概述
本方案的目标是指导用户如何通过芯步提供的开放API接口,对接智能8路分体远程开关控制箱(以下简称“8路控制器”),实现对其8路输出的定时自动启停控制。该方案适用于农业灌溉、工厂设备定时启停、广告牌灯光控制、机房设备轮巡等场景。
芯步8路控制器支持通过HTTP API进行远程独立控制,具备开放性好、集成便捷、支持局域网及私有化部署等特点。
二、系统架构
本方案的系统架构由以下四层组成:
设备层:芯步智能8路分体远程开关控制箱(型号:UNI-KZQ-TY-8或其他8路型号),连接被控负载(电机、灯具、电磁阀等)。
网络层:设备通过WiFi 2.4GHz连接至互联网或局域网,接收云端/本地指令。
平台层:芯步云平台,提供设备管理、API鉴权、消息转发等功能。
应用层:用户的业务服务器(或云函数/脚本),运行定时任务逻辑,调用API下发控制指令。
三、准备工作
3.1 硬件准备与接线
供电:为8路控制器接入DC 12V 1.5A电源。
负载接线注意
若直接控制小功率负载(≤4400W总额定功率,单路≤2200W阻性负载),请将负载火线/正极接入对应路数的输出端。
若控制大功率电机或工业设备,需通过控制箱内部的继电器外接交流接触器进行扩容。
网络配置:通过芯步控制台或小程序,将设备配网至现场2.4GHz WiFi网络。
3.2 软件平台准备
注册账号:在芯步官网注册开发者账号。
获取密钥:登录控制台,在“开发设置”中获取 AppID 和 AppSecret,此二者为API调用的身份凭证。
获取设备ID:在控制台“设备列表”中查看已配网成功的8路控制器的 Device ID(如示例中的“1878”)。
四、核心接口详解
芯步开放平台采用标准的HTTP POST请求进行设备控制,接口具有通用性,仅需注意签名生成规则和JSON命令格式。
4.1 接口地址与签名机制
请求URL:
https://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}请求方法: POST
Content-Type:
application/json
签名算法(防止接口被篡改)为确保安全性,每次请求需携带动态签名 sign,算法如下
将 AppSecret 进行一次 MD5 加密:
secret_md5 = md5(AppSecret)将上述结果拼接当前Unix时间戳(秒):
temp = secret_md5 + ts对拼接后的字符串再进行一次 MD5 加密:
sign = md5(temp)
参数说明
AppID:路径参数,直接替换URL中的占位符。ts:当前Unix时间戳(秒),需与签名计算时使用的ts一致。sign:计算出的签名值。
4.2 控制指令(Order)格式
请求的Body为JSON格式,包含 device 和 order 两个字段
针对8路控制器,order 支持以下指令类型:
1. 单路独立控制
控制第1路至第8路的独立开关。
开启第1路:
{"power1": 1}或{"power1": "1"}关闭第3路:
{"power3": 0}或{"power3": "0"}开启第8路:
{"power8": 1}
2. 批量控制(Batch Control)
同时控制多路状态,提高效率。
全开:
{"batch": {"power": 1}}全关:
{"batch": {"power": 0}}指定奇数路开启:
{"batch": {"relay": [1,3,5,7], "power": 1}}指定偶数路关闭:
{"batch": {"relay": [2,4,6,8], "power": 0}}
3. 时序控制
适用于需要短暂通电(如自动门禁、脉冲电磁阀)的场景。
先通后断(Point):线路接通特定时间后自动断开。
{"point": {"relay": [1], "interval": 1000}}(第1路接通1秒后断开)
先断后通(Reset):线路断开特定时间后自动接通。
{"reset": {"relay": [2,4], "interval": 2000}}(第2、4路断开2秒后恢复)
五、定时自动启停实现步骤
实现定时控制主要有两种技术路径:方案一(推荐) 利用芯步云平台内置的“定时任务”功能;方案二 利用用户业务侧的定时器(如Cron Job)调用API。以下分别详述。
方案一:利用云平台内置定时任务(低代码方案)
此方案最为稳定,无需维护服务器,设备在线即可生效。芯步设备原生支持远程定时任务配置。
操作步骤
登录芯步控制台。
进入“设备管理” -> 选择目标8路控制器。
点击“定时任务”或“自动化场景”设置。
新建任务
任务名称:如“定时灌溉开启”。
执行时间:选择“每天 08:00”。
执行动作:在下拉指令中选择“控制设备”,输入指令 JSON:
{"power1": 1}或{"batch": {"relay": [1,2,3,4], "power": 1}}。
同理创建“关闭任务”:时间设为“每天 20:00”,指令为
{"power1": 0}或批量关闭。
方案二:业务系统定时调用API(高灵活性方案)
适用于需要将控制逻辑与业务系统(如ERP、MES或自研APP)深度集成的场景。
5.1 编写调用核心函数(伪代码/逻辑示例)
在您的后端服务中(Python、Java、Go、PHP等均可),封装一个控制函数。以下以Python为例:
5.2 配置定时调度(Cron Job)
在Linux服务器或任何支持Cron的系统中,配置定时任务来触发上述脚本。
场景示例:控制8路广告灯箱,周一至周五 18:00 开,周六周日 08:00 开,22:00 统一关。
Crontab 配置
在 light_on.py 中调用 control_8ch_relay("1878", {"batch": {"power": 1}})。
六、高级应用与配置
6.1 私有化部署(局域网控制)
对于工业内网或不允许连接外网的场景,芯步8路控制器支持局域网控制。设备通过WiFi连接路由器和用户服务器。
操作方式
将设备与服务器置于同一局域网网段。
在控制台查看设备获取的内网IP地址。
直接向该IP地址发起HTTP请求(具体端口和鉴权方式请参阅设备对应的高级产品手册),摆脱对公网API的依赖。
6.2 状态反馈与联动
除了下发命令,您还可以通过订阅芯步平台的消息推送,获取设备的当前状态(如继电器实际通断状态、是否在线),从而实现闭环控制。
配置回调URL:在控制台设置API回调地址。
接收消息:当设备状态变化时,平台会推送JSON数据到您的服务器,您可以根据此数据触发其他业务逻辑(如断电报警)。
七、常见问题和需要注意的点
签名失败(401错误)
检查时间戳
ts是否为秒级(10位),不要使用毫秒级(13位)。检查AppSecret是否被正确进行MD5处理,注意MD5结果为32位小写十六进制字符串。
服务器时间是否与标准时间同步(误差过大会导致签名失效)。
指令未生效
确认设备ID正确,且设备状态在控制台显示为“在线”。
确认WiFi信号强度。2.4GHz频段穿透性强但干扰多,检查现场信号质量。
确认负载功率是否符合规格(感性负载功率需降额使用),有时继电器吸合但大负载启动瞬间电压跌落会导致设备重启。
安全性
AppSecret应保存在后端环境变量中,严禁硬编码在前端或APP代码中。
批量控制时,对关键设备设置“互斥锁”逻辑(例如不允许同时开启总功率超限的两路负载)。
通过以上步骤,您可以快速、稳定地利用芯步8路控制器的开放接口,构建符合业务需求的定时自动启停系统。