摘要: 为解决传统水质监测耗时费力、采样精度低、数据统计困难等问题,设计了基于物联网的多参数水质监测系统。该系统以STM32微处理器为控制核心,通过控制内部ADC采集通道对水体温度、浑浊度、pH值和TDS值进行数据采集,以esp8266模块与物联网平台服务器通信,通过串口与LabVIEW上位机进行数据传输。同时,用户可以通过OLED屏、手机App和LabVIEW上位机等3种方式对水质参数进行监测与预警。试验证明,该系统运行稳定可靠,人机交互界面简单方便,且测量精度较高。
随着社会的进步与发展,人们对饮用水、生活用水和养殖用水的水体质量都越来越关注。然而近几年来水体污染问题经常发生,这对工农业生产和人民的身体健康都产生了较大威胁[1],因此及时掌握水体的具体情况变得十分必要[2]。
在以往,对水体参数的采集通常使用人工方式测量与记录,该方式耗时费力,且采集到的数据具有偶然性,也不利于对水体水质进行综合分析。故在此设计了一套基于物联网的水质监测系统,该系统能够实时监测水体的温度、浑浊度、溶解性固体总量TDS(total dissolved solids)以及酸碱度(pH),并上传到Lab VIEW上位机生成变化曲线[3-5]。
同时还通过WiFi模块将水质信息传输到机智云物联网平台服务器[6],用户可以通过OLED显示屏、手机App、Lab VIEW上位机等3种方式查看查看水质参数具体数值。该系统利用物联网技术解决了时间与空间的限制,便于在任何时间地点查看水质情况,具有较高的研究价值。
1 系统总体结构设计
基于物联网的水质监测系统下位机围绕STM32单片机展开工作;温度、浊度、TDS、p H这4个传感器模块用于采集水体参数信息;OLED显示模块用于现场显示水体参数具体数值;USB转串口模块负责串口与上位机间数据传输;云服务器负责接收和发送WiFi模块传输过来的数据;手机App负责远距离监测水质参数;Lab VIEW上位机负责电脑端水质数据监测并提供报警服务。系统总体结构如图1所示。
图1 系统总体结构示意图
首先,STM32F103C8T6单片机内部ADC将pH、浊度和TDS传感器采集的模拟信号转换为数字信号,由于温度传感器的输出为数字信号,因此无需A/D转换。MCU将转化后的数字信号发送至内部数据缓冲区,利用串行数据总线将数据传输到OLED显示屏实时显示,并通过USB转串口模块将数据传输到Lab VIEW上位机。同时,MCU通过USART3把数据发送给WiFi模块,WiFi模块再通过TCP/IP协议把数据发送至机智云物联网平台服务器保存,这时手机App通过注册登录后绑定设备,就可以从服务器接收数据信息,从而查看水质参数。
2 系统硬件设计
2.1 STM32单片机
主控模块选用STM32F103C8T6微处理器,该单片机功耗小、成本低,功能丰富[7]。其内核为基于ARM架构32位的Cortex鄄M3 CPU,最高主频可达72MHz,其具有64 k B Flash,20 k B的SRAM,2个12位ADC,16个ADC采集通道,9个片上通信接口,37个快速I/O端口,因而被广泛应用于各种低成本的嵌入式产品中。
2.2 浊度传感器模块
浊度传感器采用TSW鄄30浊度模块。该模块供电电压为5V,最大工作电流为40 m A,工作温度为-20~90℃。因该模块采集到的为模拟信号,需要STM32单片机内置ADC转化为数字信号才能被MCU读取使用,在此选取STM32F103C8T6的ADC1的通道1采集浊度参数,其对应单片机引脚为PA1。浊度传感器与主控模块STM32单片机接线如图2所示。
图2 浊度传感器接线示意图
2.3 pH值传感器及温度传感器模块
水体pH值测量的p H电极型号为E鄄201鄄C。该模块供电电压为5 V,测量p H值范围为0~14,工作温度范围为0~60℃,测量精度为±0.1(20℃),响应时间小于1 min。由于pH值受温度的影响较大,通常需要进行温度补偿,因此该模块自带温度传感器连接引脚T0。p H值传感器与主控模块STM32单片机接线如图3所示,其中引脚PA0为STM32单片机ADC1的采集通道0。
图3 PH传感器接线示意图
在正常情况下,水体温度不会发生很大变化。若水温发生急剧变化通常是由于水体受到污染,因此水体温度也作为评估水质好坏的一个重要指标。温度传感器采用DS18B20模块,该模块接3.3V供电,可检测温度最高达125℃,最低可达-55℃,测量精度可达±0.5℃。温度传感器与p H传感器接线如图4所示。
图4 温度传感器接线示意图
2.4 TDS传感器模块
水体TDS值测量采用SEN0244型模拟TDS传感器模块。该模块供电电压为5 V,工作电流范围为3~6 m A,模拟信号输出电压范围为0~2.3 V,TDS测量范围为(0~1000)×10-6,测量精度为±5%。TDS传感器与主控模块STM32单片机接线如图5所示,PA2引脚对应为STM32单片机ADC1的采集通道2。
图5 TDS传感器接线示意图
2.5 OLED显示模块
由于系统需要显示数字、英文以及汉字,因此选用2.4384cm的OLED显示屏。该显示屏采用IIC通信,仅需连接4个引脚即可使用,非常方便。其与STN32单片机接线如图6所示。
图6 OLED显示模块连接示意图
2.6 Wi Fi及串口通信模块
Wi Fi模块采用安信可公司的ESP8266鄄12F模块。该模块兼容3.3 V与5 V电压输入,在此VCC接3.3 V供电,GND接地,GPIO0接1 kΩ上拉电阻默认设置为工作模式,TXD串口发送引脚接单片机USART3的接收引脚PB10,RXD串口发送引脚接单片机USART3的发送引脚PB11,RST复位引脚默认接1 kΩ上拉电阻,低电平时有效。Wi Fi模块电路如图7所示。
图7 WiFi模块电路
由于上位机与STM32单片机的通信方式不同,因此需要USB转串口模块实现两者间的通信功能。该模块TXD与RXD引脚与STM32单片机US鄄ART1的RXD和TXD引脚连接,从而实现把MCU内部数据缓冲区中的数据传输至上位机。USB转串口模块电路如图8所示。
图8USB转串口模块电路
3 系统软件设计
3.1 主控模块软件设计
系统主控模块软件部分的开发工具为KeilμVision5,编程语言为C语言。主控模块软件主要有系统初始化程序、定时器中断程序、传感器信号采集程序、OLED显示程序、Wi Fi传输程序。当系统通电后首先会对系统各个模块执行初始化操作,即进行硬件驱动初始化,待初始化完毕后再调用传感器模块采集水体数据,采集的数据经MCU处理后显示在OLED显示屏和LabVIEW上位机上。同时,若当前Wi Fi连接正常,Wi Fi模块会将经MCU处理并封装的数据点协议报文发送到机智云平台服务器,此时可通过登录机智云手机App实时查看各项水质信息。系统软件整体流程如图9所示。
图9 系统软件整体流程
3.2 上位机软件设计
系统上位机软件基于Lab VIEW开发完成。该上位机显示界面采用图形化的方式展现出所测得的水体数据,操作界面也非常友好、简单,采用串口通信的方式实现与STM32单片机间的数据传输。系统上位机可分为参数数值显示与参数预警设置2个部分,前者用于显示当前p H、TDS、浑浊度、温度的具体数值和曲线图,便于用户整体掌握水质的具体情况;后者用于设置水质参数上限值和水质数据的保存位置,并提供水体污染报警服务,提醒用户采取措施抑制水体污染。上位机部分程序框图如图10所示。
3.3云平台及App的设计与实现
由于自主搭建服务器的成本及难度比较大,因此选用机智云Aiot开发平台作为系统的服务器,机智云为一款致力于物联网、软硬件云服务的开发平台。此次水质监测系统App的开发工具为Android Stu鄄dio。为了使用户更方便地开发手机App并与云服务器对接,机智云公司提供了一套App的开源框架,其框架内部已完成App与云服务器的通信功能,用户只需根据自身功能需求在此框架上进行二次开发。
图10部分程序框图
用户在打开手机App后,会提示用户进行注册,在完成注册操作后让ESP8266 Wi Fi模块进入Air鄄Link模式,然后手机App会搜索并与当前设备绑定,此时系统就会接入无线局域网络与服务器通信。App显示界面如图11所示。
图11 APP显示界面
4 系统测试结果与分析
为保证水质监测系统采集数据的准确性,需要对系统进行实际测试,下位机运行如图12所示。
测试试验选取PH鄄100高精度p H测试笔作为p H值的标准检测仪器;选取SGZ鄄1000BS便携式浊度仪作为浑浊度的标准检测仪器;选取格力TDS检测笔作为TDS与温度的标准检测仪器;选择实验室为试验地点,接取3杯自来水,然后向这3杯自来水中由少到多加入p H值为4.0的缓冲液、含磷化肥、干燥的泥土及90℃开水作为待测溶液,将待测溶液充分搅拌后静置10 s,再分别使用标准检测仪器、本文系统进行检测,得到的试验数据见表1。
图12 下位机运行
表1 水质参数测试数据
注:NTU(nephelometric turbidityunit)为散射浊度单位。
表中,由标准检测仪器检测的数据为标准值,由本系统测量得到的数据为测量值;每种参数的3个数据自上而下对应于污染程度逐渐增加的待测溶液。
经过试验验证,采用所设计系统测量出来的水质参数与标准值间的误差均在3%以内,且上位机运行显示结果与下位机相同,由此表明该系统可以稳定地检测水质各项参数。上位机运行界面如图13所示。
图13 上位机运行界面
5 结语
通过试验验证,所设计的基于物联网多参数水质监控系统能够稳定运行,可以实现多种方式对水质参数的实时监测,且系统造价低,测量精度较高。另外,Lab VIEW上位机人机交互界面操作简单,功能较为丰富,手机App显示界面较为直观,该系统能够满足用户的绝大部分需求。该系统还可以应用于水产养殖等需要监测水质的领域,具有较强的应用前景[8]。