基于ESP32的物联网传感器和超声波距离传感器,Watmonitor可进行实时水位监测

news/2025/3/29 6:23:42/文章来源:https://www.cnblogs.com/linkstu/p/18790584

Watmonitor是一个使用物联网传感器进行实时水位监测的自托管应用程序,具有多语言支持和易于访问的数据。

Watmonitor是一个多功能的、自托管的web应用程序,专为实时水位监测而设计。使用基于ESP32的物联网传感器和超声波距离传感器,它可以跟踪各种环境中的水位,如水井,水箱,湖泊等。

Watmonitor使水数据的监测和分析变得简单而高效。理想的个人和工业使用。提供方便地访问实时和历史数据的水位和水量。非常适合寻求实施水位解决方案的制造商和工程师!

标准来说,它每5分钟记录一次测量,因为它对低功率系统也很友好。Web界面是通用的,可以与任何传感器技术一起使用,包括先进的工业解决方案。可用于散装物料、粮仓中粮食的高度测量。

传感器节点可以以差模式(原理为超声波,测量井顶到水位的距离)、实模式(从井底计算或测量距离)发送数据。

Web界面- Watmonitor:

基于程序式PHP, HTML5和Bootstrap裸模板,SQL数据库。提供轻量级的web界面,完全响应智能手机(Android, iOS),电脑,笔记本电脑,桌子,甚至智能电视。Web界面被分成更多的子页面,每个子页面都有自己的功能,可以通过菜单访问:

•概述-显示最新的已知数据,存储在SQL数据库与实时更新

•历史记录——提供测量的全部历史记录,并提供删除精确测量的选项(需要HTTP认证才能授权用户进行操作)

•记录-跟踪最大和最小值的水位在一天,一周,一个月

•图-水位可视化期间的时间在折线图,过去2小时,24小时,7天,30天和365天

•统计—提供在SQL数据库中记录了多少测量的确切数字

•程序-根据webapp运行的域预生成ESP32微控制器的源代码,包括动态路由计算到所需的php文件,该文件负责将数据写入数据库。有WiFi和PHY以太网LAN8720连接的例子

•布线-为支持的微控制器提供接线图

•选项-有选项设置井参数,如:直径,名称,深度。可以更改用户界面的语言

•QR扫描器-基于HTML5的QR扫描器来获取最后的数据

让我们更深入地描述每个子页面:

概述:网页提供实际水位和水量数据,并显示传感器节点状态,如果在最近5分钟内发送数据。还可以看到接收到的数据的最后时间戳和新数据的预期时间戳。QR码可以通过QR扫描器扫描,通过扫描获得这些数据。

水位和体积的数值也有箭头指示,显示数值是否上升/下降或与先前的测量值相等。在输出的顶部,我们还可以看到水井的名称,可以由用户设置

历史记录:页面服务SQL数据库最新测量得到的记录。在那里,您可以看到记录的测量的时间戳、它们的唯一标识符(id)以及用户在通过HTTP认证授权后可以使用哪个按钮删除记录。

记录:此子页正在可视化多个量规图(使用Raphael的JustGage库)。可以看到一天、一周或一个月内记录的最高值和最低值。还有最后的测量值甚至提供了占用百分比。

这些仪表已经设置在源代码调色板从红色到绿色。动态地基于范围内的值,它正在改变颜色。此外,当页面打开时,这些仪表具有功能(动态效果),当bar从0开始,然后移动到水位值。

图形:基于ApexCharts库的线形图。这些图表可以显示不同时间范围内的水位。这些图形使用户能够放大任何图形部分。该部分可以进行严密的分析,甚至在缩放操作过程中动态设置图形的范围(最小最大值)。

也可以使用home键将图形重置到原来的范围。用户可以以各种格式导出整个图形或缩放子图形,以便在第三方软件(Excel,谷歌Sheets, Word, Powerpoint, MATLAB)中进一步分析或可视化。导出选项为:.svg(矢量图形),.png(像素图形)和。csv。CSV文件包含时间戳和水位值。

程序:程序子页面很有趣。它在Arduino Core中动态创建ESP32的源代码。该实现还使用了FreeRTOS和Queue进行任务间通信。一个源代码用于WiFi连接,另一个用于PHY以太网连接(RMII接口)。

这两种实现都是针对局域网中的DHCP客户端实现的。生成器能够添加web服务器域名,也确切的跟踪到目标PHP文件到源代码。还有动态放置令牌,设备需要在每次请求时发送该令牌以授权自己。

甚至源代码都是基于您在浏览器上使用的协议生成的,所以是HTTP或HTTPS连接。系统没有生成连接所需的根CA证书,因此如果您在您的域上使用Watmonitor,则需要从您的一方使用您自己的证书。

顺便说一句。在项目的Github上有更多的源代码。有Arduino, ESP8266和ESP32的示例实现。对于这些WiFi微控制器有ULP, OTA模式,WiFi设置通过WiFiManager等。

对于Arduino,有Wiznet以太网支持(W5100到W5500系列),但现在它是如此过时的硬件,使用ESP32与PHY以太网代替,更好的稳定性,加密支持,动态重新连接,如果LAN电缆断开等,一些定制板也有PoE支持。对于ESP32,在其5.2版本下也有ESP-IDF框架实现。

选项:子页面提供了设置水井尺寸的选项,其中包括厘米直径和厘米深度。如果传感器节点发送的是差分水位,则实际水位的计算采用深度。

例如,如果深度设置为400厘米,ESP32将记录50厘米,当数据到达服务器时,服务器端会进行计算,SQL数据库中的最终读数为350厘米。水井的直径是用来计算水量的。

