• 物联网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!")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 输出
    tdsObj inited!
    
    • 1

    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 输出
    tdsObj inited!
    TDS measure result: 153
    
    • 1
    • 2

    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 输出
    tdsObj inited!
    set temperature done
    TDS measure result: 151
    
    • 1
    • 2
    • 3

    四、接口案例

    • 案例代码
    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 输出
    tdsObj inited!
    set temperature done
    TDS measure result: 150
    TDS measure result: 153
    ...
    
    • 1
    • 2
    • 3
    • 4
    • 5

    五、工作原理

    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水质检测传感器购买链接

  • 相关阅读:
    git常用命令
    拓扑几何学
    Vim技巧-多行缩进
    大学生数学建模题论文
    智能客服能用于哪些场景?
    vue缓存当前路由(在输入框中输入信息后,跳转其他路由再回来,仍可看到刚刚输入的内容等)
    【无标题】
    C++ —— Tinyxml2在Vs2017下相关使用2(较文1更复杂,附源码)
    基于JAVA婚纱租赁系统的设计与实现
    学计算机必参加的含金量赛事!
  • 原文地址:https://blog.csdn.net/weixin_39363464/article/details/133845754