基于arduino 的水质监测实验
#项目起源#
水,是生命之源。是人类赖以生存的永恒话题,有水的地方就会有生命,本次实验围绕水源质量展开,面向对象为小学生
小学科学课程标准中“地球与宇宙科学领域”涉及到了水体水圈的内容
小学科学六年级下册教材(教育科学出版社)中“环境和我们”的篇章设计了“考察家乡的自然水域”的内容,内容要求同学们实地考察周围水域环境,查看水体有没有废水排放,有没有污染物、动植物,最后采集一瓶水样带回去进行实验观察。教材中要求采集水样,大多数同学的做法是在河边或者池塘边将水样采集到盛水的容器中,在与学生交流的过程中,难免会有学生提出,池塘的中心部位和边缘部位的水质是否一样,爱因斯坦曾说过,提出一个问题往往比解决一个问题更加重要,学生勇于提出问题必须得到老师正面回应,出于探索的精神,我们尝试做了实验项目—《郑和一号水质监测船》,用来探测周围水域的水体质量,然后给水体质量有量化的标准
同时本实验项目也是《江苏省青少年创意编程与智能设计大赛》的参赛项目,最后由老师在船体实验的基础上拓展了部分室内实验,作为本次DFrobot举办的《科学探索实验》比赛的参赛作品
作者:徐钰朗 扬州江都国际初中
老师:郭力
由于教材中的水样采集方案没办法采集池塘或者水库中央的水样,于是我们制作了一款可以远程操控的水质监测船,取名为“郑和一号”,寓意:我们的目标是星辰大海,“郑和一号”水质监测船可以远程操控船体行走,并实时发送采集到的水质数据到物联网平台
#方案确定#
方案的确定无非是选择什么样的器材来实现我们的目的
初衷是:我们希望水质监测船可以实现真正的远程操控,自动航行,实时反馈水体质量,甚至可以帮助环境监测部门全天候不间断监测工厂企业是否有乱排、偷排污水的现象。
实现远程发送数据,通常情况下使用的wifi模块和2.4g遥控就不能满足要求了,我们需要寻找一种类似于手机流量联网的模块,于是我们找到了DFrobot最新出的BC20 NB-IoT & GNSS通信模块,全称为:窄带物联网(Narrow Band Internet of Things,NB-IoT),
本模块采用BC20芯片,BC20是我国移远通信公司2018年正式发布支持GNSS定位功能的NB-IoT模组,是物联网领域一个新兴的技术,可以在没有wifi的情况下通过蜂窝基站实现远程通信(类似于手机的流量功能)
同时BC20 NB-IoT & GNSS通信模块还具有GPS和北斗双星定位的功能,这样可以实时反馈水质监测船的经纬度信息,并告知我们此时水体质量,理论上BC20 NB-IoT & GNSS通信模块实现我们最初的想法是没有问题的,速速下单,赶紧一试
开箱后的靓照如下图,除了产品本身自带的联通联网SIM卡外,DF还额外附赠了一张电信的联网专用SIM卡,非常贴心
上电测试后才发现自带的联通卡确实不咋地,还是赠送的电信的SIM卡片香
这里我们需要注意的是,要获取详细的经纬度数据信息实验必须是在户外进行的,在室内是没办法进行定位的
程序上传,设备定位成功后,从下图的串口监视器中可以看到几项有用的信息,比如时间,纬度,经度,海拔等
此时此刻应该把全国人民引以为傲的北斗搬出来啦,我们使用的BC20 NB-IoT & GNSS通信模块是可以连接北斗卫星的,当然并不是下面这张图片(据说网络上疯传的这张图片并非真正连接到北斗卫星而是用其他手段实现的),具体北斗卫星连接看下面的介绍
7月31日正值北斗导航系统开通,为了契合这个好消息,我们来连线一下亲爱的北斗同学
下载官方提供的详细版物理位置坐标示例程序,由于该示例程序适用于Arduino MEGA,ESP32、ESP8266系列等RAM较大的主控板,所以暂时需要将arduino nano板换成arduino MEGA进行尝试
在运行程序之前需要先加载BC20的库文件文件,加载地址下图所示
示例程序加载如下图所示
板卡和端口选择正确,下载程序,下图为定位成功后串口监视器打印出来的数据
从串口打印的数据可以看到一些数据信息,有时间与日期(这里的时间是格林尼治时间,如果要北京时间需要设置为东8区),还有经纬度数据,当前范围内的卫星数量以及可以参与定位的卫星数量,其中GPS代表美国GPS定位系统,Beidou代表中国北斗定位系统,从数据中我们可以看到成功搜索到的卫星数量有8颗,“beidou”三颗,“gps”五颗,经纬度坐标一目了然,初一的同学是不是发现学完地理有用了呢
这个模块应该在户外用的,这么热的天,不想出去,想了个偷懒的办法,挂在窗户上,照样有用
远程通信的目的达到了,下面急需解决的是船体如何续航的问题,反复上岸充电明显是不现实的,利用可再生的能源为锂电池供电是一种比较可行的方案,于是我们想到了用太阳能电池板(5V 1A)和太阳能电源管理模块(5V 1A)给锂电池充电的方案解决续航的问题
通信和供电两个难题解决后我们需要确定监测水质的传感器,目的是将水体质量好坏程度进行量化,监测水质的传感器有很多种,比如有Gravity: 模拟TDS传感器,模拟PH计,Gravity:模拟水质浊度传感器
由于浑浊度传感器不能全部浸入水中测试,先排除,当然剩下的两种传感器测试方向不同,PH计可以测试电导率,TDS传感器可以检测水中的溶解性固体总量,如果能够都用在本实验中可以最全面的反应水体质量,但成本也是需要考虑的因素,于是我们本次只采用了成本比较低的模拟TDS传感器监测水中的溶解性固体总量。TDS (Total Dissolved Solids),中文名:总溶解固体,又称溶解性固体总量,表明1升水中溶有多少毫克溶解性固体。一般来说,TDS值越高,表示水中含有的溶解物越多,水就越不洁净。因此,TDS值的大小,可作为反映水的洁净程度的依据之一
注意: TDS探头不能用于55℃以上的水中。
TDS探头放置位置不能太靠近容器边缘,否则会影响示数。
TDS探头头部与导线为防水,可浸入水中,但连线接口处与信号转接板不防水,请注意使用。
水质传感器确定后,接下来需要确定的是船体的行走部分,因为是在水上监测,所以要让船在水面上行走,行走的方式会有很多种,比如用船帆,船桨,螺旋桨推进器,明轮等等
考虑到制作的难易程度,本次我们采用了比较简单的明轮驱动方式来驱动船体。
方案确定后,我们开始展开实验,实验我们分室内实验和户外实验两部分来完成
室内实验适合开展大班教学,户外实验适合开展社团课教学
#室内实验#
室内实验的设计目的是为了方便在学校课堂上开展测量实验
教学内容:
小学科学六年级下册教材(教育科学出版社)中“环境和我们”的篇章设计了“考察家乡的自然水域”的内容
实验目的:
人们以往会通过一些粗略的词语评价水源质量,比如“这里的水好干净啊”,通过本次实验,我们检测与人们生活相关的水体,将水体质量的好坏程度进行量化
情感、态度、价值观:
通过实验让同学们对不同水体质量有直观的感受,养成用科学实验数据总结规律的好习惯
实验场景:
室内实验我们主要完成六个场景的水质监测,不需要利用船体下水,只需要静态的观察监测数据就可以,实验会更加方便操作
六个实验场景分别是,自来水,美的净水器过滤后的水,沸腾之后冷却至50度左右的开水,可乐,怡宝纯净水以及农夫山泉
实验准备:
本次使用新品BC20通信模块,是为了在户外实验时能够实现远程操控的尝试,如果单纯的做室内实验教学,完全可以用Obloq物联网模块或者直接使用Mind+的实时模式
#实验器材#
材料清单
- 主控arduino nano加扩展板 X1
- 模拟TDS传感器 X1
- BC20 NB-IoT & GNSS通信模块 X1
- 下载线 X1
- 六种待检测的水体少许 X1
#接线图#
模拟TDS传感器是标准的模拟信号,我们接A0端口就可以了
BC20 NB-IoT & GNSS通信模块有I2C和UART两种接口可以使用,需要通过拨动开关切换,我们默认使用I2C接口
模拟TDS传感器和BC20 NB-IoT & GNSS通信模块与arduino nano接线示意图如下图所示
#程序设计#
准备工作,我们这里用的是“Mind+”编程环境,使用“上传模式”,点击扩展,选择主控板“arduino nano”;
点击传感器选择模拟TDS传感器
点击用户库加载BC20 NB-IoT&GNSS模块(本模块官方只提供了代码示例程序,图形化的用户库是DF工程师提前提供给旺仔爸爸测试使用的版本,暂时先不公开给大家)
登陆easy iot查看三个重要参数“Iot_id”、“Iot_pwd”、“topic”
准备工作加载好后,接下来我们进行程序编写
测试程序如下图,程序主要功能是每隔5秒向easy iot平台发送一次模拟TDS传感器测到的数值
注意程序中的“Iot_id”、“Iot_pwd”、“topic”要与easy iot平台内容一致
实验过程:
同学们今天我们来进行科学课的“考察家乡的自然水域”的内容,有水的地方就会有生命,水源质量和地球上的生命息息相关,今天我们通过有趣的实验让同学们知道生活中的水体质量如何检测,如何对水体质量做出正确的数据评价
场景一:首先我们来测试一下最常用的自来水
从下图中easy iot平台的数据可以看出自来水的TDS数值在220-230 之间属于可以接受的自来水
场景二:紧接着我们来测试经过净水器过滤后的水
净水器为美的的牌子,使用两年多没换过滤芯了
图表数据显示,美的净水器过滤后的水TDS数值在110-120之间,属于比较理想的饮用水
场景三:接下来是自家孩子调奶水壶中设定为45度的水
由于模拟TDS传感器不能用在超过55度的环境中,所以选用了给孩子调奶水壶中的水,正好检验一下孩子喝的水怎么样
数据显示在230左右,颗粒物还是比较多的,怀疑是不是很长时间没清洗,有水垢的原因,等休息的时候清洗后再测试一遍
场景四:农夫山泉
TDS数据为60左右,很理想的饮用水,里面的溶解固体应该也是人体所需的矿物质
场景五:怡宝纯净水
数据显示0,不得不说,怡宝的纯净水真干净啊
场景六:最后一个测试角色——可乐
TDS反馈的数值在800左右,可乐中溶解固体总量还是比较高的
暂时还没有从配料表中看出是哪一种溶解固体
补充场景:农夫山泉和怡宝纯净水电解实验
先对农夫山泉进行电解实验,采用的电源为12V 1A的直流电,可以明显的看到水中负极周围有气泡产生
下图的TDS数据分为两部分,64的数据为电解进行中的数据,而60-62是电解开始之前的数据,推断电解开始之后解离出了某种物质使数值上升
下图中为电解实验后可以在正极处明显观察到有颜色变化
接下来对怡宝纯净水进行电解实验,观察实验现象,并没有气泡产生
实验结论:
从六个场景的TDS数据比较后我们对水体的颗粒物含量有了直观的量化比较,可乐溶解物体总量最高,怡宝纯净水最低,
肥宅快乐水少喝为妙,单从TDS数据来看是这样的
从补充场景得出结论,矿泉水中含有矿物质,有导电性,正极上的金属被解离到水中,发生颜色反应,理性状态的纯净水不含矿物质,不具备导电性,不会发生颜色反应
含微量矿物质的饮用水是比较理想的,比如农夫山泉,净水器过滤后的水,纯净水虽对人体无害,但也无法提供人体所需的微量元素
#户外实验#
户外实验就需要把我们的“郑和一号”实地下水航行了,需要用到数字化加工工具,是综合性比较强的项目,适合校内社团课作为stem团队项目开展学习
实验目的:
考察周围水域环境,通过TDS颗粒物含量的比较,充分了解所生活环境的水源质量
情感、态度、价值观:
监测户外的水体质量,从小树立爱护保护环境的意识,通过同学合作完成项目,培养团队合作能力
实验准备:
第一次测试版本用到的器材清单有
材料清单
- 锂电池 X1
- 模拟TDS传感器 X1
- L298N电机驱动 X1
- 太阳能板5V 1A X1
- 太阳能电源管理模块(5V 1A) X1
- 主控arduino nano加扩展板 X1
- N20电机 X2
- 法兰 X2
- 联轴器 X2
- 光轴 X2
- 2.5mm奥松板 X1
#电路接线#
与前面室内实验不同的是,我们需要在原来的基础上增加太阳能模块和电机驱动模块的接线,接线如下图所示,本次的电机驱动模块采用的是比较常见的L298N双路电机驱动,特点是驱动电流大一些,缺点是接线稍微复杂,当然其他类型的电机驱动也可以选择,感兴趣的大家可以去尝试
电路连接完成后,我们需要测试功能是否正常,最后再进行组装
再来回忆一下最开始我们想要实现的功能:实现GPS定位,通过蜂窝基站由水质监测船远程发送模拟TDS传感器的数值和经纬度信息到east-iot平台(当水体质量有严重污染时,记录下此时的位置坐标,并尝试在阿里云平台实时反馈地理位置信息),在easy-iot物联网平台端可以远程操控水质监测船行走
非常不幸的是,我们在测试过程中遇到了困难,通过蜂窝基站由水质监测船远程发送模拟TDS传感器的数值到east-iot平台是完全可以的,但如果要发送经纬度定位信息到easy-iot平台就不能正常显示,同样在arduino ide代码模式下也进行了尝试,结果是一样的,于是向DF工程师反馈了此问题,下面是反馈过程
在反馈问题的同时,我们一直在思考如果BC20 NB-IOT模块不能发送经纬度信息,还可以有什么办法呢,我们同学退而求其次想到了Obloq模块发送数据,这应该算是一个曲线救国的方案了,但是如果采用此方案也就意味着我们并没有实现真正的远程操控,因为Obloq模块必须连接wifi,会受WiFi的距离限制
接下来又有同学有疑问了,既然都要使用Obloq模块了,那么BC20 NB-IOT模块是不是基本上没什么作用了,为何不修改一下方案呢,于是就有了下面的迭代方案
迭代方案的选择意味着我们并没有实现我们最初的设想,但这也没关系,虽然没有很完美的实现我们的想法,但此次团队的讨论过程是非常难能可贵的,是stem课程精髓,同时我们相信DF的工程是一定可以解决问题的,我们的项目还会继续进行下去,先利用简单版本提交比赛方案
接下来我们将改进版本的方案过程介绍如下:
#硬件补充更换#
PS2手柄*1
Obloq物联网板块*1
#电路设计迭代#
修改后的接线图如下:
模拟TDS传感器接A0, OBLOQ物联网模块连接“软串口”2和3
#外观设计#
本次作品使用了激光切割技术对奥松板进行加工
只是一个木制船并不能够安全漂浮在水面上,因此,我们便在船底加上了泡沫,以便增强船的漂浮能力。
设计图纸时需要注意预留传感器,电子元件的安装位置
下图为设计图纸
#组装#
水质监测船的木板结构比较简单,①主要电子元件安装在小盒子中避免元件触碰到水而损坏,②木制结构安装(装配)成船体,③将盒子放入船体,底部装上泡沫板以便船在水中更好的漂浮,④然后将两个转动桨叶安装到两个电动机上
下面为零件图
下图为安装在船体表面的太阳能电池板,这样的安装设计可以最大程度获取太阳能
为了防止电路部分进水,我们在船体内增加了一个一次性餐盒来防水,下图为安装在一次性餐盒中的状态
两个明轮船轮子,采用两个法兰和联轴器与n20电机相连
最终定妆照如下图:
#程序设计#
① 准备工作,我们这里用的是“Mind+”编程环境,使用“上传模式”,点击扩展,选择“L298N_RED微型电机驱动”和主控板“arduino nano”;
点击传感器选择模拟TDS传感器
点击通信模块,选择OBLOQ和PS2手柄
准备工作加载好后,接下来我们进行程序编写
② 首先,我们要完成“初始化”,让水质深测结果发送到自己的账号中,初
始化参数主要有五个,前两个是wifi名称和密码,如果是手机热点的话就输入自己手机热点的账号和密码,然后是IOT的账号id和密码pwd还有订阅信息topic_0(具体参数获取可以参考前面室内实验的介绍)
③ 接下来我们编写船体前进后退左转右转的函数程序
然后再编辑一个利用ps2手柄控制的函数,如下图
Ps2手柄在使用之前需要初始化一下,如图
④ 最后是完整的程序截图,在程序中设置了当右侧摇杆值大于250时向物联网平台发送水质数据
实验过程:
1、利用本次水质监测船对公园小池塘的水质进行测量
反馈到物联网平台的数据如下图
2、接下来在小区外面的河边进行测量,由于实验是在傍晚进行的,视频中的画面会有一些黑暗
通过反馈的数值可以看出,河边水中总溶解固体含量要比公园小池塘高
实验结论:
从反馈数据看出,公园池塘的TDS数值在180左右,水质还是不错的
小区旁边的小河边的TDS数值在270左右,比公园池塘的数值略高,水质略差
通过实验基本可以量化水体质量,对于水质比较差的下游河流,可以从上游开始跟踪监测水体质量,查找出问题的水域,思考采用什么样的方法对比较差的水体进行净化,是接下来需要解决的问题
#视频演示#
下面学生对于本次户外实验的介绍视频
https://www.bilibili.com/video/BV1NA411Y7gd
不知道为什么上面的视频一直上传不了,先放一个视频地址吧
#总结#
本次室内实验是在家中尝试的个例,只是提供了做实验的方法和思路,并没有在真实的课堂中进行教学,缺乏实践基础,如要开展大班教学需要根据实际情况完善教学实施计划,在安全操作的前提下,达到让同学们量化水体质量的目的
本次户外实验“郑和一号”水质监测船还有待提升的地方,比如,在外观结构材料上可以选择更加防水的材料,在电子电路方面,本次作品只用了TDS监测水质,后面还会尝试增加PH传感器来全方位反应水源质量;由于物联网模块受到wifi距离限制,所以只能在有Wifi覆盖的地方使用,后面有时间可以再次进行尝试使用GPS模块解决问题,让水质监测船能够实现真正意义上的远程操控,毕竟我们有一个很伟大的名字“郑和一号”,我们的目标是星辰大海
以上就是我们对本次水质监测船项目的整体介绍,欢迎指正交流
haiDIY2021.03.12
木船真能下水? 有没有防水细节
Yee2021.03.04
请问制作这个小船模型是用什么软件做的
gray66662021.02.27
好作品必须赞
微笑的rockets2021.02.04
视频没有了,可以更新下视频吗?
Mr Guo2021.02.22
不好意思,刚看到火箭大大的留言,已经处理了
Anonymous2020.11.29
一篇非常详细,优秀的实验教程