CATALOG

一、背景描述

先说说咱们遇到啥问题。图书馆自习室,大家都懂——有的区域人来人往,有的区域半天没人。传统开关吧,管理员得挨个巡查关灯,读者想开灯还得摸黑找开关。如果用芯步的2路智能触摸开关,配合开放接口,就能实现远程控制、定时关灯、甚至人来灯亮。

今天主要聊的就是:怎么把这款2路智能触摸开关,对接到现有的自习室管理系统中去

二、准备工作

2.1 硬件准备

设备说明
芯步2路智能触摸开关型号一般是UNI-KG-CM-2(2路版本),支持WiFi直连,无需网关
照明电路两路灯具,接到开关的L1和L2口
WiFi路由器必须是2.4G频段,5G不行

这款开关有个好处:直接用WiFi,不用买网关。每路可以独立控制,相当于一个设备控制两盏灯(或两组灯)。

2.2 软件准备

项目说明
芯步开发者账号去官网注册,创建一个“工作台”
AppID和AppSecret在控制台的“开发设置”里能找到
设备ID配网成功后在控制台能看到,是一串数字

三、核心步骤

3.1 给开关配网(首次使用)

开关拿到手,先得让它连上网。具体操作:

  1. 通电:开关接好零火线,指示灯会闪烁(表示等待配网)

  2. 添加WiFi信息:登录芯步后台,在“物联网控制台”→“网络配置”里,填上自习室的WiFi名称和密码

  3. 让开关"听到"WiFi:用手机开一个同名热点(临时),开关会自动连上,然后手机关掉热点就行

  4. 确认上线:后台看到设备状态变成“在线”,说明ok了

小贴士:WiFi名字别搞中文,有些路由器不认。另外确保WiFi是2.4G频段

3.2 找到设备ID和指令格式

配网完成后,在后台找到这个设备,记下它的设备ID(比如 12345678)。

然后查看这个产品的“产品手册”,确认控制指令。对于2路开关,一般是这样的:

操作指令JSON
打开第1路{"power1":1}
关闭第1路{"power1":0}
打开第2路{"power2":1}
关闭第2路{"power2":0}

有些版本可能直接用powerpower2,具体以产品手册为准

3.3 调用接口下发指令

芯步的接口是标准的HTTP API,任何能发HTTP请求的语言都能调。核心请求地址是:

https://api.thingboot.com/{你的AppID}/device/control/?sign={签名}&ts={时间戳}

请求方式是POST,Content-Type用application/json,body长这样

签名怎么算? 官方给的规则是:sign = md5(md5(AppSecret) + ts)

听着有点绕,拆解一下:

  1. 先把AppSecret(开发者密码)做一次MD5,得到一个32位字符串

  2. 把这个字符串拼上当前时间戳ts(比如abc123...1704067200

  3. 对拼起来的结果再做一次MD5,这就是sign

ts是秒级时间戳,比如1704067200。注意两个时间戳要用同一个值。

3.4 代码示例(Python版,更易读)

C语言版本的示例可以看官方文档,嵌入式环境也能跑。

四、进阶:对接自习室管理系统

有了接口基础,怎么把它“嵌入”到实际项目中?三个常见场景:

4.1 第一种场景:定时关灯

图书馆晚上10点闭馆,总有人忘记关灯。写个定时任务就行:

4.2 第二种场景:座位预约联动

假设自习室已经有个座位预约系统,读者预约了座位才开灯。逻辑是:

  1. 读者在小程序预约座位A

  2. 后台收到预约成功事件

  3. 调用接口打开对应区域的灯

4.3 第三种场景:分组控制(一键全开/全关)

如果自习室有多个开关,可以把它们加到一个分组里,一次性控制

分组ID在后台可以创建和查看。一个分组最多能加多少设备?官方没说死,但控制在100台以内

五、常见问题与避坑指南

问题原因解决办法
设备经常掉线WiFi信号不稳定确认路由器在2.4G频段;开关离路由器别太远
指令下发成功但灯没反应设备离线或指令格式不对检查设备在线状态;对照产品手册确认power1还是power
签名验证失败ts偏差太大或加密步骤不对服务器时间与客户端时间差不能超过5分钟;按md5(md5(secret)+ts)重新算
多设备控制延迟逐个发HTTP请求用分组控制(group接口)一次搞定;或者用MQTT方式(如果有)
配网时找不到设备WiFi不是2.4G检查路由器设置,关闭5G优先功能

六、总结

把芯步的2路智能触摸开关接到项目中,核心就三步:

  1. 配网:把开关连上自习室的WiFi

  2. 拿凭证:记下设备ID、AppID、AppSecret

  3. 调接口:发HTTP POST请求,带上签名和设备指令

这套方案的好处是:不需要网关,接口简单,任何编程语言都能调。不管你是用Python写定时脚本、用Java做预约系统后端、还是用C跑嵌入式网关,都能轻松对接。

最后提醒一句:200状态码只代表平台收到了指令,不代表设备真的执行了。如果要求强反馈(比如必须确认灯亮了),开启芯步的消息推送功能,订阅设备的状态上报。