1. 项目背景与市场需求
宠物经济近年来呈现爆发式增长,根据行业数据显示,2023年国内宠物市场规模已突破3000亿元。其中宠物洗护服务作为高频消费场景,传统门店模式面临租金高、人力成本上升、营业时间受限等痛点。无人共享宠物洗澡间通过物联网技术实现24小时自助服务,正好切中这一市场空白。
这个基于JAVA开发的物联网解决方案,核心价值在于:
- 降低运营成本:单台设备可替代1-2名洗护师,场地需求从50㎡缩减至8-10㎡
- 提升服务效率:标准化流程使单次洗护时间压缩30%
- 扩展服务场景:可部署在社区、商超等传统门店难以覆盖的区域
2. 系统架构设计
2.1 整体技术栈
采用经典的三层物联网架构:
code复制[设备层] <-MQTT/HTTP-> [平台层] <-REST API-> [应用层]
- 设备层:STM32主控+传感器模块(水温/水位/重量)+ 4G通信模组
- 平台层:SpringBoot 2.7 + EMQX 5.0 + Redis 7 + MySQL 8
- 应用层:Vue3管理后台 + 微信小程序C端
2.2 核心通信流程
- 设备上电后通过MQTT协议连接物联网平台
- 平台下发设备配置参数(水温预设值、洗护程序等)
- 用户扫码触发设备状态变更事件
- 实时数据经规则引擎处理后存入时序数据库
3. 关键功能实现
3.1 设备接入管理
java复制// 设备认证拦截器示例
@Slf4j
@Component
public class DeviceAuthInterceptor implements MqttInterceptor {
@Override
public boolean preHandle(String clientId, String username, byte[] password) {
// 验证设备SN与密钥的匹配关系
return deviceService.verifyDevice(
clientId,
new String(password, StandardCharsets.UTF_8)
);
}
}
3.2 洗护过程监控
采用状态机模式管理设备工作流程:
mermaid复制stateDiagram
[*] --> Idle
Idle --> Preparing: 扫码开锁
Preparing --> WaterIn: 检测宠物重量
WaterIn --> Washing: 达到设定水位
Washing --> Rinsing: 倒计时结束
Rinsing --> Drying: 冲洗完成
Drying --> Completed: 烘干结束
Completed --> Idle: 门锁复位
3.3 支付与结算系统
集成微信支付分账API实现多方分润:
- 平台抽成15%
- 场地提供方30%
- 设备维护方55%
java复制@Transactional
public void handlePayment(Order order) {
// 创建分账接收方
List<Receiver> receivers = Arrays.asList(
new Receiver().setAccount(platformAccount).setAmount(15),
new Receiver().setAccount(locationAccount).setAmount(30),
new Receiver().setAccount(maintainerAccount).setAmount(55)
);
// 调用微信分账API
WxPayProfitSharingRequest request = new WxPayProfitSharingRequest()
.setTransactionId(order.getTransactionId())
.setReceivers(receivers);
wxPayService.profitSharing(request);
}
4. 安全防护设计
4.1 设备端安全
- 采用TLS 1.3加密通信
- 每台设备预置唯一X.509证书
- 关键操作需平台二次确认(如排水阀开启)
4.2 平台安全策略
- 接口访问采用JWT+RBAC双重验证
- 敏感数据使用AES-GCM加密存储
- 操作日志保留180天审计追溯
5. 运维监控体系
5.1 设备健康监测
java复制@Scheduled(cron = "0 */5 * * * ?")
public void checkDeviceStatus() {
deviceRepository.findAll().forEach(device -> {
if (System.currentTimeMillis() - device.getLastHeartbeat() > 300000) {
alertService.send(
"设备离线告警",
String.format("设备%s已离线超过5分钟", device.getSn())
);
}
});
}
5.2 业务指标看板
- 设备使用率 = 实际使用时长 / 营业总时长
- 单次服务成本 = (水费+电费+耗材) / 服务次数
- 客户满意度 = 五星评价数 / 总评价数
6. 部署实施方案
6.1 硬件配置建议
| 组件 | 规格 | 备注 |
|---|---|---|
| 主控板 | STM32F407 | 带硬件加密 |
| 水温传感器 | DS18B20 | 防水型 |
| 水泵 | 24V DC | 流量≥8L/min |
| 4G模块 | EC200S | 支持TCP/IP透传 |
6.2 云端部署
bash复制# 使用Docker Compose快速部署
version: '3'
services:
emqx:
image: emqx:5.0
ports:
- "1883:1883"
- "8083:8083"
mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
app:
image: pet-wash:1.0
depends_on:
- emqx
- mysql
7. 常见问题排查
7.1 设备离线处理流程
- 检查4G信号强度(RSSI应>-85dBm)
- 验证SIM卡余额状态
- 抓取设备日志分析最后通信记录
- 远程重启指令测试
7.2 支付异常处理
- 错误码4001:检查分账比例总和是否为100%
- 错误码5003:确认商户号已开通分账权限
- 错误码6001:等待次日自动解冻
8. 商业拓展建议
- 会员体系:预存优惠+积分兑换提升复购率
- 异业合作:与宠物医院联名推出健康洗护套餐
- 数据变现:洗护数据分析报告提供给宠物食品厂商
- 硬件租赁:降低加盟商初期投入成本
关键提示:实际部署时应根据当地水质情况调整净水滤芯更换周期,北方硬水地区建议每200次更换一次。
