CATALOG

这是一份关于如何将芯步“智能2路交流远程控制模块”集成到无人售货机软件项目中的解决方案。

1. 为什么需要这个“两路”控制器?

在无人售货机(特别是格子柜弹簧螺旋货道机型)的实际场景中,仅控制电机转动是不够的,辅助仓位控制往往决定了用户体验的好坏。

以最常见的“饮料+外卖柜”组合为例:

  • 第一路(控制主柜):控制弹簧电机转动,将商品“推”出货道。

  • 第二路(控制加热/制冷/照明):控制柜内的压缩机或灯带开关。

芯步的这款 UNI-KZQ-AC-2 智能控制器,本质上是一个 Wi-Fi 继电器。它就像一个可以用网络控制的“开关”,负责切断或接通 220V 交流电。把它装进步进电机或灯带的供电线路中,软件项目就能远程“按下开关”。

2. 硬件接线:怎么看这个“两路”?

在写代码之前,需要明确物理接线,这直接影响代码逻辑:

  • 输入侧:接入 220V 交流电(L 火线,N 零线)。

  • 输出侧

    • 线路 1 (Power1):连接“货道 1”的电机供电线或“主柜灯带”。

    • 线路 2 (Power2):连接“制冷模块”或“加热模块”。

软件层只需要记住:给 Power1 通断指令,就是控制售货机出料;给 Power2 通断指令,就是控制环境设备

3. 核心集成步骤:HTTP 接口调用

芯步的接口比较友好,不需要处理复杂的 TCP 长连接,只要设备连上网,你的后端服务器直接发 HTTPS 请求即可,任何编程语言(Java, Python, Go, PHP)都能做

第一步:准备三要素

在芯步的控制台里找到以下三个关键值:

  1. AppID:你的应用 ID,相当于“账号”。

  2. AppSecret:你的密钥,相当于“密码”,用于签名。

  3. Device ID:设备的序列号,贴在控制器壳上的那个数字。

第二步:搞定签名(这是关键点)

芯步的接口通过 signts(时间戳)来防止篡改签名的生成算法(伪代码)如下:

第三步:下发控制指令(最核心的 API)

这是集成中最常调用的接口地址:POST https://api.thingboot.com/{你的AppID}/device/control/

假设你的售货机接到用户扫码支付成功的回调,需要出货(控制第一路接通 1 秒后断开,模拟点动),具体操作如下:

请求体案例(控制货道电机“点动”):

注意:如果需要延迟断开,可以在代码里写 sleep(1) 再发一条 "power1": 0 的指令。如果硬件支持,也可以直接使用 reset1(先断后通)或 point1(先通后断)命令来复位

控制加热/制冷(第二路):如果运营人员在后台点击“开启保温”:

第四步:获取执行结果(异步消息)

硬件接口返回的 code 200不代表电机真的转了,只代表命令成功发到了云端

为了确认电机是否真的把货推出了,配置消息推送在芯步控制台配置一个 HTTP 回调地址(或使用 MQTT)。当设备真正执行了命令后,云端会给你的服务器发一个 Webhook,包含 extra 字段里的订单号。收到这个通知后,再给用户发“请取货”的通知,逻辑最严谨

4. 软件逻辑中的“坑”与优化

在集成过程中,针对“两路”控制,有两个特别实用的经验:

① 关于“互锁”逻辑由于这个控制器只有两路,如果同时控制“加热”和“制冷”,物理上它们是同一设备,绝对不能同时通电。:在软件代码里加上判断逻辑: