物联网AI MicroPython传感器学习 之 TDS水质检测传感器

学物联网,来万物简单IoT物联网!!在这里插入图片描述

一、产品简介

TDS是Total Dissolved Solids的缩写,中文名总溶解固体,也叫溶解性固体总量,他标识1升水中溶有多少毫克的可溶解性固体。一般来说,TDS值越高,表示水中含有的溶解物越多,水就越不干净;反之,TDS值越低代表水越干净。因此,TDS值的大小,可作为反映水的洁净程度的依据之一。 常用的TDS检测设备为TDS笔,虽然价格低廉,简单易用,但不能把数据传给控制系统,做长时间的在线监测,并做水质状况分析。将TDS探头浸入水中测量水的TDS值。 该产品可应用于生活用水、水培等领域的水质检测。
TDS传感器外观及引脚如下图所示。
image.png
image.png
引脚定义

  • 1:电源负极
  • 2:电源正极
  • 3:输出模拟信号
  • 4:电源指示灯
  • 5:TDS表笔接口

二、技术参数

  • 工作电压:3.3V~5.5V
  • 输出电流:0~2.3V
  • 工作电流:3mA~6mA
  • TDS测量范围:0~1000ppm
  • TDS测量精度:±10%F.S.(25摄氏度)
  • 工作温度:-10°C~65°C
  • 存储温度:-20°C~80°C
  • 模块重量:15g
  • 板子尺寸:42mm x 32mm

注意:TDS表笔不能用于55摄氏度以上的水中
TDS探头放置位置不能太靠近容器边缘,否则会影响测量结果
TDS探头仅头部与导线为防水,可浸入水中,和信号转接板的连线接口处不防水

三、软件接口

TDS(adcObj,T) - 创建TDS传感器驱动对象

  • 函数原型

tdsObj = TDS(adcObj,T=25)

  • 参数说明
参数类型必选参数?说明
adcObjADC传入ADC对象
TNumber水温,单位:摄氏度,默认值为25
  • 返回值

TDS传感器对象成功,返回tdsObj对象;TDS传感器对象创建失败,抛出Exception

  • 示例代码
from machine import ADC, Pin
import tds

# 初始化 ADC 类型的设备
adcObj = ADC(Pin(32))
tdsObj=tds.TDS(adcObj, T=26)
print("tdsObj inited!")
  • 输出
tdsObj inited!

getTDS() - 获取水质检测结果

  • 函数功能:

获取当前水质检测结果

  • 函数原型:

TDS.getTDS()

  • 参数说明:

  • 返回值:

测量水质并返回水质监测结果,单位:ppm

  • 示例:
from machine import ADC, Pin
import tds

# 初始化 ADC 类型的设备
adcObj = ADC(Pin(32))
tdsObj=tds.TDS(adcObj, T=26)
print("tdsObj inited!")
tds = tdsObj.getTDS()
print("TDS measure result:", tds)
  • 输出
tdsObj inited!
TDS measure result: 153

setTemperature() - 设置水温

  • 函数功能:

设置当前水温

  • 函数原型:

TDS.setTemperature(T)

  • 参数说明:
参数类型必选参数?说明
TNumber水温,单位:摄氏度
相同水质下不同温度水的导电率是不同的,所以需要用水温对测量结果进行校准
  • 返回值:

  • 示例:
from machine import ADC, Pin
import tds

# 初始化 ADC 类型的设备
adcObj = ADC(Pin(32))
tdsObj=tds.TDS(adcObj, T=26)
print("tdsObj inited!")

tdsObj.setTemperature(28)
print("set temperature done")

tds = tdsObj.getTDS()
print("TDS measure result:", tds)
  • 输出
tdsObj inited!
set temperature done
TDS measure result: 151

四、接口案例

  • 案例代码
from machine import ADC, Pin
import tds
import utime

# 初始化 ADC 类型的设备
adcObj = ADC(Pin(32))
tdsObj = tds.TDS(adcObj, T=26)
print("tdsObj inited!")

tdsObj.setTemperature(28)
print("set temperature done")

