CATALOG

自助洗车机的痛点在于:用户操作完、水泵关掉后,风机或者泡沫机往往还要再转一会儿才能彻底停。如果全靠主控板死等,既浪费资源又不灵活。这篇文章用芯步的开放接口,结合实际的设备指令下发流程,讲清楚怎么用代码实现延时通断控制。

标题:给自助洗车机加上“小尾巴”——基于芯步接口的延时断电解决方案

各位设备集成商、洗车机厂商朋友们:

大家好!今天咱们不聊虚的,就聊聊自助洗车机机柜里的那点事儿。

大家都知道,自助洗车机虽然是个铁疙瘩,但它的“大脑”其实挺“直男”的——收到指令就干活,指令一停就歇菜。但在实际场景中,我们经常遇到一个bug:用户按了“停止”,水枪是不喷水了,但管道里的余水还没排干,或者风机还在高速旋转,直接掐断电源容易烧保险。

这时候,我们就需要一个 “延时通断” 的功能。简单说就是:指令虽然发了“断电”,但机器得等个几秒甚至几十秒再真正掐断电源。

怎么用咱们的芯步开放平台来实现这个功能呢?今天手把手把这个逻辑给大家理清楚。

1. 核心思路:谁来做这个“延时”?

很多兄弟第一反应是:“我在洗车机的主板上写个死循环延时不就行了?”

行,但不够好。如果主板死机了,延时就不准了,而且这会让主板程序变得复杂。咱们做物联网的,讲究的是 “端云分离”

我们把延时逻辑放在 云端 或者 通讯链路上。具体的硬件方案是这样的:

  • 智能硬件:芯步生态里的 4G DTU 或者 Wi-Fi智能通断器(继电器模块)。这玩意儿直接串在洗车机的总电或风机、水泵的回路上

  • 控制对象:洗车机机柜里的220V交流接触器。

原理:云端通过接口告诉智能硬件“断开”,但硬件自己带计时功能,收到指令后等X秒再执行。

2. 实战对接:两种实现“延时”的手法

芯步的开放接口非常灵活,针对延时控制,我推荐以下两种方案,一种走云端逻辑,一种走设备端逻辑。

方案一:【云端定时】—— 利用 HTTP 请求的 “extra” 字段做文章

适用场景:用户洗车结束,扫码支付完成后,需要给机器30秒的“排水喘息期”。

芯步的接口文档里有个很容易被忽略的宝贝参数—— extra这个参数虽然叫“特征信息”,但我们完全可以把它当作 “延时指令” 的载体。

操作流程:

  1. 下发指令:当用户的手机点击“结束洗车”时,您的业务服务器向芯步平台下发指令。

    • 标准指令:关闭水泵({"power":0})。

    • 我们的骚操作:在指令里塞入 extra 参数。

  2. 平台转发:芯步平台将这个指令下发给设备。

  3. 设备执行:这时候,就需要智能硬件固件稍微配合一下了。正常的通断器收到 power:0 会直接断。但定制固件会识别 extra 字段:

    • 如果检测到 extra 包含 delay_30,它不会立刻断电,而是触发内部的 Timer 定时器,30秒后继电器才跳开。

优点:控制灵活,云端可以随时调整延时时间,甚至可以根据不同的洗车模式(如:普通模式延时10秒,深度模式延时30秒)下发不同的 extra 值。

方案二:【设备端“傻”逻辑】—— 配合 MQTT 的离线/上线机制

适用场景:断网情况下也要保证延时,或者不想改造太复杂的固件。

这就利用了芯步平台的一个特性:MQTT 消息推送设备保活

操作流程:

  1. 设置定时器:在您的智能硬件(如基于Ai-WB2或类似方案的通断器)代码里,固化一个逻辑:一旦收到“断开”指令,不要立刻断开 GPIO 电平,而是触发硬件底层 Timer,延时 X 秒后,再将 GPIO 拉低

  2. 状态上报:注意,这里有个坑。

    • 用户关了机,继电器其实还没断(还在延时中)。这时候设备给云端上报什么状态?

    • 正确的做法:上报 {"status":"closing", "delay":20}。告诉平台:“我已经收到关了,但我在倒计时20秒呢”。

  3. 云端同步:芯步平台通过 HTTP 或 MQTT 接收这个状态,展示在小程序上给用户看:“设备正在关机冷却中…”

