这期我们聊聊怎么把芯步那款吸顶红外传感器(就是装在吊顶上那个小圆饼)接进你自个儿的系统里。不光能收数据,还能用HTTP反过来控制它。
我会尽量少甩专业术语,把步骤拆碎一点,跟着做就行。
一、搞清楚我们的目标:不是只听,还要能控
说实话,这种传感器平时主要是“长嘴”——它会不停喊“有人了”、“没人了”。但我们这次的需求比较特别:你要通过云端的HTTP接口,远程直接给传感器下命令。
比如你在办公室后台点一下按钮,让传感器把探测灵敏度调高;或者让它联动一个动作。
这完全可行,因为芯步这批吸顶传感器(即便是红外版)也保留了几个可控的命令点位。
二、下命令之前,得先有这个“三件套”
别急着写代码,先在芯步的后台把这三样东西找齐,缺一不可:
AppID:你的“身份证号”。
AppSecret:你的“密码”,这个不要告诉别人。
Device ID:那台吸顶红外传感器的编号,比如
820720。
这三个值在你注册并添加设备后,去“物联网控制台”的“开发设置”和“设备列表”里就能看到。
三、核心难点:搞定那个“双MD5”签名
芯步的接口为了安全,签名算法稍微绕了一点,但逻辑其实很耿直。它是先对你的密码做一次MD5,把这个结果拼上当前时间戳,再整体做一次MD5。
别怕,公式看懂就行:
最终签名 = MD5( MD5(AppSecret) + ts )
我拿个假数据给你比划一下:
假设你的
AppSecret是abc123当前时间戳
ts是1700000000
计算
MD5(abc123)得到一串字符,比如xxxx把
xxxx和1700000000拼成xxxx1700000000再对这一长串做一次MD5,得到最后的
sign
这里有个大坑要躲开:官方文档特别强调,这里的时间戳 ts 必须是中国时间,而且服务器会校验时间差,别差太多。
四、实战环节:让传感器“眨眨眼”或“断个电”
假设你想远程把吸顶传感器内置的LED灯关掉(防止夜间光污染),或者切断它的输出线路。开始动手:
请求地址(POST方式):
请求体(Body):
这段JSON的意思是把LED灯关掉。
如果我想让传感器带的那路继电器断电(比如联动关闭排风扇),就把order改成:
(1是开,0是关)
用Linux命令行测试最直接:你可以直接在终端里复制这个改改就能跑。
如果返回的HTTP状态码是200,基本就成了,设备会立刻响应,通常在100毫秒左右。
五、别忘了另一边:它得把“有人/无人”推给你
虽然这期重点是远程控制,但如果只发命令不收数据,这传感器就废了一半。
你需要准备一台公网能访问的服务器地址(比如http://你的域名/api/receive),去芯步控制台的“消息推送”里填上它。
当那个吸顶红外探测到“有人变无人”或者“无人变有人”时,它会主动给你的服务器发这样的数据:
infrared_target 是 1 就是有人,0 就是没人。收到这个,你就可以触发你自己的业务逻辑了。
六、万一接不通?这几个地方先自查
签名错误(bad sign):99%是因为时间戳
ts没对上,或者 MD5 的顺序错了(一定是先加密密码,拼上时间戳,再加密一次)。IP白名单:如果你在控制台开了IP检查,别忘了