while True:
    tds = tdsObj.getTDS()
    print("TDS measure result:", tds)
    utime.sleep(1)
  • 输出
tdsObj inited!
set temperature done
TDS measure result: 150
TDS measure result: 153
...

五、工作原理

TDS传感器检测的是“溶解性固体总量”,这些可溶解的物质有很多,包括钙、钠、镁离子和碳酸根离子、碳酸氢根离子、氯离子、硫离子等等。
TDS的检测原理是利用正负电极形成高低电场,让水中的离子向一定的电场方向移动,移动的离子流过的电流形成一定的数值,数值越大,水中的杂质和导电性离子就越多。不过水质条件会影响TDS检测的准确性,如水温太高就不行,同样的水质,温度越高TDS值也会越高。
进行TDS测量需要如下3个步骤:

  1. 通过ADC接口读取TDS传感器引脚3的模拟电压测量结果,测量结果经过电压单位转换,用Vt标识,单位:V
  2. 用温度值(T,单位:摄氏度)对电压测量结果进行校准,结果用Vc标识,计算公式:Vc=Vt_(1+0.02_(T - 25))
  3. 将校准过后的电压转换成水质的ppm值,用T标识,计算公式:T=66.71 _ Vc _ Vc _ Vc - 127.93 _ Vc _ Vc + 428.7 _ Vc,单位:ppm

参考文献及购买链接

[1] TDS水质检测传感器购买链接

### 使用Arduino UNO模拟TDS传感器实现水质检测 #### 设备准备 为了使用Arduino UNO模拟TDS(总溶解固体)传感器进行水质检测,需准备好以下设备[^1]: - Arduino UNO板卡 - TDS传感器模块 - 连接线若干 - USB数据线用于连接电脑和Arduino UNO #### 原理说明 TDS传感器通过测量水中导电性的变化来间接反映水体中溶解物质的数量。具体来说,当电流穿过两个电极间的液体时,电阻会随着溶质浓度的变化而改变。这种关系可以被量化并转换成相应的电压信号输出给Arduino处理。 #### 接线方式 按照如下方式进行硬件连线: - 将TDS传感器的VCC端接到Arduino的5V电源接口上; - GND接地至Arduino对应的GND针脚; - DO(Digital Output)或AO(Analog Output),依据所使用的型号不同选择其中一个作为数据输入口接入A0或其他可用模拟输入通道; #### 编程实例 下面提供一段简单的程序用来读取来自TDS探头的数据,并将其打印到串行监视器以便观察: ```cpp const int tdsPin = A0; // 定义TDS传感器连接到哪个模拟引脚 void setup() { Serial.begin(9600); // 初始化串口通讯波特率为9600bps } void loop() { float voltage, concentration; // 获取ADC值并计算实际电压 voltage = analogRead(tdsPin) * (5.0 / 1023.0); // 计算TDS浓度(ppm),这里假设已知校准曲线方程式 concentration = someCalibrationFunction(voltage); // 打印结果到Serial Monitor Serial.print("Voltage: "); Serial.println(voltage); Serial.print("Concentration(ppm): "); Serial.println(concentration); delay(1000); // 每隔一秒重复一次操作 } // 用户自定义函数someCalibrationFunction() float someCalibrationFunction(float v){ /* 此处应填入具体的校正算法, 可能涉及多项式拟合或者其他数学模型 */ return v*100; // 示例简化版公式 } ``` 上述代码片段展示了如何从TDS传感器获取原始AD采样值并通过特定公式的换算得到最终想要的结果——即ppm单位下的TDS含量。注意这里的`someCalibrationFunction()`是一个占位符,代表了用户应当根据自己选用的具体品牌型号所提供的技术手册来进行适当调整的地方。 #### 数据解析与应用 经过以上步骤后,在计算机上的Arduino IDE软件里打开“工具”—> “串行监控器”,就可以看到实时更新出来的电压以及对应转化后的TDS数值了。这些信息对于了解水源质量状况非常有用,比如判断自来水净化效果好坏、鱼缸维护等场景下都可能需要用到这样的监测手段。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值