CATALOG

芯步的8路控制器提供了开放的HTTP API接口,支持远程独立控制每路输出,这正是搭建定时控制系统的核心基础。以下方案采用“云服务器定时调度 + HTTP接口直控”的架构,无需网关中转,实现起来比较简洁。

解决方案:基于芯步开放接口实现8路控制箱定时自动启停

1. 概述

本方案利用芯步智能通用控制器(8路) 的开放HTTP接口,通过对接其云端API,实现在任意时间节点对8路独立线路的远程定时自动启停控制。

核心优势:

  • 无需网关:设备直连WiFi 2.4G,降低硬件成本

  • 接口开放:支持任何支持HTTP请求的编程语言(Java, Python, PHP, Node-RED等)

  • 精准控制:可独立控制8路中的任意一路,支持定时开、定时关及复杂节拍逻辑。

  • 高负载能力:单路最大支持2200W(阻性负载),总功率可达4400W,可直接驱动中小负载或外接接触器控制大功率设备

2. 系统架构

  • 控制端:芯步 8路智能控制器 (UNI-KZQ-TY-8)。

  • 执行端:被控制的机械设备(如广告灯箱、灌溉水泵、工控电机、实验室设备等)。

  • 调度中心:客户的服务器(云服务器或本地服务器)或第三方物联网平台(如Node-RED、HomeAssistant)。

  • 通信协议:HTTP/HTTPS (API) + JSON。

  • 定时机制:服务器端定时任务(如Cron Job、Windows Task Scheduler或PLC定时脚本)。

3. 对接准备与接口分析

在开发前,需要明确芯步该产品的核心API特性。根据产品手册,该设备属于“下行控制设备”,即接收指令执行动作

关键API信息:

  • 请求地址http(s)://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}

  • 请求方法:POST

  • 数据格式:JSON

  • 核心参数

    • device:设备ID(在物联平台添加设备后获得)。

    • order:指令对象,包含具体的线路控制命令

支持的命令集示例:

功能描述指令Key指令Value示例作用
控制第1路power11 (开) / 0 (关)独立控制通道1
控制第2路power21 / 0独立控制通道2
............
控制第8路power81 / 0独立控制通道8
批量控制batch"11110000"一次性设置8个位的开关状态

注:具体设备ID和签名算法需参考芯步提供的设备证书与签名生成文档。

4. 定时启停逻辑实现方案

为了实现“定时自动启停”,这里不依赖设备本身有限的定时任务(虽然部分设备支持,但通过云端调度更灵活),而是在服务器侧构建调度逻辑

案例场景:

  • 需求:周一至周五,早上 8:00 开启线路1(设备A);中午 12:00 关闭线路1;下午 14:00 开启线路2(设备B);晚上 18:00 关闭所有线路。

  • 服务器端开发步骤:

第一步:引入API签名库在服务器代码中,封装芯步的API调用函数。必须处理好sign(签名)和ts(时间戳)的生成,这是防止接口被恶意攻击的安全机制

第二步:编写控制核心函数创建名为 control_device(device_id, cmd_key, cmd_value) 的函数。该函数负责向 http(s)://api.thingboot.com/... 发送POST请求。

请求体示例(开启线路2):

请求体示例(批量操作,只开1和2路):

第三步:配置定时任务(Scheduler)在服务器操作系统中设置Cron Job(Linux)或计划任务(Windows),在特定时间点触发上述函数。

定时逻辑表:

触发时间执行动作接口调用指令
08:00开启线路1{"power1": 1}
12:00关闭线路1{"power1": 0}
14:00开启线路2{"power2": 1}
18:00全关{"batch": "00000000"} 或 分别发送powerX=0

第四步:状态反馈与校验虽然控制是单向下发,但为了确保“自动启停”执行成功,可以配合设备的状态查询接口(或通过消息推送机制)。在发送命令200ms后,查询设备当前状态power1的值,若power1==1则代表开启成功;若失败则触发重试机制(如间隔5秒重试一次,共重试3次)

5. 进阶应用场景与联动

第一种场景:传感器联动(闭环控制)如果现场有芯步的温湿度传感器光照传感器逻辑:服务器收到传感器数据(如温度>30度) -> 触发规则引擎 -> 调用8路控制器接口 -> 开启线路8(风扇/散热设备) -> 降温后自动关闭

第二种场景:循环定时(间歇性控制)对于一些需要“开10秒,停30秒”循环的设备(如自动喷淋、振动设备)。实现:在服务器端代码中编写一个Loop线程或使用Delay函数。

  1. 调用API开第3路。

  2. Thread.sleep(10000) (等待10秒)。

  3. 调用API关第3路。

  4. Thread.sleep(30000) (等待30秒)。

  5. 无限循环或重复N次后退出。

第三种场景:本地局域网控制(纯内网环境)如果工厂或实验室不允许连接外网,芯步设备支持私有化部署局域网直连功能

  • 做法:将设备的IP地址固定,服务器直接向设备的局域网IP发送HTTP请求(不经过云端API),这对于实时性要求比较高且无外网的环境非常适用。

6. 实施注意事项

  1. 网络稳定性:8路控制器使用2.4G WiFi。在工业环境或强电磁干扰环境下,确保WiFi信号强度在-70dBm以上,避免因网络延迟导致定时动作失效。

  2. 负载类型:手册明确指出,感性负载(电机、LED灯)的启动电流较大。如果定时控制的是电机,设置软启动或在外层加装交流接触器进行隔离,避免大电流冲击损坏继电器触点

  3. 时间同步:在执行定时任务前,请一定要校准执行调度任务的服务器的系统时间(NTP同步),确保“8:00:00”准时下发,避免因服务器时间偏差导致控制延迟。

  4. 安全与权限sign签名算法不要暴露在前端代码中,严格放在后端执行。定期更换AppId对应的密钥。

7. 总结

通过上述方案,你可以利用标准的HTTP POST请求和简单的定时脚本,快速实现对芯步8路控制箱的自动化管理。无论是简单的定时开关灯,还是复杂的工业流程控制,这套以 “API调度为核心” 的方案都能灵活满足。