自助洗车场景中,延时通断控制是核心需求——用户启动设备后,系统需在计费结束时自动断电,同时避免水泵空转或泡沫泵残留。以下方案基于芯步开放平台的HTTP/API与MQTT双通道能力,结合具体指令格式和状态机设计,给出可落地的实现路径。
解决方案:基于芯步开放平台实现自助洗车设备远程延时通断控制
1. 概述与行业痛点
在自助洗车场景中,用户扫码付费后,系统需要临时授权启动高压水枪、泡沫机等设备;当用户暂停、用完预设时长或点击“结束”时,系统必须能自动切断电源,防止设备空转或未授权使用。
本方案基于芯步开放平台,利用其成熟的HTTP API与MQTT协议,将洗车机内的继电器模块接入云端。通过定义“立即通断”与“延时通断”两套控制逻辑,业务后端(Server)能够精确管理设备状态,实现订单结束后的自动断电保护,避免因网络丢包或设备离线导致的“长通电”事故。
2. 硬件选型与接入逻辑
在自助洗车设备的控制柜中,通常会部署4G Cat.1通讯模组或Wi-Fi继电器模块。这些硬件烧录了芯步的固件后,便成为了平台可管理的“智能设备”。
核心执行器:
设备类型:4路/8路Wi-Fi/4G继电器模块。
控制对象:清水阀、泡沫阀、吸尘器电机、门锁。
接入方式:设备通过MQTT协议保持与芯步云的长连接。设备上线后,会订阅特定的指令主题(例如:
api/{AppID}/device/control),随时等待服务器指令。
3. 技术实现:延时通断控制
针对“延时通断”场景(如:用户结束订单后,水泵还需运行2秒以排空余压,或照明灯延时1分钟关闭),我们不能仅依赖业务服务器的定时器(若服务器与云端通信中断,指令将无法送达)。更好的做法是利用设备端的本地定时能力或云端的异步指令队列。
3.1 指令下发接口配置
利用芯步开放平台的 device/control 接口,我们可以通过HTTP方式或MQTT方式下发指令。以下是实现延时控制的命令格式示例:
接口地址:http(s)://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}
关键参数解析(JSON格式):为了满足延时需求,我们自定义指令协议,利用 order 字段传递控制参数。推荐使用POST方式,携带JSON体
3.2 两种延时模式的实现机制
根据洗车场景的安全性要求,我们设计了两种方案:
方案 A:云端定时+即时下发(适合普通场景)
业务后台收到“开始洗车”请求。
调用芯步接口下发
action: on指令。同时,业务后台启动一个定时任务(例如 Redis 过期事件或延迟队列),设定倒计时。
结束后:定时器触发,业务后台再次调用接口下发
action: off。优势:逻辑全在云端,设备固件无需修改;劣势:对业务服务器网络依赖强。
方案 B:设备端硬件定时(推荐,高可靠性)在设备固件层面增加逻辑:收到指令时解析
delay_off参数。设备立即闭合继电器,同时在设备MCU(如Ai-WB2或ESP32)内部启动定时器,到点后自动断开。优势:即使断网,只要设备收到了“开启+延时”指令,也能在指定时间后自动断电,极大提升了洗车位的安全性,防止水空转烧泵。
3.3 指令执行状态追踪
由于网络延迟或设备离线,命令可能下发成功但未执行。芯步平台提供了异步消息推送机制来解决这个问题。
发送指令:业务后台调用API,平台返回
{"code":200}仅代表指令已接收。订阅回调:业务后台需配置一个接收端(Webhook),订阅设备的执行结果。
确认执行:当设备成功开启或关闭后,会向平台上报一条消息,平台推送到业务后台,此时后台才将订单状态标记为“进行中”或“已关闭”。
4. 业务流程设计
以下是在自助洗车场景下的完整数据流:
扫码授权:用户扫描洗车机二维码,支付成功。业务后台生成一个
Order_123。开启设备
业务后台调用芯步API。
指令下发至洗车机,水阀开启。
设备返回成功,后台记录“工作中”。
用户主动暂停/结束
用户点击小程序“暂停”。
后台下发
action: off指令,设备立即断水。
自动延时关闭(核心场景)
场景:用户洗车余额用完,或手机信号差发不出指令,亦或洗车超时。
动作:业务后台检测到订单超时,下发指令:
{"relay_id":1, "action":"off"}。进阶动作:为防止枪管内的水压瞬间冲击,可先下发指令关闭高压泵,延时5秒后再关闭电磁阀。
状态监控:管理员在后台可实时看到所有设备的在线/离线状态,若设备故障,平台直接通过API推送告警。
5. 关键代码实现逻辑(伪代码示例)
以下片段展示了如何通过芯步开放平台向洗车机下发一个“开启5秒后自动关闭”的脉冲指令:
6. 风险控制与优化
设备离线处理:如果设备离线,API返回200并不代表设备真的开了。业务系统必须监听芯步平台的设备上下线Webhook。如果设备离线,不应生成“使用中”订单,或提示用户设备不可用。
安全冗余:在继电器的电路设计上,串联一个“看门狗”定时器。即使云端指令和设备程序都死机,物理电路也能在超时后自行切断,实现绝对安全。
多设备批量操作:芯步接口支持一次向最多100台设备下发指令。在洗车站点连锁管理中,可以利用此特性实现全场紧急断电,避免逐一发送请求带来的延迟。
7. 总结
通过在芯步开放平台上对接自助洗车机,开发者只需关注上层业务逻辑。利用平台提供的device/control接口结合自定义的delay_off指令参数,可以轻松实现从“水泵精准延时关停”到“车位照明过时熄灭”等一系列复杂的自动化控制,显著提升自助洗车场景的智能化水平与安全性。