亲,“电路城”已合并升级到更全、更大、更强的「新与非网」。点击查看「新与非网」

本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

基于ESP32的水族箱TDS监测自动换水提醒装置

发布时间:2021-08-03
分享到:

基于ESP32的水族箱TDS监测自动换水提醒装置

发布时间:2021-08-03
分享到:

我有一个想法,通过改进我的鱼缸来建造一个智能水族馆。对它来说听起来很困难:监控水,自动换水,自动喂食等等。这些都是智能水族箱所需要的功能。

现在我打算做第一步——监测水质。水中含有大量杂质、污染物和化学物质。检查水中的 TDS 是监测水质的简单方法。

第 1 步:什么是 TDS

总溶解固体 (TDS) 表示水中溶解物质的总浓度。TDS 由无机盐和少量有机物组成。TDS 水平是水中存在的总溶解固体的数量。TDS水平的单位是PPM,1 PPM TDS代表1L水中有1mg溶解固体。

第 2 步:TDS 对鱼的影响
鱼类需要一个稳定的环境,其 TDS 和 PH 值与水族箱或水族箱中的原始习性相同。不同的鱼需要不同 TDS 的水。建议大多数淡水鱼生活在水中 400PPM~450PPM TDS。浓度太高会导致鱼类死亡并导致大量藻类大量繁殖。水中TDS含量低会影响鱼的生长。总之,如果TDS上升到正常水平以上,你可能需要帮助小鱼换水。

第 3 步:如何测试 TDS

测试水的电导率是测量水中 TDS 的常用方法。溶解的固体可以提高水的电导率,溶解的固体越多,水的电导率就越好。TDS 测量将表明矿物质、盐和其他化合物是否随着时间的推移而积累。

我购买了一个用于在线测量 TDS 的套件,它由 TDS 探头和转换器组成。转换器通过 TDS 探头测量水的电导率,并将结果转换为电压信号。

第 4 步:控制器设置

除了 TDS 测量的传感器部分,我必须准备一个控制器来接收结果和一个显示器来显示 TDS 水平。带ESP32的3.5英寸显示板是我过去完成许多项目的最佳选择。

除了带电容式触摸的 3.5 英寸显示屏外,该模块还具有 WIFI 连接,我什至可以将我的任何结果更新到互联网,这是我在项目进行时可能需要的。该板适合连接TDS转换器,因为它具有传感器/执行器的扩展,方便我的项目进行。

第 5 步:硬件连接

将 TDS 探头连接到 TDS 转换器板。并通过以下连接连接转换器和 ESP32。TDS转换板输出的是模拟电压,所以ESP显示接口有A/D的管脚都可以,我用的是IO36:

ESP32 <------> 转换器
3V3 <------> VCC
地 <------> 地
IO36 <------> A0

然后通过 USB 线为 ESP32 供电。

第 6 步:编程

我已经用 Arduino 对 ESP32 进行了编程以测量 TDS,代码可在Github 上找到

ESP32 必须接收 TDS 转换器输出的电压信号,并用指定的公式计算这些:

tdsValue=(133.42*compensationVolatge*compensationVolatge*compensationVolatge - 255.86*compensationVolatge*compensationVolatge + 857.39*compensationVolatge)*0.5;

为了驱动显示器,需要安装库TFT-eSPI.h。参考库中包含的示例(TFT_ring_meter),我对其进行了编程并得到了一些漂亮的展示。

xpos = 480 / 2 - 160,ypos = 0,间隙 = 15,半径 = 170;
    // 注释掉上面的米,然后取消注释下一行以显示大米
    ringMeter(value, 0, 1000, xpos, ypos, radius, "ppm", BLUE2RED); // 绘制模拟仪表

用实例编程得到的图片很多。

第 7 步:组装和测试

编程后,我尝试测试自来水TDS,输出为144PPM,这似乎是合理的。我用一些胶带将显示器和转换器固定在水箱壁上,并将 TDS 探头放在水中进行测量。这在测试中有点冒险,探针是防水的,而 PCBA 不是。

在鱼缸中测试了TDS,结果达到了超出范围的惊人数字。它高于999PPM。看来我不仅要给鱼缸换水,还要洗鱼缸。为了避免可能对鱼不利的TDS的巨大变化,我将一些脏水带回去,TDS测量为653PPM。

最后:
现在,这个TDS监测已经可以提醒我手动换水箱的水。

自动换水,需要将控制器控制的一些水泵和阀门组装到水箱中,这将是构建智能水族箱的下一步。

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论