智能水产养殖系统

题 目: 智能水产养殖系统
关键词: 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

  1. 引言
    随着自动化理论的不断发展,自动化概念及其产品已经不断在工农业中得到应用。农业中水产养殖管理是一个要求养殖人员进行繁重的体力劳动的工作。虽然随着现代化工业的发展,市场上不断的出现各种水产养殖的新型设备,但是这并为给养殖户工作带来便利,反而由于这些设备操作复杂,工作环境危险,对养殖户带来了诸多的不便。于此同时,随着现代自动控制理论,及电子设备的发展,功能业上一些繁重的,危险的工作正被自动控制系统所代替。于是智能化的水产养殖控制系统将成为水产养殖业产品发展的一个新方向。我们设计的产品智能水产养殖控制系统即为一个通过STM32为主控制芯片,通过有线、无线通信相结合的信号传输方式连接各个终端设备,达到集成控制效果的一个智能控制系统。
    系统方案
    本系统是基于Cortex-M3内核的STM32微控制器的水产养殖自动化控制装置,在硬件方面主要有无线传输以及电机驱动,抽水机,温湿度模块,OV7670摄像头,蜂鸣器,光电门,连通器以及用大型鱼缸代替的鱼塘,HX8325液晶,嵌入式操作系统ucOSii的移植以及嵌入式图形管理器ucGUI的移植。 整个设计过程包括电子系统的设计技术及调试技术,包括需求分析,原理图的绘制,pcb板的绘制,制版,器件采购,安装,焊接,硬件调试,软件模块编写,软件模块测试,系统整体测试等整个开发调试过程,从而实现水产养殖智能化控制。

总硬件设计
针对水产养殖控制系统的多模块化控制,以及多设备协调工作的特点,力求达到系统的最优配置,本系统整体采用集散式控制系统,即是以微处理器为基础的对整个系统运行过程进行集中监视、操作、管理和分散控制的集中分散控制系统。上位采用STM32F103F103VET6芯片设计的显示输入预设置面板,下位采用基于STM32F103VCT6芯片设计的控制器,通信方式采用基于SPI的无线通信及控制器上的直接通信,图2-1是基于离散控制的水产养殖控制系统框图。
智能水产养殖系统_第1张图片
图 2 - 1基于离散控制的水产养殖控制系统框图
在控制室内用户可以通过预设置面板可以看到当前的水体的温度、水质、水量、环境光照强度、环境湿度,并通过进入抽水、步进电机、自动灌溉等界面进行设定抽水的速度、步进电机上载物的方向。
本系统采取了2种控制方式:一种是通过无线模块对摄像头进行信号通信,实现对吊杆的变速控制;另一种是通过控制器直接对继电器进行控制,实现对抽水机的抽水速度的控制。
两种方式各有各自的优势:
第一种在摄像头的开光控制上,方便摄像头的安装,极大程度提高了设备的扩张性,同时减少了电缆的使用,极大程度的降低了设备铺设的成本;第二种数据采集及电机的控制,使得数据采集,抽水机控制达到零速制控,极大程度上提高了对环境数据采集和抽水机控制的实时性。
STM32最小系统核心板如下
智能水产养殖系统_第2张图片
基于机械原理的水下空气注入系统
本作品采用的独特空气灌入技术,可以通过将采集的空气溶解于水中,依托水这个载体,将空空气带入河水湖泊中,以达到调节河水中的空气含量的作用,此项技术已准备申请专利,可用于充氧。在此作品中结合ucos操作系统实现了控制台对下层设备的控制,实现了水产养殖的自动补给氧气的作用,以及备用的手动调节的应急操作控制。其原理为利用水流产出的压差带动空气进入水中。
备注:此处涉及到正在申请的发明专利,故不提供原理图。
电源模块
由于STM32F10x及摄像头模块使用的是3.3V供电,而显示模块驱动芯片是ili9327采用的是5V供电,所以在外置电源所带来的12V电源已经不能满足系统的需求,所以需要设置一个电源模块,将外置电源12V转化为系统所需要的5V和3.3V电压对系统进行供电,图2-3是本系统的电源部分电路设计。
智能水产养殖系统_第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的压强才能相等。所以,在液体不流动的情况下,连通器各容器中的液面应保持相平。
就吸过滤而言,我们采用活性炭对其进行吸附作用,采用铝离子对其经行沉淀,再通过一系列过滤,从而达到水质净化的作用。

