设计一个智能LoRaWAN喷泉与追踪器
你真的每天喝1.5升水吗?这款智能饮水机通过RFID徽章识别你的身份,精准分发毫升级的饮用水,并通过LoRaWAN长距离网络自动将你的饮水数据发送至网络应用!
我们都知道:为了保持健康,每天至少要喝1.5升水。然而,在办公室或学校里,很难准确知道自己实际摄入了多少水量。虽然有一些手机应用可以追踪饮水情况,但手动记录每一杯水又很繁琐,最终容易放弃。因此,我们需要通过一个安全、非接触式且完全独立于本地Wi-Fi网络的系统来实现这一过程自动化。该项目是我们在亚眠大学工程学院学习期间完成的研究项目之一。
硬件
这就是这款智能喷泉的诞生方式!其核心理念采用“双核”架构,以确保绝对可靠的性能:
•硬件大脑(Arduino Leonardo):它实时管理所有物理过程。通过监测放置在玻璃下方的应变片(HX711),动态测量倒入水的重量;利用继电器和操作按钮控制潜水泵。停止量程精确到最接近的百分之一升!
•网络大脑(Arduino MKR WAN 1310):专用于物联网通信。它读取用户的RFID徽章(RC522),并通过The Things Network与LoRaWAN长距离网络进行通信。
我们最初完成的代码遇到的一个问题是I2C总线过载,导致某些组件在服务后停止响应。因此,我们从一个Arduino板更换为两个。
Arduino 软件
网络大脑:Arduino MKR WAN 1310
该代码的唯一目的是管理用户身份认证以及与云端的无线通信。在启动时,板子通过OTAA方式安全地在LoRaWAN网络(物联网网络)上进行身份认证。连接成功后,进入待机模式并监控RFID读卡器。当用户刷卡时,MKR会保存卡片的唯一标识符(UID),并通过串行连接(TX/RX线缆)向第二块板发送唤醒指令(START:),然后再次进入待机模式。水服务完成后,它接收精确的用水量数据,将其与卡片ID结合,生成一个超轻量级的数据包(5字节),并通过LoRa网络发送出去。为确保数据不丢失,代码包含一个安全回环机制,要求网络返回确认(ACK),并在发生失败时自动重试。
硬件大脑(边缘计算):Arduino Leonardo
该代码充当了水龙头的物理控制器,能够实时管理机械装置和传感器,且完全不依赖互联网。它持续监控串行连接。当接收到网卡发出的启动信号(START:)时,便会激活LCD屏幕并引导用户操作。其优势在于对称重模块(HX711)的精准控制:它不会依赖固定重量,而是等待玻璃杯被放置后,分析重量的微小变化。一旦重量稳定超过一秒,系统将动态校准“清零”重量,并授权开始供水。水泵的安全性由一个关键循环(while)机制保障:一旦按钮松开、达到33毫升上限或用户突然拿走杯子,系统会立即切断供水。服务结束后,系统将克数转换为厘升,并将最终体积(VOL:)发送至网卡进行计费。
与物联网的通信
用户体验
该应用的目标是打造一个如同倒一杯水般简单的界面。因此,我们选择了一种极简的设计,同时保留了所有必要的功能。
在主屏幕上,您会看到一个登录窗口。登录后,您的每日饮水量和目标将显示出来。左侧的导航栏可让您查看饮水记录或达成目标时间最长的用户排行榜。
您可以查看7天或30天内的消费记录。
排行榜是我们添加的一个小功能,用于根据用户连续达成目标的天数来挑战他们。
当然,网站是响应式的。这里有一个在 iPhone 14 Pro Max 上的示例。
计算机辅助设计
在喷泉的设计中,盒子是最简单的选择,因为我们可以在其中容纳所有所需的电子元件以及水箱。因此,我们使用了达索系统(Dassault Systèmes)的SolidWorks工具来创建物体的三维设计。我们从MakerCase网站下载了一个预先制作好的盒子,然后根据我们的需求对其进行修改。
我们为按钮添加了一个插槽,屏幕和玻璃各有一个位置。至于RFID传感器,我们将其隐藏在木材后面,因为波浪可以穿透它,并在木板上画出图案,以指示扫描徽章的位置。
结论
该项目让我们面临一个激动人心的挑战:将一项日常活动(饮水)转变为有趣且自动化的体验,同时解决具体的技术问题。通过采用“双核”架构,我们成功地将复杂的物理传感器管理与网络通信分离,从而确保了系统的高度可靠性。选择LoRaWAN网络后,这款喷泉可部署在任何地方,无需担心Wi-Fi密码或校园及企业防火墙的限制。
从用户的角度来看,这个挑战已经成功完成。该应用的目标是打造一个如同为自己倒一杯水般简单的界面。通过“名人堂”系统,保持水分摄入变成同事或学生之间有趣的日常挑战!
尽管喷泉功能齐全,但像这样的项目永远无法真正完工!以下是我们在未来考虑改进的几个方面:
冷却系统:在夏季集成一个模块以供应冷水。
推送通知:如果用户中午前未达到每日目标的一半,就会向其智能手机发送通知。
这个项目是一次令人充实的探索之旅,让我们有机会涉足各种领域:SolidWorks三维设计、激光切割、C++编程、物联网以及网页开发。
本文编译自hackster.io





