学物联网,来万物简单IoT物联网!!
一、产品简介
TDS是Total Dissolved Solids的缩写,中文名总溶解固体,也叫溶解性固体总量,他标识1升水中溶有多少毫克的可溶解性固体。一般来说,TDS值越高,表示水中含有的溶解物越多,水就越不干净;反之,TDS值越低代表水越干净。因此,TDS值的大小,可作为反映水的洁净程度的依据之一。 常用的TDS检测设备为TDS笔,虽然价格低廉,简单易用,但不能把数据传给控制系统,做长时间的在线监测,并做水质状况分析。将TDS探头浸入水中测量水的TDS值。 该产品可应用于生活用水、水培等领域的水质检测。
TDS传感器外观及引脚如下图所示。
引脚定义
- 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)
- 参数说明
参数 | 类型 | 必选参数? | 说明 |
---|---|---|---|
adcObj | ADC | 是 | 传入ADC对象 |
T | Number | 否 | 水温,单位:摄氏度,默认值为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)
- 参数说明:
参数 | 类型 | 必选参数? | 说明 |
---|---|---|---|
T | Number | 是 | 水温,单位:摄氏度 相同水质下不同温度水的导电率是不同的,所以需要用水温对测量结果进行校准 |
- 返回值:
无
- 示例:
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个步骤:
- 通过ADC接口读取TDS传感器引脚3的模拟电压测量结果,测量结果经过电压单位转换,用Vt标识,单位:V
- 用温度值(T,单位:摄氏度)对电压测量结果进行校准,结果用Vc标识,计算公式:Vc=Vt_(1+0.02_(T - 25))
- 将校准过后的电压转换成水质的ppm值,用T标识,计算公式:T=66.71 _ Vc _ Vc _ Vc - 127.93 _ Vc _ Vc + 428.7 _ Vc,单位:ppm
参考文献及购买链接
[1] TDS水质检测传感器购买链接