芯步的2路低压直流控制板本身支持HTTP接口调用,但如果你想要“定时自动启停”而不想自己写代码跑定时任务,最省事的方案是直接用平台内置的定时任务接口。下面这份方案会一步步带你走通两种实现方式。
从手动控制到自动化:怎么让2路控制板“自己动”起来?
兄弟们,咱们在实际项目里,经常遇到这种情况:买回来芯步的2路低压直流控制板,用手机APP或者电脑点一下,灯亮了,再点一下,灯灭了,控制得特别顺手。但问题是,如果你想让它在每天早上的8点钟自动打开,或者每隔半个小时自动关一次,总不能天天定个闹钟自己爬起来点手机吧?
这就需要“二次开发”了。别被这个词吓到,其实没那么玄乎。这篇文章我就手把手教你,怎么利用芯步开放的API接口,让你这块控制板“长脑子”,学会自己按时干活。
一、咱们手里这块板子有啥“底子”?
首先得看看咱们的硬件底子。芯步的这款2路直流控制板,核心就是那两路继电器(相当于两个开关),官方给的命令非常直接:
power1:控制第一路的通断(1是开,0是关)。power2:控制第二路的通断。
所有的二次开发,本质上就是通过HTTP请求,往云端发个指令,告诉它把power1变成1或者0。既然能发一次指令,那我们只要想办法让电脑或服务器自动地、定时地发这个指令,定时控制就实现了。
二、方案选择:两条腿走路
要实现定时控制,一般有两条路。为了让大家有对比,我把两条路都列出来,你可以根据自己的服务器情况选择。
| 特性 | 方案A:调用云平台定时API(推荐) | 方案B:用自己的服务器做定时器 |
|---|---|---|
| 代码量 | 极少(只需调1次接口创建任务) | 较多(需要写循环、处理时间逻辑) |
| 依赖 | 依赖芯步云平台 | 依赖你自己的服务器或PC保持开机 |
| 灵活性 | 固定模式(每天、每周、间隔) | 极其灵活(可以写任意复杂的逻辑) |
| 适用场景 | 99%的日常自动化需求 | 需要复杂判断(如根据传感器返回值触发) |
结论: 如果你只是想让设备像闹钟一样定时工作,闭眼选方案A,又快又稳。
三、实战方案A:直接“告诉”云平台到点干活(强烈推荐)
芯步的接口文档里藏着一个宝贝——任务创建接口。这个接口的作用就是:你给云平台设个闹钟,时间一到,云平台替你去控制设备。
1. 核心思路
我们不直接发“开/关”指令了,我们发一个“定时任务”指令给服务器。
2. 具体操作步骤
第一步:搞定签名(Sign)调用芯步的接口,首先要过安全验证。所有接口都需要带上签名sign和时间戳ts。签名的算法是:md5(md5(AppSecret) + ts)。
你需要去芯步的后台拿到你的
AppID和AppSecret。写一段代码生成这个
sign(官网有各种语言的Demo,复制粘贴就行)。
第二步:调用“创建任务”接口接口地址是:http(s)://api.thingboot.com/{你的AppID}/task/create/
我们直接看请求参数怎么填,这是关键
devices:填你那块2路控制板的设备ID(在后台能看到,一般是数字)。type:填策略类型。想每天早上8点开?填
day。想每隔30分钟动作一次?填
loop。
策略参数:根据上面的type填。
如果是
day,填time,比如"08:00:00"。如果是
loop,填interval,比如1800(单位是秒)。
commands:这是核心!这里填你要执行的动作。想开第一路:填
{"power1":1}想关第二路:填
{"power2":0}
举个栗子:
老板要求:每天早上8点半,自动把第一路的鱼缸水泵打开;晚上10点,自动关闭。
你需要做两件事:
早8点半任务:请求参数里,
type=day,time=08:30:00,commands={"power1":1}。晚10点任务:请求参数里,
type=day,time=22:00:00,commands={"power1":0}。啪,接口调用成功,哪怕你现在关机睡觉,控制板到了点也会自己开灯。
四、实战方案B:手搓一个“定时器”(适合折腾派)
如果你不想用云平台的定时功能,或者你的逻辑特别复杂(比如:必须是下雨天且是周二下午才开启),那你只能自己写脚本了。
适用场景:你有一台树莓派、一台不关机的电脑或者一个云服务器。
1. 基本逻辑
写一个死循环(或者用Cron定时任务),不断检查当前时间。
如果是规定时间:程序组合一个HTTP请求,直接发出去。
如果不是:继续睡一会。
2. 代码核心(Python伪代码)
这里不用关注具体的Sign计算(直接复制官网的),关键是逻辑:
五、几点避坑小贴士
关于局域网私有化:如果你的设备是纯内网环境(没有外网IP),上面的方案A(云平台定时)可能就不太适用了。这时你只能用方案B,并且方案B中的请求地址要换成设备在内网的IP地址(如果支持的话,参考其私有化部署文档)。
关于“先通后断”:2路控制板还支持
point(先通后断)和reset(先断后通)命令。这有什么用呢?比如你想控制一个道闸或者一个电机,只需要给一个脉冲信号,也就是“接通1秒马上断开”。你可以直接发{"point1":1000}(1000毫秒=1秒),不用自己写代码去“开了再关”,非常方便。批量控制:如果你买了10块板子,想在每天下班时间统一断电。在创建任务时,
devices参数里直接用英文逗号把10个设备的ID连起来就行,比如"1001,1002,1003"。
总结一下:如果你只是图个省事,赶紧去翻翻芯步开放平台文档里的“任务创建”章节。看懂那个,你的2路控制板基本就脱胎换骨,变成一个全自动的智能管家了。