优点:不依赖网络延迟。哪怕云端指令发了一半断网了,设备该延时还是延时,绝不会出现“指令没收到导致设备死机”的情况。

3. 关键注意点:别踩坑!

看了文档,有几个细节如果没处理好,延时功能会失效:

  1. 异步反馈 vs 同步执行

    • 芯步的接口返回 code:200 只代表平台收到了命令,不代表设备已经执行完成了

    • 在做延时控制时,您的业务后台千万不要傻傻等着设备响应。您需要接收消息推送,当设备真正完成断电动作(即延时结束,继电器彻底断开的那一瞬间),平台会推一条消息过来。这时候,您的后台才应该去扣用户的费,或者生成最终账单。

  2. 网关转发的时延

    • 如果您的智能设备不是直连Wi-Fi,而是通过网关连接的(比如有些433转Wi-Fi的方案),需要指定 gateway 参数。在制定延时策略时,把网关传输的这几十毫秒忽略不计,但如果网络环境差,把延时时间设置的长一点(比如5秒以上),容错率高。

  3. 并发控制

    • 接口限制单个设备1次/秒的访问频率。如果你的小程序前端手抖,连续发了10个“停止”指令,后面9个会被限流。这就意味着如果第一个指令是“延时10秒”,紧接着第二个“停止”指令可能发不下去。在后台做调用机制处理:同一个设备,5秒内只接受一次指令。

4. 总结:一个典型的 “延时断电” 通话实录

让我们模拟一下这个场景:

  1. 老王洗完车,掏出手机点了“关闭”。

  2. 你的服务器 接到指令,立即调用芯步的 device/control 接口

  3. 芯步平台 通过 MQTT 把这个指令推给了现场的 4G 通断器。

  4. 通断器 一看:“让我关风机?但我内置逻辑告诉我要等10秒,防止风机过载。”

  5. 风机呼呼转了10秒…… 10秒到点,通断器“咔哒”一声,继电器断开。

  6. 通断器 自动上报新状态:{"fan":0}

  7. 芯步平台 把这个状态推给你的服务器。

  8. 你的服务器 一看:“风机确实关了,完美!” 给老王推送账单:“本次洗车花费8元,欢迎下次光临。”

总结一下

利用芯步的开放接口做延时通断,核心就在于 “谁去计时”

  • 如果你控制欲强,用 extra 让云端参与计时。

  • 如果你求稳,把计时器写死在 设备的继电器程序 里。

两种方式都能完美解决“机柜断电滞后”的问题。这样搞,不仅保护了洗车机泵体,用户也体验不到“急停”的突兀感,大家皆大欢喜。

各位如果有具体的产品ID或继电器型号,可以在对接时针对型号看具体的产品指令表,实现更精细化的控制。

插排产品方案:
无人值守门店机柜电源控制:怎样将8位机柜总控PDU对接到软件项目中
查看 >>
怎样二次开发智能分控PDU5位以实现过流自动断电控制
查看 >>
广告灯箱设备机柜电源管理:怎样将PDU插排(8位)接入到自己的项目中
查看 >>
共享健身房设备机柜电源管理:如何将5位智能PDU接入到软件项目中
查看 >>
无人值守门店机柜电源控制:如何把机柜总控PDU8位对接到软件项目中
查看 >>
机柜场景方案:
无人值守门店机柜电源控制:如何把机柜总控PDU8位对接到软件项目中
查看 >>
无人值守门店机柜电源控制:怎样将8位机柜总控PDU对接到软件项目中
查看 >>
通信机柜设备电源管理:怎样将8位远程控制分控PDU集成到软件项目中
查看 >>
怎样在无人值守门店机柜电源控制中接入智能设备以实现5路总控电源开关
查看 >>
工业机柜电源状态监测管理中:如何将8位总控PDU对接到软件项目中
查看 >>
通断用途方案:
怎么在应急照明系统电源管理中接入智能硬件以实现定时通断控制
查看 >>
怎样在自助售货机电源管理中接入智能设备来实现低压直流负载通断控制
查看 >>
怎样二次开发AC4-10A智能开关以实现HTTP 接口远程通断控制
查看 >>
怎样二次开发50A智能电源控制断路器以实现延时通断控制
查看 >>
怎么二次开发40A远程控制计量断路器来实现远程定时通断控制
查看 >>