本系统主要功能包括:水位监测、温度监测、溶氧率监测、水压监测、氧气泵控制、饲料泵控制、消毒泵控制、监测数据实时显示及远程监控。依据以上几种功能,本系统采用的各个模块有以下几种:
(1)主控模块:主控模块采用STM32F103C8T6最小系统板,此模块具有高性能、低功耗、价格实惠等优点。
(2)通信模块:通信模块采用了WI-FI通信,使用了ESP8266模块,实现了上位机和下位机之间的通信,达到远程监控的作用。
(3)数据采集模块:数据采集层由多种传感器组成,主要采集鱼塘环境的相关参数。数据采集模块主要包括水位传感器、温度传感器。水位传感器为MSP20,可以检测出鱼塘水位和气压,用于鱼塘水位监测和气压数据获取。温度传感器采用了DS18B20温度传感器,该传感器用于监测水温,具有较好的防水性能。通过对鱼塘内的温度、压力的测量,对溶解氧速率进行监控,得出目前的溶解氧速率,达到监控鱼塘溶解度的目的。
(4)控制模块:控制模块主要通过主控芯片输出高低电平到L9110S模块,L9110S驱动由此控制各个泵体运转和停机,三个泵体在系统中体现为三个转子,分别为motor_a、motor_b、motor_c。
(5)本地显示模块:通信模块采用了具有实现数据显示功能的0.96寸的OLED屏幕。
下位机框架如下图所示。下位机工作流程为:水位传感器和温度传感器检测水温、水深、气压数据后,主控模块对系统监测数据进行处理,将数据处理后通过本地显示模块进行显示。主控模块将处理过的监测数据通过通信模块传输至云平台,云平台通过通信模块将监测数据同步至用户手机APP,从而实现用户远程监控。
image.png


1、主控系统的设计
主控系统主要用于连接各个传感器数据并进行处理,同时,也担任根据数据转换成命令数据发送给各个模块,从而保证整个监控系统的完整性。同时,还要满足本系统设计初衷,经济实惠也不可忽视。
最后,选择了STM32F103C8T6的最小工作板。下图为STM32F103C8T6的最小工作板实物图。
image.png


STM32F103C8T6是一款基于ARM Cortex-M内核STM32系列的32位的中等容量微控制器,程序存储器容量是64KB,需要电压2V至3.6V,工作温度为-40℃至+ 85℃。中央处理器最高工作频率能够达到72MHz,内置了64K字节的闪存和20K字节的SRAM的告诉存储器,拥有48个引脚,包括了I2C、SPI、USART、CAN等多种接口,确保了本系统的任务需求。此外,STM32F103C8T6还拥有4个16位定时器,2个看门狗,一个24位滴答定时器。从系统设计理念看,STM32F103C8T6能够很好的担任主控芯片并完成任务。
       下图为主控模块流程图。系统在开机之后,进行系统初始化,其中包括时钟,串口等,然后对各个数据监测模块及各个泵体控制模块、WIFI通信模块和本地显示模块进行初始化。初始化完成后,各个监测模块将实时监测数据传输到系统进行处理,然后在本地显示模块显示监测的环境数据,并将数据上传到云服务器中,同时,将用户发出的控制指令下载到主控模块中,系统对指令进行处理后,发送至各个控制模块执行相应的命令的。
image.png


2、通信模块
本系统使用的是ESP8266模块,ESP8266模块设计了一系列常用的输入输出引脚,使外围设备和传感器可以直接进行通讯。支持TCP/IP协议,可以实现HTTP、MQTT等常见的网络协议。在TCP/IP协议中,数据被分割成小的数据包进行传输,并且每个数据包都包含了目标地址和源地址等信息,以确保数据的可靠传输。UDP协议是一种无连接的、不可靠的数据传输协议。与TCP/IP协议不同,UDP协议不提供数据包的确认和重传机制,因此适用于一些对数据传输速度要求较高,但对数据可靠性要求较低的应用场景。这使得WI-FI模块能够与云服务平台、服务器和其他设备进行通信和数据交换,常常运用在物联网产品设计中。
    image.png

ESP8266模块所需的外部电路少,且可以作为完整的、独立运行的网络解决方案。ESP8266模块通常使用3.3V供电,并具有较小的尺寸优势和表面贴片技术封装,适合于集成到各种需要接入局域网的电子设备中。在系统设计中能够使单片机连接到无线网络中,进行数据传输通信,作为系统和用户沟通的桥梁。
ESP8266模块一共有6个引脚,分别是VCC、GND、TXD、RXD、REST、GPIO。下表为ESP8266模块引脚说明。无线网连接前需要使用云平台进行生成GAgent固件,GAgent的主要作用是实现系统监测数据的传递,为云平台和设备数据、业务数据交互提供了一座桥梁。
image.png

