李想
(陕西国防工业职业技术学院, 电子信息学院, 陕西, 西安 710302)
我国是一个以农业发展为主的国家,农业种植水平的高低直接影响着整个国家的经济水平。近年来,我国的水稻种植技术迅猛发展,在水稻的种植过程中,灌溉是其中关键的一个步骤。虽然农作物的灌溉已经逐渐实现自动化,但是现今的自动化灌溉装置还存在着很多缺陷,对需灌溉的水量不能进行自动控制,不够智能化,在灌溉的过程中会出现灌溉量大,不仅对水稻造成了损伤,还在很大程度上浪费了水资源;相反,灌溉量少,则达不到良好的效果。针对以上的问题,本文设计一款基于STM32的水稻大田智能灌溉系统,该系统可以检测水稻生长环境的温度和土壤湿度,当检测的数据与设定数据相差较多时,该系统就会自动启动灌溉装置进行水稻大田的灌溉,系统的使用使灌溉的效率得到了提高,同时节省了大量的人力物力,起到了节水节能的目的。
STM32是一种32单片机的微控制器,它包含了很多系列来满足各类行业的市场需求,本文将选用增强型的STM32F103ZET6作为灌溉系统的微控制器,因其具有先进的内核结构、简短的中断时延和唤醒周期、装备电源控制器、开发完善速度快等特点,被广泛的运用在汽车、工业建筑等行业中。
RT-Thread是某公司开发的一种操作系统,具有小巧灵活可剪辑高实时特点,除了可以作为嵌入式内核外还可以作为嵌入式系统的软件平台,产品成熟且用途广泛。
它是一套可以进行数据存储和分级组织、访问和获取等操作的数据类型,也是向用户提供数据访问的机制。
本文构建的智能灌溉系统是面向大面积且需要实施进行监控管理的水稻,水对于水稻生长的影响不言而喻,因此在构建水稻大田灌溉系统时需要满足以下几点要求:
(1) 环境监测数据实时采集
智能灌溉系统需要掌握稻田的环境温度、湿度、缺水量、设备工作状态等信息情况,才能实现灌溉操作的运行[1]。
(2) 通信方式
为了降低布线的成本和避免水稻大田因布线的原因影响种植,因此选择无线网络进行数据的传输。
(3) 远程监控和灌水控制
设计系统的目的是节省人力物力,使灌溉更具智能化,因此该系统需要具备远程监控一节远程控制的功能。
(4) 灌溉控制
灌溉控制包含对灌溉方式的控制,即可以选择手动或者自动灌溉方式,同时对于温度阈值、湿度阈值、灌溉时间、灌溉区域、灌溉量等进行设定。
(5) 系统管理
针对采集的数据和灌溉信息等情况需要建立系统化的管理模块,总控制室会根据实际情况对稻田进行灌溉,因此该系统需要具备良好的数据处理能力和操作友好性,方便用户进行界面的操作,避免因为操作失误产生错误。
(6) 续航能力
水稻的生长周期较长,如果耕作现场没有电源,需要用电池进行供电来保证系统的正常运行,为了提升系统的续航周期,低功耗是系统设计时的需求之一。
(7) 环境适应性
该系统是以无线网络传感器为传输方式,系统组成包含了很多硬件系统和传感器节点,而考虑生产活动时的环境因素,因此在设计灌溉系统时要充分考虑环境因素的影响,既要经受自然天气因素也要考虑安装位置和安装方式对生产的影响,使系统能够适应稻田的生长环境。
将STM32F103ZET6作为灌溉系统的控制芯片,主频是72 MHz,芯片提供多个外设接口,实现了强大的综合性能。针对该模块设计了最小系统和外设接口电路以及外围LCD接口,针对各个模块进行设计分析。
3.1.1 最小系统电路设计
最小系统电路的设计是为了保障硬件和软件的平稳运行,并由多个电路组成的。首先是为系统供电的电源电路,也是最小系统运行的根本,设计了高速时钟8 MHz的无源晶振电路,低速时钟32.768 kHz晶振。当系统出现技数终止、软件复位等情况时选用系统复位方式,而当从待机模式返回以及进行上、掉电复位时选用电源复位方式。
3.1.2 LCD接口设计
本系统选用了对比度更高、色彩效果更佳的TFT-LCD薄膜晶体管液晶演示器来显示实时数据。由于STM32F103ZET6芯片的内部没有设置触摸控制器和集成液晶屏,因此需要外接驱动芯片来控制,如图1所示。其中ILI9341和XPT2046作为驱动芯片分别控制着显示屏和触摸屏,实现了SPI接口与显示器直接的通信。
图1 STM32控制LCD示意图
系统进行灌溉指令的操作依据之一就是土壤湿度的数值。土壤湿度对于水稻的生长影响巨大,如果湿度过高会产生大量细菌危害稻苗,而湿度过低时水稻不能吸收养料不利生长,因此需要设计湿度传感器模块来监测土壤湿度。土壤湿度传感器主要的组成部分为土壤探头和土壤湿度处理模块,两者之间由杜邦线连接。其工作的原理是利用土壤探头插进土壤中进行湿度的检测,将检测的信息通过土壤湿度处理模块进行分析,经分析后会得到具体的数据,将这些具体的数据传输到主控板,主控板会智能地将采集的数据与设定的土壤湿度阈值进行比较,如果所采集到的数据值小于所设的阈值,水泵就会自动启动对农作物进行灌溉以保证稻田湿度[2]。
本文选用的是DHT11温湿度传感器,也是STM32F407主控板上自带的,其电路的连接如图2所示。图中的PG9主要是将处理器和DHT11传感器间的数据进行同步和传输,数据的格式为:湿度的8位整数的数据+湿度的8位小数的数据+温度的8位整数的数据+8位小数的湿度值+8位校验和。传感器启动后,先将模式设置为输出模式,并拉低电平,持续的时间不少于18 ms,之后持续抬高电平至20 μs~40 μs,当模式设置为输入模式时,如果低电平和高电平分别持续80 μs,说明DHT11传感器有响应信号,如果没有响应信号,则一直为高电平。在输入模式运行时,当低电平的值为50 μs时,如果高电平在26 μs~28 μs之间,称之为bit 0;如果高电平为70 μs,则称之为bit 1。一组数据采集完成后,在下一次的信息采集开始前会保持原始的状态不变。
图2 温湿度传感器电路连接图
在选定电磁阀时,从考虑成本角度出发,水稻大田面积大,需要布置的节点也很多,选用交流电来供应显然成本要高很多,而且在该系统中电磁阀布置在灌溉水管的支管上,流量不大可以考虑使用蓄电池方式进行供电,所需要的费用也降低很多。该系统设计选用双稳态12 V DC的电磁阀门,因其具有国际领先的脉冲和永磁技术,可以实现低耗能,在进行电磁阀工作时产生的热量较少,可以降低燃烧的风险值。它的工作原理是系统下达指令后,电磁阀驱动电器线圈,实现电磁阀打开进行灌溉。它的工作状态受到控制器节点控制,并将工作状态利用无线网络传输到控制中心,控制中心再根据实际情况进行相应的操作。
出于对灌溉系统的成本和生产方便的考虑,选用无线传感器网路进行网络节点和数据的连通和发送,它是这个系统的基础。由于水稻大田面积大,传感器节点众多,因此在选用无线网络节点时需要具备耗能低、安全可靠而且要具备抗干扰的无线网络节点。选用CC2530F256作为无线通信的处理芯片,相比其他芯片具有宽电压范围、耗能低、电量可监控的优点。该芯片的电路设计主要包含CC2530单片机、无线端口、晶振以及IO接口,无线网络模块将硬件模块与软件模块进行连接,控制中心通过无线网络发送和接收数据,各节点通过无线网络进行连通,发挥出各自的功能[3]。
控制中心想要做到全面监控,需要将目标区域安装可视化的设备,既可以实现对水稻大田的全面观察,又可以进行布防,区域出现问题可以直观地找出问题。本系统采用的是网络摄像头,可以进行互联网端和手机的双监控,支持移动侦测和语音沟通。
在进行软件系统设计前,需要选用一个稳定性高、灵活可剪裁的操作系统,经过讨论研究,系统选用RT-Thread作为本文的操作系统。选定嵌入操作系统后还面临一个难题,就是将RT-Thread移植到STM32F103ZET6芯片上,移植的难点在于不同语言编写的替代,需要认识RT-Thread嵌入系统和STM32F103ZET6微处理的架构,才可能进行成功的移植。
移植前先对STM32F103ZET6中的寄存器组和指令集进行分析。对RT-Thread源文件的目录结构进行解析,了解到影响移植的文件夹有bsp和libcpu 2个,那么即可对其进行源文件添加,从而实现移植软件系统的架构,如图3所示。
图3 移植软件系统软件架构
由于RT-Thread硬件资源丰富且功能复杂,因此针对RT-Thread系统选用OS的程序开发方式。RT-Thread的任务目的是“线程”,STM32F103ZET6会根据提供的线程来执行程序,除了要合理安排线程外还要注意线程之间的联系等问题。建立线程之初会根据优先级最高标准确定初始线程,再通过它来创建子线程,完成后脱离线程,例如湿度、温度、可视化、LCD显示等系统中的模块都是将线程预先的设置,实现各模块的调度。
将文件系统从官网上获取,具体操作是下载该文件系统的源代码后进行解压,移植的难点在于配置信息的更换,大致流程是将需要细致的文件系统进行数据类型的修改,为了保证文件系统的正常使用还需要将配置头文件进行修改,最后根据底层驱动编写函数接口。
稻田控制器作为嵌入式处理器,也是整个系统中唯一的网关节点,主要负责对入网传感器进行入网干预和数据的传输,当控制中心下达电磁阀闭合指令后,稻田控制器节点依据指令进行灌溉,控制器节点通过对温湿度的数据采集,回传给上位机,实现灌溉量的完成。具体流程是:在灌溉系统中控制器节点的目标是构建网络,并将16位短地址分配给传感器节点,当所有节点加入到网络中后,终端传感器节点将数据传输给控制器节点,再通过GPRS上传至上位机,上位机再将数据传入到主机,主机下达指令给目标节点,该节点接受指令后采集数据回馈给系统控制中心,控制中心根据节点采集的温湿度数据来控制电磁阀的闭合,实现对稻田的灌溉和完成灌溉的任务,既节省了水资源,又形成了科学化的水稻生长管理[4]。田间控制器节点主程序流程如图4所示。
图4 田间控制器节点主程序流程
作为本系统的核心部分,监控软件的设计实现了对系统的管理和控制。监控软件负责处理稻田灌溉的所有信息,通过监控平台进行灌溉指令的下达,利用操作界面可以进行灌溉信息的修改,使灌溉能够根据实际需求有效地进行。监控平台软件的设计本着易操作、界面清晰、功能区明确的设计目标,降低操作失误的风险。其操作基本流程是管理员登录监控界面,输入系统的用户名和密码,登录到界面后可以通过窗口观看各个区域的稻田灌溉情况,如果想要进行某一操作命令,打开菜单的功能选择窗口,此窗口设置了关于灌溉系统的功能模块,针对命令点击相应的功能模块即可。该系统的监控软件还提供了数据存储和查询界面模块,根据传感器反馈的信息系统会生成数据表和曲线图,方便查询和打印数据,通过图表,管理员也能随时掌握水稻的生长情况以及满足及时灌溉的需求。监控平台软件流程如图5所示。
图5 监控平台软件流程
为了验证基于STM32水稻大田智能灌溉系统设计的有效性,利用实验室搭建实验原型样机进行仿真实验。
因为实验室条件有限,所以利用传感器连接到电路板的顶端,选择一个蓄水装置作为水源,电磁阀门与水源连接,显示器和按键进行操作和监控,特别注意的是每个模块均是单独供电来降低系统功耗。系统选用STM32F103作为控制芯片对存储模块、电磁阀模块、温湿度传感器、电源供电模块、无线网络都进行了实际测试,符合实验要求[5]。
系统完成初始化后进行供电,将样机测试分成远程控制功能测试、可视化效果测试、智能决策功能测试。
(1) 远程控制功能:通过无线网络连接后,利用手机客户端和电脑客户端对系统下达指令,检验其远程控制灌溉功能,经过实验测试,通过手机客户端发送的指令均能有效完成。
(2) 可视化效果:实验主要是检验摄像头在白天和黑夜情况下显示器的视觉效果,测试结果是可视化效果,清晰良好。
(3) 智能决策功能模块:主要介绍智能模块,实验测试的对象是智能模式中的自动灌溉和手动操作灌溉。该系统中的手动操作也是基于智能的基础之上,用户只需要利用手机客户端发送指令,系统就会通过传感器采集的数据来设定浇水的时间,而自动模式系统会设定灌溉程序,根据设计的程序每到既定时间后,系统就会采集数据,并通过系统的计算确定灌溉时间,实验测试结果显示无论是手动还是自动系统均能正常工作。
通过对样机的实验,基于STM32水稻大田智能灌溉系统各个功能模块工作正常,系统运行平稳,对于软件和硬件的设计均能满做系统的设计要求,实现了智能灌溉的目的。
设计了以STM32为主控制器的智能灌溉系统,利用硬件系统与软件系统的设计实现了对水稻大田的智能灌溉,经试验样机的测试,验证了该系统能够平稳运行,达到设计要求。希望本文设计的智能灌溉系统可以真正应用在水稻大田的灌溉工作中,实现水稻农耕的智能化,为节水节能作出贡献。