体积不保存在数据库中,其值仍在现场计算。用户可以为其水井设置名称,也可以选择6种语言中的一种用于水位界面。标准有英语,但用户可以选择德语,法语,西班牙语,俄语,斯洛伐克语。

QR扫描仪:基于HTML5 QR扫描仪Instascan的子页面。它允许用户使用智能手机扫描网站或传感器节点本身的二维码,以获得最后已知的数据。可用于多传感器安装,通过应用程序操作人员也可以根据扫描时的名称识别准确的传感器。

增加了多种功能,如相机切换选项,手机有多个摄像头,也可以选择打开手机的手电筒,如果当前设置的相机支持它通过WebRTC。传感器的数据(井名)从Watmonitor的web界面解析。

有一个子页面json_output.php,它提供了在QR扫描仪应用程序中解析和写入的最后数据信息。相同的文件可以用于定期数据抓取的第三方服务(Grafana, Loxone, Domoticz, Thingsboard, Hassio)。

Watmonitor也有HTTP测试web接口,但不推荐,但它是唯一支持Arduino与以太网的接口,不支持HTTPS。

视频显示功能的Watmonitor网络应用程序的水位监测

还有接线图,但标准上应该是众所周知的,只是基于ESP32代码中的引脚配置(注意:ESP32与PHY以太网相比,该微控制器的所有其他示例具有不同的引脚):

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/905257.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java】【SpringBoot】Quartz——动态任务调度

回顾:前面学习了quartz的基础使用:https://www.cnblogs.com/luyj00436/p/18781141 定时任务可能是按照预设的时间进行。可是实际中,我们肯定希望自由的进行任务生成、暂停、恢复、删除、更新等操作。 Quartz本身没有提供动态调度的功能,需要自己根据相关的API开发。 场景订…

GrapeCity Documents V8.0 新版本特性

GcExcel V8.0 新版本特性丰富,包括:数据导入方面,可从多种数据源(如自定义对象、DataTable 等)导入,为 IRange.ImportData (..) 新增重载;假设分析上,通过 IWorksheet.Scenarios 接口支持 “方案” 功能,可进行多种操作且受保护工作表也能编辑;数据透视表能绑定表格数…

如何寻找替代FTP传输文件的软件,解决文件传输难题?

FTP因其操作简单、客户端种类多、价格低廉(甚至免费)等优势,受到众多企业的青睐,在全世界范围内得到广泛的应用。但它也面临着一些安全和效率方面的挑战,因此企业都在寻找可平滑替代FTP传输文件的软件。有以下局限性: 1.安全性弱:明文传输,漏洞频发,容易遭到DOS攻击;…

20244205 《Python程序设计》实验一报告

课程:《Python程序设计》 班级: 2442 姓名: 高赫 学号:20244205 实验教师:王志强 实验日期:2025年3月24日 必修/选修: 公选课 1.实验内容 (1).熟悉Python开发环境; (2).练习Python运行、调试技能; (3).编写程序,练习变量和类型、字符串、对象、缩进和注释等; (4).编…

微积分的本质——导数.18790288

本篇为3b1b系列【微积分的本质】笔记 原视频:02-导数的悖论 | 03-用几何来求导 | 04-直观理解链式法则和乘积法则定义导数 这是一个随着时间变化,车辆行驶距离的坐标图在横轴的任何一个点\(t\)上,如果你去查看车的车速表,上面都有一个数字表示当前的车速,但这是如何计算的…

推荐8款 .NET 开源、免费、实用的 Windows 效率软件

前言 今天大姚给大家推荐8款基于 .NET 开源、免费、实用的 Windows 效率软件,开发工作提升利器,希望可以帮助到有需要的小伙伴。 DevToys DevToys是一个专门为开发者设计的Windows工具箱,完全支持离线运行,无需使用许多不真实的网站来处理你的数据,常用功能有:格式化(支…

解密prompt系列51. R1实验的一些细节讨论

DeepSeek R1出来后业界都在争相复现R1的效果,这一章我们介绍两个复现项目SimpleRL和LogicRL,还有研究模型推理能力的Cognitive Behaviour,项目在复现R1的同时还针对R1训练策略中的几个关键点进行了讨论和消融实验,包括DeepSeek R1出来后业界都在争相复现R1的效果,这一章我…

读DAMA数据管理知识体系指南30文件和内容治理

读DAMA数据管理知识体系指南30文件和内容治理1. 方法 1.1. 诉讼应诉手册1.1.1. 电子取证工作一般在发生诉讼的时候进行1.1.2. 指引应明确电子取证的目标环境,并评估当前环境和目标环境之间是否存在差距1.1.3. 应记载电子取证活动生命周期的业务流程,明确电子取证团队的角色和…

为什么springboot的jar可以直接启动

一、讲述 1.SpringBoot提供了一个插件spring-boot-maven-plugin用于把程序打包成一个可执行的jar包。 2.Spring Boot应用打包之后,生成一个Fat jar(jar包中包含jar),包含了应用依赖的jar包和Spring Boot loader相关的 类。 3.java -jar会去找jar中的manifest文件,在那里面找…

折腾笔记[17]-使用rust创建linux系统服务

使用rust内嵌配置文件, 创建新用户并创建linux的service服务;实现后台服务循环打印时间到`/tmp/log_file_service`. Use Rust to embed configuration files, create new users, and create service services for Systemd; Implement a backend service loop to print time to …

[PNPM] 其他包管理器

Yarn Yarn 这个包管理器是在 2016 的时候由 Facebook、Google、Exponent 以及 Tilde 团队共同开发推出的。当时 Yarn 的出现主要是为了解决 npm 在速度、安全性以及一致性方面的一些问题:安装速度确定性:项目A ---> 直接依赖: libraryX(1.0)-----> 间接依赖:librar…