基于STM32和S3C6410的无线节水滴灌自动控制系统

发布者:等风来88888最新更新时间:2021-06-23 来源: eepw关键字:STM32  S3C6410  自动控制系统 手机看文章 扫描二维码
随时随地手机看文章

为实现实时适量的精准滴灌,本文提出了一种基于S3C6410和STM32的无线节水滴灌自动控制系统的设计方案。该方案利用ZigBee无线传感器网络的自组网特点,采用星型网络拓扑结构,实时监控多块田地的土壤温湿度变化,通过反馈传感信号,对滴灌动作进行精准判断和控制。田间试验期间测得土壤湿度最小值为30%,最大值为70%,处于理想范围内。实验结果表明,该方案所设计的系统能够实现滴灌自动控制,且性能良好,具有灵活性强、安全可靠、低功耗、低成本。


0 引言


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


1 系统总体设计


1.1 系统的拓扑结构


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

一种基于STM32和S3C6410的无线节水滴灌自动控制系统设计

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


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,是一款具有低成本、低功耗、高性能特点的应用处理器,它具有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)、低功耗和电源电量可监控等特点。在ZigBee协议栈中UART 具有中断、DMA 两种模式,本文设计中均采用UART的中断模式。


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

一种基于STM32和S3C6410的无线节水滴灌自动控制系统设计

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所示。

一种基于STM32和S3C6410的无线节水滴灌自动控制系统设计

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

一种基于STM32和S3C6410的无线节水滴灌自动控制系统设计

3 系统的软件设计

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


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

一种基于STM32和S3C6410的无线节水滴灌自动控制系统设计

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


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


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

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

一种基于STM32和S3C6410的无线节水滴灌自动控制系统设计

4 实验及结果分析


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


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


