基于51单片机的水质检测系统开发

单片机水质检测系统开发

  • 水质监测参数选择
    • TDS
    • PH
    • 浑浊度
    • 水温
  • 硬件电路
  • 程序

水质监测参数选择

目前人们对环境问题日益重视,用水健康更是作为重中之重,水质的检测参数有很多,比如:TDS,PH,浑浊度,另外还有一些水文参数如水深,水温等等。
想做一套水质检测系统,大体思路就是选择几个要检测的参数,然后分别用相应的传感器 去测量,将转化后的电信号传递给主控,主控通过AD采集模数转换得到精确测量值。下边总结下这次做设计用到的几个传感器。

TDS

TDS(Total Dissolved Solids),中文名总溶解固体,又称溶解性固体总量,表明1 升水中溶有多少毫克溶解性固体。一般来说,TDS 值越高,表示水中含有的溶解物越多,水就越不洁净。虽然在特定情况下TDS 并不能有效反映水质的情况,但作为一种可快速检测的参数,TDS 目前还是可以作为有效的水质情况反映参数来作为参考。
  生活中有常见的TDS检测设备例如TDS笔,但是它作为成熟产品,我们只能操作它,却无法得到他的检测数据传给单片机,并且作为手持设备,我们无法保持长时间在线监测。因此需要选一个TDS传感器模块来实现这个功能。当然这个模块可以自己去做,但是需要了解测量电极特性,以及比较深入的模电运放知识,这里就不深究了,我在淘宝上购买了一个可以即插即用的模块,其实淘宝上现在也有很多,当时之所以选这个,是挑来挑去。发现这个的资料最全,有STM32 ,51 ,Zigbee, Arduino 各个平台的例程,甚至都可以直接拿来就用。虽然对51很熟悉,但是说不定以后想在其他平台尝试,这点就很好了。
  选的这个传感器模块参数:3.3-5V 的宽电压供电,0~2.3V 的模拟信号输出,使得这款产品兼容5V、3.3V 控制系统,能非常方便的接到现成的控制系统中使用。这点就很重要,因为STM32的供电电压是3.3V,51是5V,如果传感器的测量电压超过3.3V,就不能直接在STM32上使用了。
  同时因为TDS本质测的是水中离子数量,电极其实就是测得水的电导率,温度的改变对这个测量结果影响较大,所以必须得做温度补偿,对这个进行标定简直让人头大,本来想着说考验一下自己,最后还是放弃了,想做到控制变量自己标定基本无法实现,最后仔细研究了给的配套例程,里边的公式已经加上了温度补偿,大赞!
基于51单片机的水质检测系统开发_第1张图片

PH

PH相信大家都比较熟悉了,学过化学的都知道,代表了液体的酸碱度,0~14.
  同样的,工业级PH变送器价格太贵,完全不是我等穷学生用得起的,因此还是万能淘宝,找PH传感器模块。还是买TDS的那个店,他家主要做的就是传感器模块,主打的就是水质检测类的,所以就还是他的了。
  买的PH传感器模块同样适配5V平台和3.3V平台,可以通过模块上的电位器进行调节。不过需要配套的标准PH值溶液去做个标定。标定比较简单:因为PH与输出电压曲线是比例关系。两点即可确定一条直线。他家的标定溶液是三瓶一套分别是4.0,6.86,9.18.
  0-5V平台 : PH4.0对应3V,PH9.18对应2.12V,PH6.86对应2.52V
  0-3.3V平台 : PH4.0对应2.2V,PH9.18对应1.3V,PH6.86对应1.7V
  基于51单片机的水质检测系统开发_第2张图片

浑浊度

浊度很好理解,选用的浊度传感器模块利用的是光学原理,通过溶液中的透光率和散射率来综合判断浊度情况。传感器内部是一个红外线对管,当光线穿过一定量的水时,光线的透过量取决于该水的污浊程度,水越污浊,透过的光就越少。光接收端把透过的光强度转换为对应的电流大小,透过的光多,电流大,反之透过的光少,电流小。浊度传感器模块将传感器输出的电流信号转换为电压信号,电压输出范围是0到5V。
  因此需要注意,如果要是使用在STM32平台,就需要采用外接AD来做,因为它本身无法检测3.3V以上的电压,或者采用另外一种方案,也是买模块的卖家提供的,他们针对这种5V输出转3.3V做了一个集成电路模块,可以将0到5V 的电压信号线性的转换为0到3.3V,这样就可以使用STM32自带AD采集。这次做设计因为用的是51,所以没有用到,但是感觉这种方式比外接AD模块要省事儿一点吧。
基于51单片机的水质检测系统开发_第3张图片

水温

因为TDS,PH都可以做温度修正,因此这两个模块上都有DS18B20的温度接口,插上DS18B20就可以用了。

硬件电路

知道原理后硬件就好说了,因为选用的这三个传感器模块输出都是电压信号,用的单片机是STC12C5A60S2,自带AD,所以将模块的信号线接入AD引脚P1就OK。 
基于51单片机的水质检测系统开发_第4张图片

程序

程序主要就是AD采集然后根据函数关系,通过检测模拟量求得参数值。因为在这写博客不知道程序该怎么放,可以私信提供例程以及购买链接。
 最后成品图,拍的有点暗了
 基于51单片机的水质检测系统开发_第5张图片

你可能感兴趣的:(单片机系统制作)