智能水产养殖系统_第4张图片
环境数据采集器
该水产养殖控制系统以STM32F10x作为主控制器,利用该芯片自带的的18路AD采样通道,对沼气报警器、光电传感器、温度传感器、湿度传感器反馈回来的信息进行判决、计算得到当前环境上的影响鱼生存的因素。
其中利用光线在直射到红外对管上,当池塘水的变的浑浊时,水中的透光性会使红外对管的反馈的电压发生改变,将此电平变化反馈给STM32F10x控制器,进行简单的判决水质是优、良、差三个等级。
用户利用摄像头可起到监控的作用,但是24小时连续的监控会需要比较大的存储器和功率的消耗,同时查找相关信息极其不方便。本系统通过在鱼塘边缘安装专门的触发器,当鱼塘受到一定的破坏的时候,触发器会反馈信息给主控制器,打开摄像头——在正常情况下摄像头处于关闭状态。通过这样方式,使得监控变的更加具有针对性,减少存储器的大小和电力的使用。
STM32F10x简介
这套基于uCOS操作系统上的水产养殖控制系统选取的微处理器是基于Cortex-M3内核的32位ARM处理器——STM32F10x,目前意法半导体(ST)是第一个推出基于这个内核的主要微控制器厂商。STM32F103VCT6处理器是本系统主要使用的芯片,其价格在30元以内,功能十分强大,内置ST公司新增的FSMC存储控制机制功能,方便用户对不同数据类型速度的匹配。因此该微处理器完全可以取代传统的单片机应用;而其具备高达72MHz的主频,性能较一般的单片机有很大的提升。
STM32F103VBT6微处理器主要资源和特点如下:

  1. 多达80个快速I/O端口,每个端口都可以配置为50MHz的输出模式,或者配置为浮点输入模式。
  2. 2个12位模数转换器,在精度上完全超越单片机,并且不需要外加AD模块就可以实现模数转换,且内置温度传感器,方便用户测量处理器实时温度。
  3. 灵活的7路通用DMA可以管理存储器到存储器、设备到存储器和存储设备的数据传输,无需CPU任何干预。通过DMA可以使数据快速地移动,就节约CPU的资源来进行其他操作。DMA控制支持环形缓冲区的管理,避免了控制器传输到达缓冲区结尾时所产生的中断。它支持的外设包括:定时器、ADC、SPI、、和USART等。
  4. 调整模式:支持标准的20引脚JTAG仿真调试以及针对Cortex-M3内核的串行单线调试(SWD)功能。通常默认的调试接口是JTAG接口。
  5. 内部包含多达7个定时器。
  6. 含有丰富的通信接口:三个USART异步串行通信接口、两个接口、两个SPI接口、一个CAN接口和一个USB接口,为实现数据通信提供保证。
  1. 系统软件设计
    系统软件设计
    本软件设计语言采用C语言,开发环境采用Keil公司开发的ARM开发工具没打开,是用来开发基于ARM核的系列微控制器的嵌入式应用程序。它适合不同层次的开发者使用,包括专业的应程序开发工程师和嵌入式软件开发的入门者。MDK包含了工业标准的Keri C编译器、宏汇编器、调试器、实时内核等组件,支持所有基于ARM的设备,本项目所使用的STM32F10x系列芯片这款软件完全支持。
    JTAG仿真器采用SEGGER公司推出的J-LINK,可以于Keil集成开发环境做到无缝连接,支持所有ARM7/ARM9内核的芯片,以及Cortex-M3/Cortex-M4,即本项目所使用芯片STM32F10x内核。

智能水产养殖系统_第5张图片
图3 - 1Keil开发环境
图3-1所示的是Keil开发环境,图中正在进行J-LINK硬件仿真调试。左边为软件的子程序、库函数等文件列表,可以在其中对程序文件进行添加/删除处理;中间是软件代码编译区,主要用于对软件代码进行编码、修改;右边是变量实时观察窗口,在硬件运行时可以观察到程序变量的变化;下方是IAR信息区,编译错误时在这里会有提示。
系统主程序设计
系统程序是基于uCOS操作系统编写的控制程序。在主程序设计中,多采用定时器判断、按键判断、子程序调用等设计方法,这样可以使主程序更加简介,减少了系统陷入死循环的可能性,导致系统崩溃,图3-2所示是系统控制主程序流程图。
智能水产养殖系统_第6张图片
图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测试界面

其操作过程是:

  1. 从主菜单电机测试选框。
  2. 滑动抽水机滚轮,观察抽水机是否能按照滚轮的位置改变抽水速率。能说能抽水机正常,否则说明抽水机存在问题。
  3. 滑动排水机滚轮,观察抽水机是否能按照滚轮的位置改变抽水速率。能说能抽水机正常,否则说明抽水机存在问题。
  4. 滑动照明灯滚轮,观察照明灯是否能按照滚轮的位置改变光照强度。能说能照明灯正常,否则说明照明灯存在问题。
  5. 滑动排风扇滚轮,观察抽排风扇是否能按照滚轮的位置改变排风扇速率。能说排风扇正常,否则说明排风扇存在问题。
    抽水
    为实现封闭的池塘水能够得到一个适合鱼生存的环境,需要不断的对水进行净化处理,以确保水中有足够的氧气和氧气,以及适当的化学元素比例。而因为在不同环境下对水体循环的速率是不同的。我们拿氧气供应为例,速率过快会会导致换氧速率远大于鱼的需求而导致电力资源的浪费;速率过慢会造成换氧速率过慢导致鱼儿死亡。因此需要人为的控制抽水机的转动速率,使得池塘资源得到有效的利用。图3-5为抽水控制界面。

    图3 - 5抽水控制界面
    此抽水机的操作过程仅仅需要点击进入抽水界面,然后根据现实情况的需求在滚动条上进行,抽水速率由小到大的方向是从左至右。

自动灌溉
在池塘水源充足的条件的情况下,抽水机会将池塘中的水向农田中进行灌溉,根据条件的不同,对于灌溉的需求也不尽相同。所以使设备能在不同条件下进行工作,我们编写了一个可以调节灌溉速率的操作方式。其操作界面如图3-6所示。

图3 - 6自动灌溉操作界面
此抽水机的操作过程仅仅需要点击进入抽水界面,然后根据现实情况的需求在滚动条上进行,抽水速率由小到大的方向是从左至右。
3. 系统创新
本系统采用STM32作为主控,太阳能电池板作为能源来源,一反平时水产养殖的方案,采用的独特空气灌入技术,可以通过将采集的空气溶解于水中,依托水这个载体,将空空气带入河水湖泊中,以达到调节河水中的空气含量的作用,采用虹吸原理滤水,实现了全自动化的环保操作。

  1. 评测与结论
    进过长达半个月的测试,本系统工作稳定,能够依靠太阳能电池独立工作,调节水位正常,水质正常,水温恒定。可以尝试更进一步实际测试。

附录
能体现工作成果的实物照片等

你可能感兴趣的:(STM32,智能控制,物联网,人工智能)