CATALOG

这期我们聊聊怎么把芯步那款吸顶红外传感器(就是装在吊顶上那个小圆饼)接进你自个儿的系统里。不光能收数据,还能用HTTP反过来控制它。

我会尽量少甩专业术语,把步骤拆碎一点,跟着做就行。

一、搞清楚我们的目标:不是只听,还要能控

说实话,这种传感器平时主要是“长嘴”——它会不停喊“有人了”、“没人了”。但我们这次的需求比较特别:你要通过云端的HTTP接口,远程直接给传感器下命令。

比如你在办公室后台点一下按钮,让传感器把探测灵敏度调高;或者让它联动一个动作。

这完全可行,因为芯步这批吸顶传感器(即便是红外版)也保留了几个可控的命令点位

二、下命令之前,得先有这个“三件套”

别急着写代码,先在芯步的后台把这三样东西找齐,缺一不可:

  1. AppID:你的“身份证号”。

  2. AppSecret:你的“密码”,这个不要告诉别人。

  3. Device ID:那台吸顶红外传感器的编号,比如820720

这三个值在你注册并添加设备后,去“物联网控制台”的“开发设置”和“设备列表”里就能看到。

三、核心难点:搞定那个“双MD5”签名

芯步的接口为了安全,签名算法稍微绕了一点,但逻辑其实很耿直。它是先对你的密码做一次MD5,把这个结果拼上当前时间戳,再整体做一次MD5。

别怕,公式看懂就行:

最终签名 = MD5( MD5(AppSecret) + ts )

我拿个假数据给你比划一下:

  • 假设你的 AppSecretabc123

  • 当前时间戳 ts1700000000

  1. 计算 MD5(abc123) 得到一串字符,比如 xxxx

  2. xxxx1700000000 拼成 xxxx1700000000

  3. 再对这一长串做一次MD5,得到最后的 sign

这里有个大坑要躲开:官方文档特别强调,这里的时间戳 ts 必须是中国时间,而且服务器会校验时间差,别差太多

四、实战环节:让传感器“眨眨眼”或“断个电”

假设你想远程把吸顶传感器内置的LED灯关掉(防止夜间光污染),或者切断它的输出线路。开始动手:

请求地址(POST方式):

请求体(Body):

这段JSON的意思是把LED灯关掉

如果我想让传感器带的那路继电器断电(比如联动关闭排风扇),就把order改成:

1是开,0是关

用Linux命令行测试最直接:你可以直接在终端里复制这个改改就能跑

如果返回的HTTP状态码是200,基本就成了,设备会立刻响应,通常在100毫秒左右。

五、别忘了另一边:它得把“有人/无人”推给你

虽然这期重点是远程控制,但如果只发命令不收数据,这传感器就废了一半。

你需要准备一台公网能访问的服务器地址(比如http://你的域名/api/receive),去芯步控制台的“消息推送”里填上它

当那个吸顶红外探测到“有人变无人”或者“无人变有人”时,它会主动给你的服务器发这样的数据:

infrared_target1 就是有人,0 就是没人。收到这个,你就可以触发你自己的业务逻辑了。

六、万一接不通?这几个地方先自查

  1. 签名错误(bad sign):99%是因为时间戳 ts 没对上,或者 MD5 的顺序错了(一定是先加密密码,拼上时间戳,再加密一次)。

  2. IP白名单:如果你在控制台开了IP检查,别忘了