将GAgent固件烧写入ESP8266模块。将ESP8266模块配置为AirLink入网方式,ESP8266模块与主控芯片通过USART接口通信。
下图为ESP8266模块入网配置流程图。首先用户打开手机APP连接路由器,点击添加设备,填写WI-FI名称和密码发送给WI-FI模块,连接成功后,发送反馈给手机APP。WI-FI模块通过上位机串口接受上位机数据后,将数据发送至服务器。用户也可以通过手机APP远程发送控制命令到服务器,WI-FI模块接收到服务器的控制命令数据后,再通过串口将控制命令发送给上位机实现系统的控制。
image.png


3、数据采集模块
本节模块有温度采集模块、水位监测模块、溶氧率监测模块,用于监测鱼塘水温、液位、溶氧率,方便用户进行远程监控。
(1)温度采集模块
温度采集模块采用的是使用不锈钢进行封装的DS18B20温度传感器。它采用单总线专用技术,可以通过I/O线与主控芯片GPIO口连接,不需要经过其他转换电路[18],具有抗干扰能力强、适用于测量恶劣环境的温度的特点。DS18B20温度传感器具有温度测量范围宽的特点,它可以测量-55℃至+125℃范围内的温度。它的工作电压为3V至5V。下图为DS18B20温度传感器的实物图。
image.png


温度采集模块工作流程图如下所示。首先温度传感器进行初始化,然后对总线进行检测,检测温度传感器是否在线,系统如果检测到当前温度传感器在线,系统读取温度数据传回主控模块进行处理,在本地显示模块显示温度数据,同时上传到云服务器用于用户远程监控,然后系统对其他传感器进行数据读取并处理。未检测到温度传感器,查看是否超时响应,没有超时则对温度传感器进行初始化,重新进行检测。如果超时,系统读取其它传感器采集数据。
image.png


(2)水位监测模块
水位监测模块采用的是MSP20液位传感器模块。该模块使用检测气压、水深、液位等场合。该传感器采用惠斯通电桥的方式,将一块弹性薄膜与四块压电电阻整合在一起,构成了一种新型的压阻压力传感器。惠斯通电桥将在弹性膜片受压的情况下,输出为线性的电压信号。随着水深的增大,管路中的气体压力也随之增大,通过输出电压的大小,可以求出流体的压强,从而推算出液面的变化情况。它的检测精度保证在1cm内,检测量程10至300cm范围内的水深。它的工作电压位5V。下图为MSP20液位传感器模块实物图。
image.png

水位传感器模块运行图如下图所示。首先将水位传感器进行初始化,然后将软管放入水中,弹性膜片感受到压力转换成为输出电压,输出到主控模块ADC中,主控模块处理后在本地显示模块显示水位数据,上传到云服务器用于用户远程监控,然后系统对其余传感器进行数据读取并处理。
image.png


(3) 溶氧率监测模块
由于市面上的溶氧率检测模块成本太高,不符合本系统的设计初衷。经过查阅文献了解到溶解氧与温度和气压之间有一定的关系,在验证可行性后,本系统利用了温度数据和气压数据实现溶氧率监测功能。通过查阅文献,溶解氧与温度和气压之间的公式为:
image.png 式中,D0为饱和溶解氧,P为测得的气压,PO为标准大气压,T为测得的温度。
首先将温度传感器和气压传感器数据提取出来,根据公式进行计算,将计算结果通过显示模块显示溶氧率数值,再上传到云服务器中,方便用户可以对鱼塘进行远程监控。
4、控制系统
控制系统是对氧气、饲料投放、消毒控制的关键。用户通过手机APP发送指令到云服务器。服务器将指令发送到主控模块中,主控芯片输出高低电平到L9110S驱动模块,对控制系统进行智能控制或手动控制。L9110S驱动模块额定电压为2.5至12V,供电电压大小影响电机转速,前提不超过额定电压。可同时带动4台直流电动机,也可带动2台4线2相式步进电动机。
image.png


系统的控制系统包括了氧气泵、饲料投放、消毒粉投放。三个控制系统分别采用了不同转子表示各个控制模块。系统通电以后各个模块进行初始化。用户在查看实时数据后可根据实际需求打开转子开关。用户按下开关后,云服务器将命令传输给主控模块,主控模块对命令进行处理后输出高低电平,L9110S对转子进行驱动,极大节约了用户的人工成本,提高了管理效率。此外,下位机面板预留了控制开关,方便用户在不同运用场景下的使用。下图为为系统控制流程图。
image.png


5、系统的通信模块调试
系统通信模块是系统的桥梁,通信模块调试主要是确保机智云平台与手机APP之间正常通信、机智云平台与MCU能够正常通信。主要是通过查看本地显示模块的显示数据与手机APP的数据是否相同。首先,打开APP,配置上网,成功入网后,将APP显示数据与显示模块数据进行对比。如下图所示。
image.png

其次是进行云平台和手机APP之间的通信,进入电脑端的云平台WEB界面,点击开启虚拟设备,手机APP扫描虚拟设备二维码进行设备绑定,虚拟设备手动修改设置参数,点击推送,手机APP接收到虚拟设备发送的数据,如下图所示。完成云平台与APP之间的通信测试。
image.png