题 目: 智能水产养殖系统
关键词: STM32;智能控制;数据采集;无线通信
摘要
在水产养殖中要求养殖人进行繁重的体力劳动,同时在一些养殖设备操作复杂,工作环境相对危险,给养殖户带来诸多不便。为解决这一问题,本论文结合了无线通信技术、数据处理技术及直流电机控制技术,设计了一套基于ARM(Advanced RISC Machines)接受数据,处理数据,操作其他设备的控制系统,保证了对环境实时监控,使得水产养殖系统可以稳定、高效、智能化运行。并且通过显示器,用户可以方便的看到鱼塘各个部分的参数信息,大大提高了水产养殖的质量和水产养殖工作人员的效率。
Abstract
The requirements in aquaculture farming heavy manual labor, and in some farming equipment and complicated to operate, the working environment relative risk, a lot of inconvenience to the farmers.To solve this problem, this paper combines wireless communication technology, data processing technology and DC motor control technology, designed a set based on ARM (Advanced RISC Machines) to accept data, process the data, and the operation of other equipment control system to ensure that the onreal-time monitoring of the environment, aquaculture systems can be stable, efficient and intelligent operation. And through the display, the user can easily see the fish ponds in various parts of the parameter information, greatly improving the quality of aquaculture and breeding efficiency of the staff.
Keywords: STM32F103x; intelligent control; data collection; wireless communication
总硬件设计
针对水产养殖控制系统的多模块化控制,以及多设备协调工作的特点,力求达到系统的最优配置,本系统整体采用集散式控制系统,即是以微处理器为基础的对整个系统运行过程进行集中监视、操作、管理和分散控制的集中分散控制系统。上位采用STM32F103F103VET6芯片设计的显示输入预设置面板,下位采用基于STM32F103VCT6芯片设计的控制器,通信方式采用基于SPI的无线通信及控制器上的直接通信,图2-1是基于离散控制的水产养殖控制系统框图。
图 2 - 1基于离散控制的水产养殖控制系统框图
在控制室内用户可以通过预设置面板可以看到当前的水体的温度、水质、水量、环境光照强度、环境湿度,并通过进入抽水、步进电机、自动灌溉等界面进行设定抽水的速度、步进电机上载物的方向。
本系统采取了2种控制方式:一种是通过无线模块对摄像头进行信号通信,实现对吊杆的变速控制;另一种是通过控制器直接对继电器进行控制,实现对抽水机的抽水速度的控制。
两种方式各有各自的优势:
第一种在摄像头的开光控制上,方便摄像头的安装,极大程度提高了设备的扩张性,同时减少了电缆的使用,极大程度的降低了设备铺设的成本;第二种数据采集及电机的控制,使得数据采集,抽水机控制达到零速制控,极大程度上提高了对环境数据采集和抽水机控制的实时性。
STM32最小系统核心板如下
基于机械原理的水下空气注入系统
本作品采用的独特空气灌入技术,可以通过将采集的空气溶解于水中,依托水这个载体,将空空气带入河水湖泊中,以达到调节河水中的空气含量的作用,此项技术已准备申请专利,可用于充氧。在此作品中结合ucos操作系统实现了控制台对下层设备的控制,实现了水产养殖的自动补给氧气的作用,以及备用的手动调节的应急操作控制。其原理为利用水流产出的压差带动空气进入水中。
备注:此处涉及到正在申请的发明专利,故不提供原理图。
电源模块
由于STM32F10x及摄像头模块使用的是3.3V供电,而显示模块驱动芯片是ili9327采用的是5V供电,所以在外置电源所带来的12V电源已经不能满足系统的需求,所以需要设置一个电源模块,将外置电源12V转化为系统所需要的5V和3.3V电压对系统进行供电,图2-3是本系统的电源部分电路设计。
图 2 - 2电源部分设计
图中LM2596开关电压调节器是降压型电源管理单片集成电路,能够输出3A的驱动电流,同时具有很好的线性和负载调节性能。固定输出版本有3.3V、5V、12V电压。这里的作用是将外置电源的24V电压转化为5V电压给系统部分芯片供电。
图中AS1117芯片是一款低压差的线性稳压器,除了能提供多种固定的电压外(可以提供1.8V,1.5V,2.85V,3.3V,5V),还提供完善的过流保护功能,确保芯片和电源的稳定性。同时在产品生产中应用先进的修正技术,确保输出电压和参考源精度在的精度范围内。在本次设计中,AS1117主要作用是将LM2596转换后的5V电压二次转换,给STM32F10x芯片和摄像头模块提供稳定的3.3V电压。
基于虹吸原理的水质过滤系统
虹吸原理可用液体压强来解释。若在U形玻璃管中装有同一种液体,在连通器的底部正中设想有一个小液片AB。假如液体是静止不流动的。左管中之液体对液片AB向右侧的压强,一定等于右管中之液体对液片AB向左侧的压强。因为连通器内装的是同一种液体,左右两个液柱的密度相同,根据液体压强的公式p=ρg可知,只有当两边液柱的高度相等时,两边液柱对液片AB的压强才能相等。所以,在液体不流动的情况下,连通器各容器中的液面应保持相平。
就吸过滤而言,我们采用活性炭对其进行吸附作用,采用铝离子对其经行沉淀,再通过一系列过滤,从而达到水质净化的作用。
环境数据采集器
该水产养殖控制系统以STM32F10x作为主控制器,利用该芯片自带的的18路AD采样通道,对沼气报警器、光电传感器、温度传感器、湿度传感器反馈回来的信息进行判决、计算得到当前环境上的影响鱼生存的因素。
其中利用光线在直射到红外对管上,当池塘水的变的浑浊时,水中的透光性会使红外对管的反馈的电压发生改变,将此电平变化反馈给STM32F10x控制器,进行简单的判决水质是优、良、差三个等级。
用户利用摄像头可起到监控的作用,但是24小时连续的监控会需要比较大的存储器和功率的消耗,同时查找相关信息极其不方便。本系统通过在鱼塘边缘安装专门的触发器,当鱼塘受到一定的破坏的时候,触发器会反馈信息给主控制器,打开摄像头——在正常情况下摄像头处于关闭状态。通过这样方式,使得监控变的更加具有针对性,减少存储器的大小和电力的使用。
STM32F10x简介
这套基于uCOS操作系统上的水产养殖控制系统选取的微处理器是基于Cortex-M3内核的32位ARM处理器——STM32F10x,目前意法半导体(ST)是第一个推出基于这个内核的主要微控制器厂商。STM32F103VCT6处理器是本系统主要使用的芯片,其价格在30元以内,功能十分强大,内置ST公司新增的FSMC存储控制机制功能,方便用户对不同数据类型速度的匹配。因此该微处理器完全可以取代传统的单片机应用;而其具备高达72MHz的主频,性能较一般的单片机有很大的提升。
STM32F103VBT6微处理器主要资源和特点如下:
图3 - 1Keil开发环境
图3-1所示的是Keil开发环境,图中正在进行J-LINK硬件仿真调试。左边为软件的子程序、库函数等文件列表,可以在其中对程序文件进行添加/删除处理;中间是软件代码编译区,主要用于对软件代码进行编码、修改;右边是变量实时观察窗口,在硬件运行时可以观察到程序变量的变化;下方是IAR信息区,编译错误时在这里会有提示。
系统主程序设计
系统程序是基于uCOS操作系统编写的控制程序。在主程序设计中,多采用定时器判断、按键判断、子程序调用等设计方法,这样可以使主程序更加简介,减少了系统陷入死循环的可能性,导致系统崩溃,图3-2所示是系统控制主程序流程图。
图3 - 2系统控制主函数流程图
首先,程序进入初始化阶段,对芯片的时钟(RCC),I/O(GPIO),串口(USART),ADC,PWM波以及液晶进行初始化。其中系统时钟定义为72MHz,这样程序运行的速度是最快的;I/O口对输入(按键)、输出(显示)、通信(USART)分别进行定义;USART异步串行通信则需要对数据位,校验位,波特率进行初始化。
然后,程序进入循环判断阶段,如果有触屏按键按下,则系统进入手动控制模式,通过触摸屏滚动条来控制电机的转动速率;如果没有按键按下,而鱼塘上的触发器有反馈回来电平信号,则开启摄像头对环境进行监视;在没有任何外界出发的情况下,主控制器部分能仅仅显示当前水温,水质,沼气浓度,光线强度等信息。
基于STM32的控制监控台
监控台是基于STM32F103VCT6芯片开发的一个集数据处理与显示为一体的系统装置。该芯片上集成了FSMC可变静态存储控制器,他可以根据不同的外部存储器类型,发出相应的数据/地址/控制信号类型以匹配信号的速度,从而使得STM32系列微控制器不仅能够应用各种不同类型、不同速度的外静态存储器,而且能够在不增加外部器件的情况下同时扩展多种不同类型的静态存储器,满足系统设计对存储容量、产品体积及成本的综合要求。利用STM32具备FSMC这样的功能,可以方便程序编译者简单的完成对液晶控制芯片8352的控制,并且祈祷节约程序的篇幅,方便程序的维护。
监控台上显示各个传感器对采集回来的温度、湿度、光照强度、水质等情况(如图3-3所示),并且当其中某一指标超过警戒线线后会发出报警声。
图3 - 3控制台主界面
图3-3中显示的图片均是同过UCGUI进行绘制的,通过直接调用以封装好的UCGUI函数库,可以方便的实现对任务窗口,触屏按键,文本框的生成。
在主界面上可以选择水面高度控制、测试、自动灌溉、步进电机、排水选项完成相应的任务。
测试
在测试界面中,可以检测抽水机、步进电机、照明灯、步进电机和排风扇工作是否能正常工作。其控制界面如图3-4所示。
图3 - 4测试界面
其操作过程是:
自动灌溉
在池塘水源充足的条件的情况下,抽水机会将池塘中的水向农田中进行灌溉,根据条件的不同,对于灌溉的需求也不尽相同。所以使设备能在不同条件下进行工作,我们编写了一个可以调节灌溉速率的操作方式。其操作界面如图3-6所示。
图3 - 6自动灌溉操作界面
此抽水机的操作过程仅仅需要点击进入抽水界面,然后根据现实情况的需求在滚动条上进行,抽水速率由小到大的方向是从左至右。
3. 系统创新
本系统采用STM32作为主控,太阳能电池板作为能源来源,一反平时水产养殖的方案,采用的独特空气灌入技术,可以通过将采集的空气溶解于水中,依托水这个载体,将空空气带入河水湖泊中,以达到调节河水中的空气含量的作用,采用虹吸原理滤水,实现了全自动化的环保操作。
附录
能体现工作成果的实物照片等