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

2023-10-16 04:20

本文主要是介绍物联网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水质检测传感器购买链接

这篇关于物联网AI MicroPython传感器学习 之 TDS水质检测传感器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/219010

相关文章

Spring AI使用tool Calling和MCP的示例详解

《SpringAI使用toolCalling和MCP的示例详解》SpringAI1.0.0.M6引入ToolCalling与MCP协议,提升AI与工具交互的扩展性与标准化,支持信息检索、行动执行等... 目录深入探索 Spring AI聊天接口示例Function CallingMCPSTDIOSSE结束语

三频BE12000国补到手2549元! ROG 魔盒Pro WIFI7电竞AI路由器上架

《三频BE12000国补到手2549元!ROG魔盒ProWIFI7电竞AI路由器上架》近日,华硕带来了ROG魔盒ProWIFI7电竞AI路由器(ROGSTRIXGR7Pro),目前新... 华硕推出了ROG 魔盒Pro WIFI7电竞AI路由器(ROG STRIX GR7 Phttp://www.cppcn

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

C++ 检测文件大小和文件传输的方法示例详解

《C++检测文件大小和文件传输的方法示例详解》文章介绍了在C/C++中获取文件大小的三种方法,推荐使用stat()函数,并详细说明了如何设计一次性发送压缩包的结构体及传输流程,包含CRC校验和自动解... 目录检测文件的大小✅ 方法一:使用 stat() 函数(推荐)✅ 用法示例:✅ 方法二:使用 fsee

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

Spring AI 实现 STDIO和SSE MCP Server的过程详解

《SpringAI实现STDIO和SSEMCPServer的过程详解》STDIO方式是基于进程间通信,MCPClient和MCPServer运行在同一主机,主要用于本地集成、命令行工具等场景... 目录Spring AI 实现 STDIO和SSE MCP Server1.新建Spring Boot项目2.a

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展