厕所追踪器(由 Walabot 提供支持)
厕所追踪器可以告诉你厕所是否干净。它还显示它是否参与。
故事
简介
你有没有发现厕所很脏,尤其是在公共场所?这在我的地方很常见。有些人忘记冲洗,有些人不在乎是否冲洗。即使有时冲洗系统也不能正常工作。没有冲水的马桶对下一个用户来说是非常痛苦的。
一个没有冲水的马桶
那么,在使用之前你如何监控它?使用相机可以是一个简单的解决方案!!!但是你不能把相机放在厕所里。
那么,下一个选择是什么?是的,Walabot 可以是一个很好的(可能是唯一的)替代方案。 Walabot 是一种可编程的 3D 成像传感器,它使用射频技术透视物体,无需拍摄任何光学图像即可带来高度复杂的传感能力!
Walabot 通过从多个天线发射、接收和记录信号来感知环境。分析来自多个发射-接收天线对的宽带记录以重建环境的三维图像。
这使得在浴室、试验室或卧室等无法使用相机的领域中使用 Walabot 进行 3D 成像成为可能。
我正在使用 Walabot 来识别马桶是否干净。其背后的想法非常简单。 Walabot 放置在马桶顶部(通常在马桶顶上)。在初始化阶段,Walabot 会扫描干净的马桶。初始化后,它定期(1 分钟或更短)扫描马桶并检测初始化期间不存在的任何物体。由于在初始化期间马桶是干净的,Walabot 可以轻松检测到马桶上的任何新物体(例如凳子)。为了获得更好的结果,必须正确设置 Walabot 参数。 Walabot 还可以测量它检测到的物体的距离。所以,根据物体的距离,可以判断马桶是否啮合。
马桶是否使用或不使用马桶是否干净
以上两个图显示了如何检测使用和清洁度。
整个系统是如何工作的?
完整的厕所跟踪系统有一些重要的部分。 Walabot 连接到 Raspberry Pi 3。Walabot 定期扫描任何新对象,Raspberry Pi 从 Walabot 收集该信息,并使用 MQTT 协议将信息发送到 Ubidots 云服务器。要启用 MQTT 通信 pyhton paho MQTT 客户端安装在树莓派中。使用 MIT App Inventor 开发了一个 Android 应用程序,可以从中监控马桶的状态。 Android 应用程序使用 HTTP 协议从 ubidots 云接收信息。请参阅下面的完整系统框图。
系统框图
步骤:
1.将 Walabot SDK 安装到树莓派
遵循 Sparkfun.com 上的入门指南。
2.将 paho mqtt 客户端安装到 Raspberry Pi。
使用树莓派终端的命令:
须藤 pip 安装 paho-mqtt
3.在中创建帐户 育碧网 并记下设备令牌。
TokenID
4.将 ubidots API 安装到树莓派
在 pi 终端输入以下命令:
sudo pip 安装 ubidots
记下您的 ubidots API 密钥:
5.为树莓派开发python程序
为了找到合适的配置参数(R、pi、theta),我使用 Windows 版 Walabot SDK 使用来自不同位置的不同对象测试了 Walabot。我选择的值在python代码中提到过。检测小物体我取小阈值。
minInCm, maxInCm, resInCm =30, 300, 3
minIndegrees, maxIndegrees, resIndegrees =-15, 15, 5
minPhiInDegrees, maxPhiInDegrees, resPhiInDegrees =-30, 30, 5 =2 th
用windows SDK测试
在开发python程序和Android应用程序后,我手动测试了系统以了解整个系统是否正常工作。 (python程序和android源代码附在代码部分)。在最终代码中,我更新了 R 值。对于测试设置,它在测试边缘设置得很小。
testingtesting
这是在程序中实现的逻辑,用于识别厕所是否有人以及厕所是否干净。
这是代码片段:
if target:
for i, target in enumerate(targets):
print(target.zPosCm)
if target.zPosCm>100 and target.zPosCm<180:
print( “厕所被占用。”)
engage_variable.save_value({'value':1})
elif target.zPosCm>200 and target.zPosCm<210:
print(“厕所不是参与,不干净。”)
engage_variable.save_value({'value':0})
clean_variable.save_value({'value':1})
else:
print (“厕所没有使用和干净。”)
engage_variable.save_value({'value':0})
clean_variable.save_value({'value':0})
break
else:
print('不参与且干净')
clean_variable.save_value({'value':0})
engage_variable.save_value({'value':0})
6.在 MIT App Inventor 中开发 Android 应用程序(源文件附在代码部分)。
App Inventor for Android 是一个开源网络应用程序,最初由 Google 提供,现在由麻省理工学院 (MIT) 维护。
它允许计算机编程新手为 Android 操作系统 (OS) 创建软件应用程序。它使用图形界面,非常类似于 Scratch 和 StarLogo TNG 用户界面,允许用户拖放视觉对象来创建可以在 Android 设备上运行的应用程序。 -维基百科。
如果您是 App Inventor 的新手,请遵循这些初学者教程。
如果您想使用附加的源代码,您可以修改 htttp url。
改变人力资源
http://things.ubidots.com/api/v1.6/datasources/YOUR_OWN_DEVICE_ID/variables/?token=YOUR_OWN_TOKEN
只需将 YOUR_OWN_DEVICE_ID 替换为您的设备 ID,将 YOUR_OWN_TOKEN 替换为您的 ubidot 令牌。然后构建.apk 文件并将其安装到您的手机上。
构建apk文件
阅读更多详细信息:厕所追踪器(由 Walabot 提供支持)
制造工艺