(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技术,网络结构简单,田间布设灵活,提高了自动灌溉的实用性及对水的使用效率,减小了劳动量、导线和管路敷设费用,且无需人为操作,能够长期稳定地工作,方便大面积安装、维护和系统回收,为我国的精准农业工程提供了强有力的工具。


关键字:STM32  S3C6410  自动控制系统 引用地址:基于STM32和S3C6410的无线节水滴灌自动控制系统

上一篇:基于CAN总线的嵌入式设备状态监测平台设计
下一篇:初学STM32芯片的必备技能

推荐阅读最新更新时间:2024-11-12 14:36

STM32处理器 RTC分析
前言: 1.博客基于ARM Cortex-M3内核的STM32F103ZET6和标准3.5.0库; 2.如有不足之处,还请多多指教 一 RTC是什么? 1. 从结构上讲就是一个独立的定时器; 2. 从功能上来说就是为系统提供系统掉电不复位的日历时间; RTC分为两个完全能独立的部分:1. APB1接口;2. RTC核心; 功能: (1)APB1总线连接APB1接口并负责驱动APB1接口,接口内部包含一组16位寄存器,可以通过APB1总线对其进行读写操作。 (2)RTC核心由RTC20位预分频模块和32位可编程计数器模块组成; Ⅰ RTC预分频模块包含一个20位的可编程分频器RTC_DIV。预分频模块为32位计数器模块提供时基单
[单片机]
<font color='red'>STM32</font>处理器 RTC分析
stm32---红外遥控
NEC协议 发送端发送1 :560us脉冲 + 1680us低电平 发送端发送0 :560us脉冲 + 560us低电平 连发码 : 9ms 低电平+2.5m 高电平+0.56ms 低电平 +97.94ms 高电平 引导码 :9ms 的低电平 + 4.5ms 的高电平 接收端接收1 :560us低电平 + 1680us高电平 接收端接收0 :560us低电平 + 560us高电平 接收端连发码 : 9ms 高电平+2.5m 低电平+0.56ms 高电平 +97.94ms 低电平 接收端引导码 :9ms 的高电平 + 4.5ms 的低电平 接收端的数据引脚接上拉电平,也可以让此脚连接的芯片引脚配置为上拉输出模拟上拉电阻的作用
[单片机]
STM32的JTAG用作普通IO口设置方法
1. 引脚 STM32F10x系列的MCU复位后,PA13、PA14、PA15、PB3、PB4 默认为JTAG下载调试功能,不能当做普通IO口使用,有时为了充分利用资源,一般使用SW来下载调试,即只需要PA13、PA14两个引脚即可 PA13 - JTMS/SWDIO PA14 - JTCK/SWCLK PA15 - JTDI PB3 - JTDO PB4 - JTRST 2. 代码 void jtag_to_io( void ){ GPIO_InitTypeDef GPIO_InitStructure; /*使能GPIOA GPIOB AFIO(关闭JTAG)*/ RCC_APB2PeriphClockC
[单片机]
stm32编译出问题解决
.FWlibincstm32f10x_conf.h(33): warning: #14-D: extra text after expected end of preprocessing directive 额外的文本在在预处理命令后面出现 #include stm32f10x_dma.h */ 出问题的地方就是这个 */ 仿照原子自己建立工程的时候出现的问题修改: 问题及修改: 1)..SYSTEMdelaydelay.c(27): error: #20: identifier SysTick_CLKSource_HCLK_Div8 is undefined 解决方法:在delay.c中添加
[单片机]
stm32 TIM2 重映射
stm32的TIM2的端口使用组合有下面四种: 1.当不重映射时,默认TIM2四个的IO口是PA0、PA1、PA2、PA3 2.要使用PA15、PB3、PA2、PA3的端口组合,要调用下面的语句进行部分重映射: RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //重映射必须要开AFIO时钟 GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2, ENABLE); 3.要使用PA0、PA1、PB10、PB11的端口组合,要调用下面的语句进行部分重映射: RCC_APB2PeriphClockCmd(RCC_APB2Perip
[单片机]
<font color='red'>stm32</font> TIM2 重映射
基于stm32的异步电机反嵌绕组检测方法
  1.引言   电机是在工业生产过程中普遍使用的装置,电机的故障往往会带来严重的后果与损失。定子绕组是三相异步电动机的主要组成部分,也是电动机最容易损坏而造成故障的部件。异步电机在生产过程中,由于生产工人的失误,有可能发生定子绕组反嵌的现象,发生电动机启动困难,三相电流严重失衡且电流急剧上升,接反元件的那一组绕组中的电流更大,电动机发生异常响声并剧烈振。如果不及时断电停机,电动转速下降,机定子绕组很快会被烧毁。为避免造成更大的损失,需要及时检出。   现有的检测方法在实际应用中,往往在生产应用中需要拆除电机,或者等到电机产生故障时才能够发现绕组错误。检测方法主要是在电机出现故障后,将电机定子取出,接入直流电源后,使用磁针来判断是
[电源管理]
基于<font color='red'>stm32</font>的异步电机反嵌绕组检测方法
stm32系统时钟配置函数
/**************************************************************************** * * 名称: RCC_Configuration * * 描述: 设置系统时钟 * * 返回: 无 * ****************************************************************************/ void RCC_Configuration(void) { ErrorStatus HSEStartUpStatus; RCC_DeInit(); //RCC复位 RCC_HSECon
[单片机]
stm32学习笔记之USB中断配置初始化函数
● 中断映射单元:将可能产生中断的USB事件映射到三个不同的NVIC请求线上: ─ USB低优先级中断(通道20):可由所有USB事件触发(正确传输,USB复位等)。固件在处理中断前应当首先确定中断源。 ─ USB高优先级中断(通道19):仅能由同步和双缓冲批量传输的正确传输事件触发,目的是保证最大的传输速率。 ─ USB唤醒中断(通道42):由USB挂起模式的唤醒事件触发。 USB_HP_CAN1_TX_IRQn= 19, /*! USB Device High Priority or CAN1 TX Interrupts */ USB_LP_CAN1_RX0_IRQn = 20, /*! USB Dev
[单片机]
<font color='red'>stm32</font>学习笔记之USB中断配置初始化函数
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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