博客/社区

在家里用Grafana Cloud监控硬水软化剂

2022年6月24日5分钟

我们都知道Grafana云有很多很酷的用途:监控一个特斯拉,密切关注牛油果植物,等等。但你知道吗,它还可以帮助防止皮肤干燥而且管损伤?

让我解释一下……

最近搬进新家后,我们发现我们住的地方的水非常硬。这是一个问题,因为它不仅会导致你的皮肤干燥,而且随着时间的推移,它还会导致器具上的水垢积聚(降低它们的效率和寿命),并导致管道堵塞。作为补救措施,你可以安装一个水软化器——一个装有盐块的水箱——以减少矿物质的积聚,并避免昂贵的维修费用。柔软剂通过离子交换的过程去除自来水中的镁和钙,使水从硬水变成无害的软化水。

问题是,盐块通常每四周左右就要更换一次,这意味着它们需要不断地监测。我往往会忘记补充水块,只剩下硬水一两个星期,直到我想起来。(一个提示:我将感受到这种效果在我的皮肤上恢复。)

市面上有内置传感器的软水器,但它们的价格明显高于没有传感器的基本型号。我的一个爱好是电子——我是Grafana实验室的高级解决方案工程师——这给了我一个想法。bob电竞频道bob彩票中奖计划在过去,我的许多电子项目都涉及著名的ESP32微控制器(它集成了Wi-Fi和双模式蓝牙,并在电池电源下运行很长时间)和各种可以插入通用输入/输出(GPIO)引脚的传感器。我想,为什么不用它来做一个小传感器,可以检测软水机里剩下的盐块的水平,让我知道什么时候该给它加满水?我可以用Grafana云要摄取数据,每两小时更新一次,并随着时间的推移以图表的形式显示。除此之外,我还可以使用Grafana的能力来监视所测盐的水平,这样当它达到某个阈值时,它就会发送警报,告诉它是时候添加更多的盐了。

我是这样做到这一切的。

开始

这是我的基本软水机的样子。红线表示是时候创建一个新的盐块了。

基本的水软化剂

在电子设备方面,我需要解决几个问题:ESP32微控制器无法运行成熟的操作系统和Grafana代理。我还需要注意保持电池寿命,这意味着我不需要控制器每60秒发送一次更新。盐的残留水平变化不是那么快(一个月大约30厘米),所以一天测量一次就足够了。作为测试的一部分,我决定每两小时更新一次。

为了获得最佳的电池寿命,你应该像这样在一个紧凑的循环中编写代码,以使设备尽可能长时间地休眠:

  • 从低功耗模式中醒来,测量盐的水平
  • 使用输入线协议将度量发送到Grafana Cloud
  • 再睡两个小时,重复这个过程

硬件和设计

制造这个设备非常简单。我使用:

  • 1 x ESP32单片机
  • 2个3.7V 18650锂离子可充电电池
  • 1 ×防水超声波模块JSN-SR04T距离传感器
  • 1 x 3D打印的情况下,把它都在一起

总成本:约15美元

你可以看到这里的设计。当测量的距离达到30厘米时,就可以用新的盐块填充了。

传感器设计

下面,你可以看到我组装的电路,传感器,电池支架和电线。

组装电路,传感器,电池座和电线

这是组装好的装置粘在软水机的盖子上。(安装的时候会翻过来。)

组装设备

在一个月的时间里,传感器以恒定的两小时间隔速率收集数据,如下图所示。图缓慢上升,直到达到30厘米的距离(橙色阈值线),这时Grafana将开始发送警报邮件。在35厘米处(红色阈值线)盐将完全消失。

传感器数据在Grafana中可视化

摄入的指标

Grafana云指标支持各种协议来摄入指标:

在使用RESTful api时,可以通过POST请求提交文本友好的协议很容易用任何语言开发。在这个项目中,出于这个原因,我决定使用流入线协议,因为它真的很容易在代码中构建。

基本的输入线协议可以这样解释:

watersoftner的deviceid = water-softner ping_distance = 30 1653427945200300600  | -------- --------------- —--------------- | | | | | | | | | +-----------+--------+------------------+---------+--+---------+ | 测量|,tag_set | | field_set | |时间戳 | +-----------+--------+------------------+---------+--+---------+

在代码中,这可以表示为:

text =" watersoftner,deviceid=water-softner ping_distance=" + String(measured_cm);httpResponseCode = http_grafana.POST(文本);

(源代码和3D设计可以通过Github库找到在这里)。

我使用这个指标在Grafana中查询,使用PromQL语言:

标准查询

下面是我如何配置它,当测量值超过30厘米时发送警报:

警报配置

这是当警报被触发时出现在我的收件箱中的内容:

Grafana警报电子邮件通知

成功!

多亏了Grafana Cloud,我再也不会忘记及时补盐了。我家人的皮肤,我们的管道和我们的电器都非常感激,现在我不用担心将来要花钱修理硬水损坏。我真的很喜欢研究和建立这个项目。它向我展示了ESP32社区的价值,以及与Grafana Cloud集成是多么容易。我已经在考虑我的下一个项目了:追踪我们的狗一天中进出狗栏的次数。

Grafana云是开始使用度量、日志、跟踪和仪表板的最简单方法。我们对每个用例都有一个慷慨的免费永久层bob体育手机二维码和计划。现在就免费注册