11798浏览
查看: 11798|回复: 11

[求助] 设计检测河水浊度的传感器

[复制链接]
本帖最后由 丄帝De咗臂 于 2015-4-17 15:30 编辑

设计检测河水浊度的传感器(原文地址http://blog.sina.com.cn/s/blog_6611ddcf0102vh28.html

温州中学 谢作如 涂郁潇颖

随着城市的发展,水资源问题越来越成为我们关注的焦点,洞庭湖蓝藻事件,造纸厂偷排污水,建筑工地偷排泥浆……这些新闻无一不牵动着人们的心。因为学校身处三垟湿地旁,我们曾多次发现河水被偷排了建筑泥浆,浑浊不堪。据说不良企业甚至会使用船只在夜里偷偷排放泥浆,环保部门的确难以管理。

通过互联网搜索,我发现如今的河水浊度监测设备动辄过万,而且水质监测一般以实验室检测为主,但这种人工采集的形式不能实时了解水质信息,难以防范不法分子的行为。能否利用网络,在湿地区域里选择多个无人监测点,实现实时监测河水的浑浊度?

一、浊度传感器的设计

要监测河水浊度,首先需要河水浊度的传感器。在淘宝上能找到的浊度传感器,要么是数千元,甚至上万元的传感器探头,要么是数十元的洗衣机、洗碗机专用的污水传感器,如下图。

设计检测河水浊度的传感器图1
洗衣机专用的浊度传感器

通过文献查找,水质浊度检查一般都使用超声,测量超声信号在不同水样中的衰减;也有利用比浊法原理,通过测量水样中微粒的散射光强度来实现的。毫无疑问,洗衣机专用的浊度传感器就是利用后面的原理。但是因为这种传感器光源和敏感电阻的间距过小,仅1-2CM,对水质浊度的变化不敏感,只能在洗衣机、洗碗机中检测污水,用在河水的日常检测就不合适了。

其实,自己动手做一个浊度传感器并不复杂。动手能力好的,可以用一个LED、光敏电阻和几个电阻,接好线就行。简要的电路如图所示,核心是采用高亮LED作为光源,用光敏电阻监测光强度。电路中R1和R2形成一个分压电路,在input端可以测出R2两端的电压,而这一电压是由R2受到的光照强度决定的。

设计检测河水浊度的传感器图2

浊度传感器的电路

慢着,这个电路怎么这么眼熟,不就是在传统的环境光传感器上加了个LED吗?对啊,其实,给普通的光敏电阻加上恒定的光源就是一个浊度传感器了。如果光敏电阻的阻值发生变化,肯定是水里有微粒阻挡了光线的通过。我们自己做的传感器,好处就在于可以自定义光源和光敏电阻之间的距离,以达到最佳的检测效果。

明白了这个道理,我们甚至不用自己画电路、接线来制作传感器了。找个普通的环境光传感器,外加一个LED直射就可以了。当然,你也可以找个常见的灰度传感器来修改,把上面的LED焊下来,把接线延长就可以了。灰度传感器依靠光线反射而获得物体表面的信息,浊度传感器则靠光线通过来得到水样的透光率,原理是一致的。

设计检测河水浊度的传感器图3

常见的灰度传感器

为了容易安放,我们设计了两个相互垂直的同心圆环探头来固定传感器,同心环内部空心,方便铺设光敏模块的电路。然后实用热熔胶和其他防水材料封闭缝隙,防止线路进水。我们最终设计的传感器,LED灯与光敏电阻相隔8cm。同样,为了数据更加准确,一个传感器中有两组光源和光敏电阻,通过两个方向的光敏电阻测量,取平均值,可得到较准确的数据。

设计检测河水浊度的传感器图4

浊度传感器示意图

注:T2,T3为两个LED放置位置,R2,R3分别为相对应的光敏接收探头(光敏电阻),T1,R1清洗装置的安装位置。

LED灯与光敏电阻相隔为什么是8cm?传感器在水里什么位置比较敏感?我们也通过多次的实验测试,经过统计分析得出这一结论。我们的试验记录表设计如下,最终确定传感器的最佳固定位置为水下60CM左右。

  
传感器位置
  
传感器数值显示
传感器数值差
水下距离h
水平距离x
环境光
三垟湿地水
cm
















二、检测代码的编写
   核心控制板方面,我们当然选择Arduino。浊度传感器通过模拟口接入到Arduino控制板。因为这个浊度传感器设置两个发射和接收模块,需要占用两个模拟口,然后由控制板对这两个数据进行取平均值处理,测试代码如下:  
  1. int _ABVAR_1_z1 = 0 ;
  2. int _ABVAR_2_z2 = 0 ;
  3. int _ABVAR_3_z = 0 ;
  4. void setup()
  5. {
  6.   Serial.begin(9600);
  7. }
  8. void loop()
  9. {
  10.   _ABVAR_1_z1 = analogRead(1) ;
  11.   _ABVAR_2_z2 = analogRead(2) ;
  12.   _ABVAR_3_z = ( ( _ABVAR_1_z1 +_ABVAR_2_z2 ) / 2 ) ;
  13.   Serial.print(_ABVAR_3_z);
  14.   Serial.println();
  15. }
复制代码

    代码很简单,用ArduBlcok也能编写,参考代码如下:
设计检测河水浊度的传感器图5

ArduBlock代码
    要监测河水浊度,传感器设计仅仅是第一步,还需要将数据实时上传到服务器,进行监测和分析。虽然Yeelink、乐联网和DFrobot厂商等都提供了物联网平台,可以将传感器数据直接上传到这些网络平台,即可快速实现实时监测的目的。但是利用这些平台,数据毕竟在他人的平台,如果要深入研究,还是要自己写个数据采集系统比较合适。于是我们用VB编写了一个采集数据的客户端,将数据存在数据库中。此外,为了方便查询,还写了WEB查询界面。
设计检测河水浊度的传感器图6

数据采集的客户端
设计检测河水浊度的传感器图7

WEB查询界面
三、传感器的效果测试
我们制作了浊度传感器,并且在学校周边的水域做了水质监控的实验。按照之前的研究结果,我们将浊度传感器安装在水下60CM处,监测设备的Arduino主板及太阳能电池板等安装在水面以上,通过水中木桩或其他方式固定在水面上。由于我们选择的数传模块传输距离可达数百米,所以数据采集的电脑就安置在附近建筑物内,数据采集非常稳定。
                  
设计检测河水浊度的传感器图8设计检测河水浊度的传感器图9设计检测河水浊度的传感器图10设计检测河水浊度的传感器图11

我们的水质监测点
四、知识拓展
    设计一款传感器,其实并不是一件很困难的事情。利用现有的传感器,修改、更换其某些关键部件或者结构,或许就能实现其他的用途。仅仅光敏电阻能感知光照的这一原理,还可以用在很多方面,除了灰度、浊度检测外,还能用在灰尘(颗粒物)检测、转速测量等方面。“物联天下,传感先行”。物联网时代,传感器是核心应用,将渗透于未来生活的各个层面。让学生研究传感器的设计,当然是很有必要的。

苦海  初级技匠

发表于 2015-4-17 14:26:49

图烂了
回复

使用道具 举报

yoyojacky  初级技匠

发表于 2015-4-17 14:44:20

图全挂。
回复

使用道具 举报

大连林海  初级技神

发表于 2015-4-17 14:57:00

把图更新一下 把代码也整理一下吧
回复

使用道具 举报

丄帝De咗臂  高级技匠
 楼主|

发表于 2015-4-17 15:31:23


改了,多谢提醒
回复

使用道具 举报

丄帝De咗臂  高级技匠
 楼主|

发表于 2015-4-17 15:31:54


已改:loveliness:
回复

使用道具 举报

yoyojacky  初级技匠

发表于 2015-4-17 15:58:11

给力!快速更新啊。。哈哈
回复

使用道具 举报

丄帝De咗臂  高级技匠
 楼主|

发表于 2015-4-17 16:03:58

yoyojacky 发表于 2015-4-17 15:58
给力!快速更新啊。。哈哈

出大丑了,就得赶紧修补:P
回复

使用道具 举报

yoyojacky  初级技匠

发表于 2015-4-17 17:09:25

丄帝De咗臂 发表于 2015-4-17 16:03
出大丑了,就得赶紧修补

哈哈,不错的还是,思路很好的说。
回复

使用道具 举报

hnyzcj  版主

发表于 2015-4-17 18:06:46

关键在与设计与制作。
回复

使用道具 举报

丄帝De咗臂  高级技匠
 楼主|

发表于 2015-4-17 19:13:47

hnyzcj 发表于 2015-4-17 18:06
关键在与设计与制作。

不愧教通用技术
回复

使用道具 举报

shangziyun  学徒

发表于 2019-5-10 11:18:07

怎么排除环境光干扰,我试了下,环境光影响很大
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail