一、背景与需求分析
共享茶室作为一种新兴的无人值守业态,痛点在于“用户离开现场时后能耗控制”和“预约时段与设备状态的同步”。当用户通过小程序预约包间后,系统需要自动完成:包间总电源接通、灯光开启、空调调整至适宜温度、排气扇/新风系统启动等操作;用户提前离开现场时或时段结束时,系统应自动切断非必要电器电源。
为实现上述自动化控制,需要将8路包间电器覆盖控制器(一种支持多路继电器输出的工业级IO控制器)对接到现有的预约系统(SaaS)中。本文将以芯步开放平台作为设备连接底座,阐述完整的对接方案。
1.1 8路控制器在茶室的典型负载分配
以“8路”输出通道为基准,标准分配如下:
| 通道 | 推荐控制设备 | 说明 |
|---|---|---|
| 第1路 | 包间总电源(磁力锁/交流接触器) | 控制整个包间通断电,优先级最高 |
| 第2路 | 主照明灯 | 营造茶室氛围 |
| 第3路 | 空调(强启/红外转发联动) | 通过红外转发器或直接通断控制 |
| 第4路 | 泡茶专用插座(烧水壶) | 用户到场后手动开启,或预约时间到达前自动通电 |
| 第5路 | 新风/排气扇 | 保证空气质量 |
| 第6路 | 投影/电视设备 | 若茶室提供商务演示功能 |
| 第7路 | 氛围灯带/装饰灯 | 辅助照明 |
| 第8路 | 备用插座(加湿器/香薰机) | 提升用户体验 |
1.2 技术选型说明
市面上主流的8路IO控制器通常支持Modbus RTU(RS485)或Modbus TCP通信协议,如有人物联网USR-IO808、京金华EIO系列等。这些设备可通过4G/WiFi/以太网接入芯步平台,由平台将Modbus指令抽象为RESTful API或MQTT指令,极大降低SaaS端的开发复杂度。
二、整体设计
2.1 系统拓扑图(文字描述)
graph LR
A[用户小程序] --> B[共享茶室预约SaaS]
B --> C[芯步开放平台]
C --> D[4G/以太网/WiFi]
D --> E[8路包间电器覆盖控制器]
E --> F1[照明回路]
E --> F2[空调回路]
E --> F3[插座回路]
E --> F4[其他设备]
B --> G[管理后台/运维APP]2.2 数据流向说明
用户侧:通过微信小程序选择时段、支付、获取开门(或通电)权限。
业务层:预约SaaS处理订单状态变更,在“待使用→使用中”“使用中→已结束”等关键节点触发控制指令。
物联层:芯步平台作为统一设备底座,接收SaaS下发的HTTP/MQTT指令,透传至具体设备。
设备层:8路控制器解析指令,闭合/断开对应继电器,实现电器通断。
2.3 为什么选择芯步开放平台?
设备接入标准化:无论采用哪个品牌的8路控制器,只要支持Modbus RTU/TCP且能联网,均可通过芯步的设备管理能力统一纳管。
接口免费开放:芯步的开放接口永久免费,降低SaaS厂商的运营成本。
双通信模式:支持HTTP(同步请求)和MQTT(异步推送),应对不同业务场景的实时性要求。
三、核心对接流程详解
3.1 步骤一:设备接入与配置(一次配置,长期使用)
目标:将物理的8路控制器注册到芯步平台,获得唯一的设备ID(device)。
操作要点
在芯步控制台创建产品,定义“物模型”——即8路继电器的属性定义。
属性命名:
power1、power2……power8,数据类型为布尔型(0断开/1闭合)。
将8路控制器通过4G/WiFi连接网络,使用Modbus RTU over TCP或直连TCP方式接入平台(具体参数参考设备说明书)。
在控制台绑定设备,记录下每个包间对应控制器的设备ID。
3.2 步骤二:SaaS与芯步的接口对接
芯步提供两种调用方式:HTTP API(请求-响应)和MQTT(发布-订阅)。针对茶室预约场景,推荐主要使用HTTP API进行同步控制(如用户扫码开场时立即通电),同时订阅MQTT消息以获取设备状态变更通知(如意外断电告警)。
3.2.1 签名认证机制
每次调用需计算签名sign和时间戳ts,保证接口安全
3.2.2 核心接口:设备指令下发
在用户扫码开门或管理员远程操作时,SaaS后端需调用“向设备下发指令”接口。
请求示例(HTTP POST JSON方式)
注意
芯步返回
code:200仅代表指令已成功下发至平台,不代表设备实际执行成功。若需确认设备真实状态,应监听MQTT推送或主动查询设备属性。extra字段非常关键,可在异步消息中原样返回,用于将设备动作与业务订单关联。
3.2.3 分组控制(多包间联动)
对于连锁茶室,可能需要一键开启“全店清场模式”或“营业前全开”。芯步支持分组控制接口,将多个包间的控制器加入同一分组,一次调用批量操作。
请求示例
3.3 步骤三:预约SaaS的业务逻辑嵌入
场景A:用户预约时段开始(自动通电)
触发条件:订单状态变更为“已开始”(用户可能通过小程序点击“开门”或管理员后台确认)。
SaaS动作
查询该包间绑定的设备ID(存储于数据库包间表)。
组装
order指令,根据预设的“开场模式”决定各路通断(通常开启照明、空调、新风)。调用芯步设备控制接口。
记录操作日志,便于客诉追溯。
场景B:用户提前离开现场时/超时未续费(自动断电)
触发条件:用户点击“结束使用”或系统检测到订单超时15分钟未续费。
SaaS动作
调用设备控制接口,下发
power1:0(切断总电源)。由于大部分设备(如空调)失电后停止,达到节能目的。注意:若空调需要保持压缩机保护延时,单独控制
power3,或延时几分钟后再断总电。
场景C:手动强控(保洁/运维模式)
触发条件:保洁人员需要在非营业时段打扫,或工程人员检修。
SaaS动作
管理员后台提供“临时通电”按钮,调用接口临时开启照明和插座(不开启空调或限制时间)。
设定30分钟倒计时自动回切断电,防止忘记关闭浪费能源。
3.4 步骤四:状态同步与异常处理
由于继电器是机械动作,存在卡死或通信故障的可能。采用定期轮询+异常告警机制。
查询设备当前状态
芯步提供读取设备属性的接口(文档中未详细列出,但平台能力支持)。SaaS可每5分钟轮询一次关键包间的设备状态,若发现应断电但读取到仍在通电,触发工单系统。
MQTT订阅实时状态
当8路控制器的输出状态因手动按键或物理原因改变时,设备会主动上报。SaaS后端订阅MQTT主题api/{AppID}/device/status,实时更新数据库中对应包间的状态。
四、问题与解决方案
4.1 控制器选型
网络选择:若茶室已覆盖WiFi,优先选择WiFi版(成本低);若环境复杂或对稳定性要求高,选择4G Cat-1版本(如USR-IO808-CAT1)。
触点容量:茶室内空调、烧水壶等感性负载启动电流大,选择触点容量10A以上的继电器(277V AC 10A标准)。
输入检测(可选):若需要检测门磁状态(门是否关好)或水浸传感器,选择带DI输入端的型号。
4.2 红外空调控制的补充方案
若茶室空调为壁挂机,无法通过直接断供电来精准控制(断电再上电可能恢复关机状态),可采用以下组合方案:
使用8路控制器中的一路供电给空调红外转发器。
SaaS下发指令时,通过红外转发器发送标准开关机码,而非直接控制空调电源。
4.3 安全与风控
防短路设计:每路输出后必须串联符合功率的空气开关(断路器)。
超时自动断电:SaaS侧设置定时任务,每隔10分钟扫描“已超时”订单,执行强制断电。
断电记忆:若8路控制器支持断电后恢复上次状态,需在配置中关闭此功能,确保每次通电后处于待机状态。
4.4 接口调用限流与重试
芯步限制单设备1次/秒的访问频率。在集中控制的场景(如下午6点大量订单结束),使用分组控制接口一次性批量操作多个设备,或使用消息队列(MQ)削峰填谷。
五、项目实施检查清单
| 阶段 | 关键任务 | 负责角色 |
|---|---|---|
| 设备选型 | 采购支持Modbus TCP且已验证芯步接入的8路控制器 | 硬件采购 |
| 安装布线 | 安装控制箱,将各路负载接入继电器输出端,标注线号 | 电工 |
| 平台配置 | 在芯步创建产品、定义物模型、添加设备 | IoT开发 |
| SaaS开发 | 实现签名计算、设备控制接口封装、订单状态机联动逻辑 | 后端开发 |
| 联调测试 | 模拟用户入场、离开现场时全流程,验证继电器动作正确性 | QA |
| 灰度上线 | 选取1-2个包间试运行,观察一周无异常后推广 | 运营 |
六、结语
通过芯步开放平台将8路包间电器覆盖控制器对接到共享茶室预约系统,本质上是一个“业务系统+物联网底座”的标准集成案例。技术难点不在于接口调用本身,而在于设备选型与负载分配的合理性,以及异常场景(如网络断线、用户恶意逃单)的兜底策略。
对于开发团队而言,直接使用芯步封装好的HTTP/MQTT接口,可以规避底层Modbus协议解析和长连接维护的复杂性,将精力聚焦于预约SaaS的核心竞争力——流畅的用户体验和精细化的能耗管理。
注:本文不包含具体的SDK下载链接或完整代码工程附件。实际操作时,请参考芯步官方文档中的
sign计算示例及设备控制接口的最新参数说明。