针对你的需求,结合芯步的接口能力,这里有一套比较落地的解决方案。
简单来说,点动就是“按着才动,松手就停”;自锁就是“按一下动,再按一下停”。
我们要做的,就是在你的售货机控制后台(或者手机APP里),通过芯步的接口,给售货机的电机发送不同的指令序列,来实现这两种模式的切换。
以下是详细的“手把手”改造方案:
第一步:搞清楚你的“智能设备”是怎么听话的
首先,你的自动售货机里肯定有一个控制板(继电器或者PLC),这个控制板连着芯步的4G模组或WiFi模组。
芯步提供了一个开放接口,你可以通过它给设备发命令。
通信方式:用HTTP POST请求,或者MQTT协议。
核心参数:需要填
device(设备ID)和order(具体指令)。
举个例子:假设你售货机里那个控制“推板出货”的电机,它的控制指令是 {"motor":"on"} 启动,{"motor":"off"} 停止。
第二步:两种模式的逻辑设计(核心代码思路)
现在,我们不在硬件上改电路,而是用软件的逻辑来模拟这两种模式。你可以在你的云服务器上写一段逻辑,也可以利用售货机主控板里的程序。
1. 点动模式:如何实现?
场景:维修工打开柜门,按住“调试按钮”,电机缓慢转动;松手,电机即停。逻辑:这是最简单的“即发即断”。
操作:手指按下去。
动作:调用芯步接口,发送
{"motor":"on"}。操作:手指抬起来。
动作:立即调用芯步接口,发送
{"motor":"off"}。
2. 自锁模式:如何实现?
场景:正常售货,顾客扫码付款后,电机需要转3秒把货推出来,然后自己停。逻辑:这就是经典的“起保停”电路逻辑,也叫自锁或自保持。
操作:扫码成功信号触发。
动作:发送
{"motor":"on"}。维持:程序内部记录一个状态“电机工作中”。
停止:3秒后(或检测到出货信号后),发送
{"motor":"off"}。
第三步:模式切换的具体实施方案(重点)
难点在于怎么让管理员方便地切换这两种模式?这里提供两种方案,推荐方案一。
方案一:利用“云端标志位”实现软切换 (最推荐)
原理:在设备主控芯片里写一段判断逻辑,不需要改接线。
物理接线:使用一个单刀双掷开关或者一个切换按钮接到售货机控制板的GPIO口。芯步接口逻辑你需要在售货机的主控代码里写这样一段伪代码,这是最核心的
方案二:利用“下发指令”实现远程切换
如果你不想在机器上装物理开关,想在后台上点一下鼠标就切换模式。这需要MCU(微控制器)编程配合芯步的“下发指令”接口。
云平台操作:管理员登录后台,点击“切换模式”按钮。
接口调用:后台调用芯步的
device/control接口。请求示例
POST https://api.thingboot.com/{AppID}/device/control/Body内容: {"device":"你的售货机ID", "order":{"work_mode":"self"}}(self代表自锁,jog代表点动)
设备处理:售货机里的单片机收到
work_mode变了,就切换内部逻辑。这样,模式切换就是“软”的,不用碰机器。
第四步:技术点说明
1. 解决“自锁”时的重复触发问题
在自锁模式下,如果顾客网络卡顿,连续发了两个“出货”指令,电机不能转两次把货全推出来。解决方案:需要在设备代码里做互锁。
代码逻辑:只有
isBusy == false(空闲状态) 时,才响应指令。响应后立刻把isBusy设为true,等出货完成、电机停止后,再改回false。
2. 点动模式的安全冗余
在点动模式下,通常用于维修。为了防止意外,可以利用芯步的超时机制。
逻辑:如果在点动模式下,连续按着不放超过10秒(防止电机堵转烧毁),程序可以强制发送
{"motor":"off"}指令进行保护。
3. 接口调用的注意点
签名:调用芯步接口需要
sign签名(md5加密),别忘了加ts时间戳,不然会报错。异步反馈:有时候你发指令只是代表平台收到了,设备不一定执行成功。开启消息推送,确认设备真正返回了“执行成功”的反馈。
总结一下配置清单
硬件准备
支持点动/自锁切换的物理开关(或者干脆不要,直接用软件逻辑)。
芯步4G模组(已烧录好固件)。
软件代码
在售货机主控代码中增加
if-else判断逻辑,实现上述的点动/长动算法。
云平台配置
登录芯步控制台,拿到你的
AppID和AppSecret。准备好调用
device/control接口的代码脚本。
这样,你的自动售货机就可以实现点动/自锁的灵活切换了。维修时切点动慢慢调试,运营时切自锁一键出货。