一种无线节水滴灌自动控制系统的设计方案

发布者:平和宁静最新更新时间:2014-01-08 来源: dzsc关键字:节水滴灌  自动控制系统  S3C6410  STM32 手机看文章 扫描二维码
随时随地手机看文章

  0 引言

  随着人口的增长和农业的发展,随着全球变暖造成的干旱问题日益严重,世界水资源的需求量越来越大,水资源紧缺已成为全世界人民共同关注的问题。滴灌技术是通过干管、支管和毛管上的滴头,在低压下向土壤经常缓慢滴水,可直接向土壤供应已过滤的水分、肥料或其他化学剂等的一种实用技术。大田自动滴灌技术具有大幅度提高水的利用率、减少土壤结构破坏、改善生态环境、提高经济效益的作用,是一种高效节水的新型灌溉技术,目前已经成为实施高效、精准灌溉的重要水资源管理技术措施。近年来,随着无线信息传输技术的发展,ZigBee 无线网络以其低成本、低功耗、低速率、近距离、短延时、高安全等特点,在现代农业发展中得到高度关注[1].本设计将传感器技术、STM32F103VET6单片机、ZigBee无线通信技术相结合,提出了一种节水滴灌自动控制系统的设计方法,并开发了基于STM32的田间控制器。系统针对不同农作物在不同生长时期对水分的需求情况,依据土壤湿度与环境温度,能够与基于S3C6410 开发平台的网关通过ZigBee无线网络进行通信,由田间控制器精准科学地控制灌水位置、灌水时间、灌水量、灌水质量,实现了农作物的适时自动滴灌,为作物生长提供良好的条件。系统为实现大面积农田的统一调度管理提供了基础,是一种理想节水滴灌解决方案。

  1 系统总体设计

  1.1 系统的拓扑结构

  系统采用无线传感网自组网的星型网络拓扑结构,总体组成如图1所示,由上位机、S3C6410网关(网络协调器节点)、CC2530 无线收发模块(ZigBee 通信模块)、终端控制节点以及执行机构组成.

  

  采用一台式计算机作为上位机,负责接收传感器上传的数据、存储、分析并做出相应的智能滴灌决策。

  S3C6410网关是整个网络的协调器,负责自动搜寻网络中的终端节点,组织无线网络,并从终端节点取得上位机需要的数据,实现终端节点与上位机之间的通信。网关与终端控制节点通过基于ZigBee的CC2530无线收发模块进行组网通信,由一个网络协调器用的主机模块和若干个从机终端模块组成。终端控制节点是基于STM32的田间控制器,田间控制器(1)放在主管道上,配有液位传感器、压力传感器及流量传感器,执行机构是调节水压大小的变频器。田间控制器(2)~田间控制器(n)完全相同,放在每块田地里,配有SHT11 土壤温湿度传感器,一个终端节点模块可以根据需要连接多个测温湿度的探头,执行机构是控制滴灌开闭的电磁阀。

  另外,出于对农田的分散性和成本的考虑,由太阳能光伏供电系统对终端控制节点提供电源。

  1.2系统的工作原理

  上位机发送采集指令,经由S3C6410 网关,利用CC2530 无线收发模块将指令发送给基于STM32 的田间控制器;各传感器节点将检测到的数据上传到STM32 田间控制器,然后由它通过CC2530无线收发模块同样经由网关将数据发送到上位机中;上位机对接收到的数据进行智能处理和决策,例如对湿度值进行排序、得到湿度值较小的几块田地,并据此对STM32田间控制器发送开启这几块田地电磁阀的命令,从而实现自动滴灌。

  在田块面积大,需要控制上百个电磁阀门的大规模灌溉区域,可将图1部分连接传感器的终端节点替换为路由节点,路由节点及终端节点均装备传感器。ZigBee无线传感网络将由一个网关协调器节点、适当数目的路由器节点和多个终端节点组成,路由器和终端通过内部程序进行设置,且在一定距离内均可与网关直接通信。统采用休眠唤醒机制,实现了低功耗运行。

  2 系统的硬件设计

  硬件是无线控制系统的关键和基础,它直接影响着整个系统的节能性、稳定性、控制和反馈的准确性。

  2.1 S3C6410网关

  基于ARM1176JZF ?S 的16/32 位RSIC 微处理器S3C6410,是一款具有低成本、低功耗、高性能特点的应用处理器[2],它具有4 个UART 接口,支持DMA 和Inter?

  rupt模式,按ZigBee协议实现无线传输功能和自组网功能。当网关系统上电时,作为协调器的ZigBee主节点启动和建立无线网络,当网络建立后,负责接收终端控制节点(STM32田间控制器)返回的信息,发送相应的控制信息到各个田间控制器中。

  2.2 基于ZigBee的CC2530无线收发模块

  ZigBee是基于IEEE 802.15.4协议的一个开放式的标准,具有低成本、低功耗、低速率的特点,可同时无线连接大量不同的电子设备。设计选用TI公司最新推出的CC2530芯片作为控制器的微处理器,它集成了一个高性能2.4 GHz直接序列扩频射频收发器、一个增强型单周期的8051 CPU 和一个DMA 控制器,具有8 KB 的SRAM、32/64/128 KB的片内FLASH存储器、2个支持多种串行通信协议的USART、8通道8?14位ADC、定时器和21个可编程的I/O引脚,具有宽电压范围(2~3.6 V)、低功耗和电源电量可监控等特点[3].在ZigBee协议栈中UART 具有中断、DMA 两种模式,本文设计中均采用UART的中断模式。[page]

  ZigBee通信板原理图如图2所示。

  

  2.3 STM32田间控制器

  由STMicroelectronics 的STM32 单片机与ZigBee 收发节点模块组成。采用STM32F103VET6 闪存32 位微控制器。它基于突破性的ARM Cortex?M3内核,工作频率为72 MHz,内部集成了高速存储器(高达128 Kb 闪存和20 Kb SRAM)、通过APB 总线连接丰富增强的外设和I/O,另外包含了2个12位的ADC、3个通用16位定时器和一个PWM 定时器,还包含标准和先进的通信接口:2个I2C和SPI、3个USART、一个USB和一个CAN.

  由于设备集成了标准的通信接口,无需配置额外的组件,减少系统成本,为手持设备和一般类型应用提供了低价格、低功耗、高性能微控制器的解决方案。终端控制节点电路如图3所示。

  

  由于液位、压力、流量传感器均是4~20 mA模拟信号输出设备,需要用模/数转换器将模拟信号转换为数字信号,再由STM32 单片机进行处理。本设计需要采集液位、压力、流量等4~20 mA设备信息,所以设计4通道采集电路,如图4所示。

  

  3 系统的软件设计

  系统软件主要任务是实现传感器工作的控制、无线网络的组网以及数据的无线收发。系统软件主要包括上位机软件与下位机软件。上位机软件设计,主要是基于Visual C++的参数设置、数据采集、自动灌溉及查询历史记录等的编程。下位机程序设计有两个关键点:一是对温湿度、液位、压力、流量的采集,通过控制变频器调节水泵或通过控制继电器使得电磁阀开启与闭合;二是ZigBee收发模块对控制信号的接收、发送与执行。

  自动滴灌系统中,土壤湿度是一个重要变量。上位机通过无线方式向田间控制器发送采集命令,将接收到传感器返回信息进行显示并对湿度做排序处理、判断液位是否过限、将压力和流量传感器得到的数据进行融合来调节变频器,然后通过ZigBee通信板向田间控制器发送开启或关闭电磁阀的指令。上位机主程序流程图如图5所示。

  

  传感器节点上电后,首先进行系统的初始化,然后选择信道并加入现有的ZigBee无线网络,休眠等待接收信号,当接收到网关节点发出的查询信号后,进行数据的采集并发送回协调器节点。

  S3C6410 开发平台具有4 个UART 接口,在研究设计中,采用了MAX3232 芯片来解决ZigBee通信模块的CC2530芯片与该开发平台之间的串口通信电平转换。

  ZigBee 无线收发模块软件开发采用IAR EmbeddedWorkbench(EW)平台完成。EW的C/C++交叉编译器和调试器是今天世界最完整的和最容易使用专业嵌入式应用开发工具。网关ZigBee程序流程图见图6.[page]

  

  基于STM32的田间控制器接收到上位机发来的采集命令,进而执行采集土壤湿度、空气温度、液位、压力、流量等信息并上传,等待上位机进行智能决策后,将控制命令,如电磁阀开启关闭以及变频器的调节,发送出来,STM32控制器予以接收并且执行。下位机程序流程图如图7所示。

  

  4 实验及结果分析

  对各模块进行驱动测试,然后对系统整体进行协同工作实验。通过田间实验观测通信质量、滴灌效果及系统是否运行正常。

  4.1 CC2530无线通信质量测试CC2530无线通信模块性能对系统整体性能起着至关重要的作用。CC2530通信模块的测试主要包括节点之间通信距离及数据包丢包率的测试。TI公司推出的通用数据包探测器(General Packet Sniffer)可以对未加密的通信过程进行监控[4?6],故可利用它进行通信和组网测试。

  (1)空旷无障碍测试,观测通信质量及通信距离

  测试地点:校园空旷处。

  测试内容:协调器主节点上电,建立网络后,等待其他子节点加入。通过在协议栈中配置CC2530单芯片射频部分的输出功率寄存器,来使协调器和终端节点之间进行通信,按照规定的协议数据格式相互发送数据包,从而能够对CC2530通信模块的通信距离、数据包丢包率进行测试,得到一个合适的发射功率。

  测试条件:硬件方面采用CC2530 协调器模块和CC2530 终端节点模块分别通过RS 232 协议与两台笔记本电脑进行串行通信;并使用到两条USB转串口数据线、电源、CC2530 仿真下载器。软件方面采用设计的CC2530串口透传程序能够进行数据透明、点对点数据传输,笔记本电脑端采用Visual Basic编程语言设计的数据包丢包率测试软件。

  测试步骤:在搭建好硬件测试环境后,使用CC2530程序下载仿真器将在IAR Embedded Workbench集成开发环境下开发的CC2530 串行通信程序,分别下载到CC2530 协调器与CC2530 终端节点中。在笔记本电脑中分别安装VB数据包丢包率测试软件,通过对发送数据(十六进制),发送数据的速度以及通过对NV非易失性存储器的读/写操作对CC2530 芯片的发射功率进行设置,收发1 000个数据包,对CC2530通信模块在不同的发射功率下的通信距离、丢包率等性能进行测试。

  测试结果:在空旷场合采用默认功率输出时,通信距离为120 m左右时丢包率基本为0.0%,说明节点无线可靠通信距离可达120 m。

  (2)在实验田中进行通信测试

  测试地点:现场实验田;测试内容、测试条件、测试步骤:同(1);测试结果:采用默认功率输出时,节点无线通信有效传输距离可达80 m.

  4.2 项目实验验证测试条件:将网关上ZigBee天线安置在室外空旷无遮掩处,使得能够接收到较强的信号。选取面积约为20 m×50 m的共12行的农作物田作为实验田,由于农作物的根系一般深度为10~20 cm,因此将土壤温湿度传感器探头埋入地下10 cm处,其中2行作为一组,每组选取两个距离较远的测试点,取两个测试点的平均值来代表这一行范围作物的环境状况。当采集到的湿度值低于30%时,电磁阀打开,水源通过电磁阀、压力传感器、流量传感器流入滴灌支管进行灌溉,滴灌进行中当土壤湿度值高于50%时,电磁阀关闭停止滴灌。

  测试结果:在土壤湿度值低于作物要求下限(如30%)时系统能及时滴灌,当湿度达到作物要求上限(如50%)时系统能过做到适时停止滴灌,电磁阀开启成功率为96%.

  5 结论

  本文提出的一种无线节水滴灌自动控制系统的设计方案,方案中的STM32田间控制器能够实时监测作物土壤湿度和环境温度,将传感器信号通过无线发送到控制中心,控制中心能够准确实时地了解到当前系统中各个节点的工作状态,并及时启动自动滴灌,非常有利于农作物的生产。一旦出现通信中断、水压异常等,能够及时地反映到控制中心,通过语音报警等方式立即通知相关人员进行维修,提高了整个系统的可靠性。另外系统采用ZigBee技术,网络结构简单,田间布设灵活,提高了自动灌溉的实用性及对水的使用效率,减小了劳动量、导线和管路敷设费用,且无需人为操作,能够长期稳定地工作,方便大面积安装、维护和系统回收,为我国的精准农业工程提供了强有力的工具。

