Walabot 驱动的马桶卫生监测器
该系统利用 Walabot 射频传感器判断马桶是否清洁及是否正在使用,无需摄像头。
背景
为何重要
脏污或冲洗不彻底的公共马桶是普遍卫生隐患。因摄像头无法置于马桶内,需要替代感测技术在用户进入前检测污染或占用状态。
Walabot 技术
Walabot 是可编程 3D 成像传感器,利用射频波创建环境深度图而不捕获光学图像。通过多天线对发射、接收、分析宽带信号,重建障碍物后物体的 3D 表征——非常适合摄像头不适用的室内场景。
马桶中的工作原理
传感器安装在马桶顶部。初始化时扫描干净马桶。后续每 1 分钟扫描一次,检测初始化时不存在的新物体(如粪便)。因初始状态已知为清洁,任何偏差即表示马桶已被使用或不再清洁。通过测量检测物体距离,系统还能判断马桶当前是否被占用。
系统架构
完整方案包含:
- Walabot 传感器
- 树莓派 3 作为边缘处理器
- Ubidots 云平台 (MQTT 数据上传)
- MIT App Inventor 构建的安卓 App 实时监控
树莓派读取 Walabot 输出,评估物体存在与距离,通过 MQTT 发布状态到 Ubidots。安卓 App 通过 HTTP 取数据并显示马桶是否清洁及/或占用。
安装与配置步骤
- 在树莓派安装 Walabot SDK
按 Sparkfun.com “Getting Started” 指南设置 SDK。 - 安装 Paho MQTT 客户端
树莓派运行sudo pip install paho-mqtt。 - 注册 Ubidots
在 Ubidots.com 创建账号,记下设备 Token 和 ID。 - 安装 Ubidots API
树莓派运行sudo pip install ubidots。 - 开发 Python 监测脚本
脚本配置扫描参数,识别新物体,向 Ubidots 发送状态变量。示例配置值:minInCm, maxInCm, resInCm = 30, 300, 3 minIndegrees, maxIndegrees, resIndegrees = -15, 15, 5 minPhiInDegrees, maxPhiInDegrees, resPhiInDegrees = -30, 30, 5 threshold = 2
检测逻辑基于距离阈值区分占用、未占用但脏污、清洁三种状态。
- 构建安卓 App
用 MIT App Inventor 创建 App,从https://things.ubidots.com/api/v1.6/datasources/YOUR_OWN_DEVICE_ID/variables/?token=YOUR_OWN_TOKEN获取数据(替换占位符)并显示马桶状态。
测试与验证
部署后,手动向马桶投放物体,观察安卓设备实时更新。Python 脚本检测阈值经调整可可靠识别小物体(如单个粪便)并忽略背景噪声。
关键代码片段
if targets:
for i, target in enumerate(targets):
print(target.zPosCm)
if 100 < target.zPosCm < 180:
print("Toilet is engaged.")
engage_variable.save_value({'value':1})
elif 200 < target.zPosCm < 210:
print("Toilet is not engaged, not clean.")
engage_variable.save_value({'value':0})
clean_variable.save_value({'value':1})
else:
print("Toilet is not engaged and clean.")
engage_variable.save_value({'value':0})
clean_variable.save_value({'value':0})
break
else:
print('Not engaged and clean')
clean_variable.save_value({'value':0})
engage_variable.save_value({'value':0})
结论
借助 Walabot 非光学成像,该系统提供可靠、无摄像头的马桶卫生与占用实时监测方案。树莓派边缘计算、Ubidots 云连接、直观安卓界面相结合,让公共设施和企业轻松部署、维持高卫生标准。
制造工艺