陈思超,朱兆优,邓欣
(东华理工大学机械与电子工程学院,江西南昌,330006)
本系统由采集终端和云平台协同工作的方式,实现水质参数的实时监测。终端选取STM32L475系列单片机为主控,搭配国产的智泽水质传感器完成水质数据的采集,使用4G模块wh_lte_7s5实现数据的传输。云平台端负责接收、解析、显示和保存终端上传数据,完成对养殖水域监测的需求。
硬件终端选取了水质评估中较重要的PH、溶解氧和浊度参数进行采集监测。其中对PH测量选择的是电化学型传感器,主要原理是根据水中氢离子浓度计算得到水体PH值。溶解氧测量选择的是荧光法传感器,根据某些物质激发的荧光猝熄原理,将蓝光照射至特定物质后激发出红光,通过检测红蓝光的相位差并与标定值对比计算得到溶解氧值。浊度测量选择的是散射光法传感器,根据水中浊度物质会使光产生散射的原理,通过测量入射光束垂直方向的散射光强度计算得到浊度。
系统硬件框图如图1所示。主要由单片机最小系统、水质传感器数据采集模块、电源模块、GPS定位模块、4G通信模块和SD卡存储模块等构成。
图1 系统硬件框图
系统搭载的水质数据采集单元包括浊度、溶解氧和PH传感器。三者都为485接口的数字型传感器,而单片机串口输出为TTL信号,因此设计上采用MAX3471芯片对其进行485信号的转换,在靠近MAX485的A和B之间接入一个电阻提高接口的抗干扰能力。485接口原理图如图2所示。
图2 485接口原理图
定位部分采用的是ATK1218-BD模块,该模块可同时接收GPS和北斗卫星信息且具有不错的定位精度。主控通过串口与该模块相连接,由PE11引脚对其供电电源进行控制,增加滤波电容保证电压的稳定性。串口接收其中“$GNRMC”格式的数据并解析后可以得到经纬度等位置信息。GPS模块原理图如图3所示。
图3 GPS模块原理图
4G通信采用的WH_LTE_7S5模块,该模块内置TCP/IP协议栈,通过串口与主控连接,将单片机与服务器建立网络通信。主控可使用串口AT指令将水质数据和GPS数据打包上传至云平台,再根据数据报头区分数据种类。4G模块原理图如图4所示。
图4 4G模块设计原理图
SD卡模块采用SPI接口与主控进行连接,为了防止卡槽中没有内存卡时总线悬空的问题,在接线处增加上拉电阻进行连接。使用FatFs文件操作系统,可以将采集的数据进行存储备份。SD卡模块原理图如图5所示。
图5 SD卡模块设计原理图
本系统采用12V电源供电,选择LMR14030稳压芯片设计输出12V稳压电源,同时为了满足主控3.3V工作电压需求选择HT7333稳压芯片完成了DC12V至DC3.3V的降压电路设计。输出端并联的电容起去耦作用,保证电压的稳定性。
本系统使用MDK5软件进行程序设计,考虑到系统的实时性和多任务要求,在主控部分移植了RT-Thread实时操作系统。按模块化的思路将任务划分为以下多个线程:(1)单片机与云平台建立通信。(2)溶解氧、PH和浊度等数据的采集与解析。(3)串口GPS数据的接收与解析。(4)将数据存储至SD卡本地备份。(5)将数据传输至云平台端。
通过系统任务调度达到协调多个任务同时运行的现象,同时加载一些系统需要的组件和驱动方便应用程序的开发。系统程序流程如图6所示。
图6 程序流程图
主控通过串口定时接收来自GPS的数据,原始数据为美国国家海洋电子协会制定的NMEA_0183格式,通过对其中的“$GNRMC”进行解析,可以得到终端的经纬度等位置信息,GPS接收流程图如图7(a)所示。
图7 数据采集流程图
水质传感器数据通过485接口与主控进行通信,使用标准Modbus-RTU主机协议对各传感器进行数据轮询,采用一主多从的设计模式,通过主机问询从机应答来获取相关数据并存储至数据缓存区,水质数据采集流程图如图7(b)所示。
为了解决SD卡文件操作系统读写缓慢和数据采集过快之间矛盾,设计上采用了环形缓冲区(FIFO)对于采集数据的缓存,同时应用RT-Thread的事件集来同步数据采集线程和SD卡存储线程。采用环形缓冲区阈值接收和超时接收俩种方法,降低文件操作系统的读写,延长SD卡寿命和减少数据的丢失。云平台数据的上传应用了RT-Thread的邮箱和内存块机制相配合,解决数据传输与存储不同步的问题。
通过实验验证,本系统可以将采集到的PH、溶解氧和浊度数据由RS-485总线传输到控制终端,结合GPS解析的定位数据,通过4G无线模块打包传输至云端服务器进行实时监测,达到了系统设计的要求。本系统适合为河塘养殖水质提供长时间稳定监测,为云平台水质数据分析提供数据支持,具有一定的实用价值。