关键字:节水滴灌  自动控制系统  S3C6410  STM32 引用地址:一种无线节水滴灌自动控制系统的设计方案

上一篇:基于STM32 的FSMC接口驱动TFT彩屏的设计方案
下一篇:基于ARM平台的CDMA网络CQT终端设计与实现

推荐阅读最新更新时间:2024-03-16 13:33

STM32 USB 上位机程序实现
libusb 介绍 libusb是开源的C库,使用该库是的用户可以在应用程序中直接访问 USB 设备,无需为 USB 设备编写内核驱动。libusb支持多个平台 (linux, window, ios),所以可以很方便地将应用程序移植到其他平台。 linux libusb 安装 从网上下载libusb的源码,下载地址:http://www.libusb.org/, 下载后编译安装。 # tar jxvf libusb-1.0.20.tar.bz2 # cd libusb-1.0.20 # ./configure # make # sudo make install ubuntu下可以通过以下命令快速安装。
[单片机]
详解STM32的中断系统
一、前言 中断是什么? 举个例子来说,当我们正在工作时,突然电话响了,这时你会把手里的工作先停下来,然后去接电话,当接完电话后,电话里的人安排你马上做一件事,这时你需要立刻去做这件事,当把这件事做完后你会继续之前被打断的工作,这个过程为一次中断。 在计算机科学中,中断指计算机CPU获知某些事,暂停正在执行的程序,转而去执行处理该事件的程序,当这段程序执行完毕后再继续执行之前的程序。 整个过程称为中断处理,简称中断,而引起这一过程的事件称为中断事件。 中断是计算机实现并发执行的关键,也是操作系统工作的根本。 中断能提高CPU的效率,同时能对突发事件做出实时处理。 实现程序的并行化,实现嵌入式系统进程之间的切换。 后续将从以下图
[单片机]
详解<font color='red'>STM32</font>的中断系统
STM32中使用HAL库重定向printf()函数
函数添加头文件 #include stdio.h 添加函数 // 重定向函数1 int fputc(int ch,FILE *f) { uint8_t temp ={ch}; HAL_UART_Transmit(&UartHandle,temp,1,2); //UartHandle是串口的句柄 } //重定向函数2 PUTCHAR_PROTOTYPE { HAL_UART_Transmit(&UARTHandle, (uint8_t *)&ch, 1, 0xFFFF); return ch; } 在keil中勾选使用C库 之后就可以 使用printf()函数,像C语言一样输出打印信息,支持 %
[单片机]
<font color='red'>STM32</font>中使用HAL库重定向printf()函数
STM32实战四 定时器和按键
这一章编写定时器,包括定时器基类 Timer 和派生的通用定时器 GeneralTimer。基类对定时器参数进行封装,通用定时器封装一些定时应用,对应PLC的一些功能,包括: 1ms定时中断 100个32位数字时间继电器,最小1ms,最大0xffffffff,大约50天。 一个高精度回调函数,微秒级误差,最小定时间隔1ms。 按键抖动和干扰过滤,并产生按键上升沿和下降沿。 代码中有详细的说明,这里只解释几个知识点,其它文档介绍按键防抖和延时的时候一般都是死循环,官方文档也是这么用,如果有很多按键和延时就会一个一个等,效率很低。我这里用了另外一种高效的方法,就是模仿时间继电器,100个计数器同时工作,直到计数为0时执行对应操作,
[单片机]
STM32串口自动识别波特率
1写在前面 关于自动识别UART串口波特率的这个问题,相信有项目经验,或者认真研究过串口的朋友都应该多多少少知道一点自动识别的方法。 可能绝大部分知道的就是通过波特率一一匹配来实现,这种方法也是最常见,而且还比较有效的一种方法。 上面这种方法就是大家熟知的通过软件来检测波特率的方法,其实,还有一种方法就是通过硬件自身完成波特率来检测。 针对STM32,在ST官方其实在应用笔记和参考手册文档中都有提到。下面,我结合文档简单讲下硬件自动波特率检测的内容。 2 STM32硬件自动波特率检测 ABR:Auto Baud Rate,自动波特率检测使接收设备能够接受来自各种以不同速率工作的发送设备的数据,无需事先建立数据
[单片机]
<font color='red'>STM32</font>串口自动识别波特率
详解STM32中的位带操作
在STM32中,位带操作是一种非常有用的技术,它可以让你直接访问一个单一的位,而不必去读取或者写入整个寄存器。这种技术可以用于提高代码的执行效率和减少代码的大小。 在STM32中,位带操作可以通过特殊的寄存器和内存映射来实现。具体来说,STM32的每个位都有一个对应的位带别名寄存器。例如,如果你想访问寄存器RCC- CR的第3个位,你可以使用位带别名寄存器来直接读取或者写入该位,而不必读取或者写入整个寄存器。 以下是一个示例代码,展示了如何使用位带操作来设置STM32的GPIOB端口的第5个位: #define BITBAND(addr,bitnum) ((addr & 0xF0000000)+0x02000000+
[单片机]
基于GSM的超远程水泵控制系统电路设计
  针对传统远程控制器存在控制距离短、易受障碍物干扰、无反馈信息等问题,设计了一种基于GSM技术的超远程水泵控制系统。该系统是基于时分多址技术的GSM短信业务,以ARM处理器和GSM通信模块为核心,采用标准AT指令和串口通信以PDU短信的格式实现对水泵运转、水管上水、水塔液位高度的控制和反馈。实际应用表明,该系统工作稳定,实用性强。   该系统的信号接收端主要由ARM处理器、TC35i通信模块、信号采集继电器模块、控制继电器模块、靶式流量开关、液位传感器、液位开关、液晶显示组成。 ARM处理器与TC35i通信模块通过串口通信,其结构如图1所示。其中,信号采集继电器模块采用12V的继电器采集信号,提高了采集信号的抗干扰能力;控制
[单片机]
基于GSM的超远程水泵控制系统电路设计
STM32 USART 串口简单使用
STM32 的库实在强大~!函数长的像句子...... 好了开始了: 使用查询方式的USART: 设置时钟: RCC_APB2Periph_AFIO功能复用IO时钟 RCC_APB2Periph_GPIOAGPIOA时钟 RCC_APB2Periph_USART1 USART1时钟 你可以用 //使能串口1,PA,AFIO总线RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO|RCC_APB2Periph_USART1,ENABLE); 或直接 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AL
[单片机]
<font color='red'>STM32</font> USART 串口简单使用
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved