农田环境监测系统设计与实现*
邹艳华,文小玲,尤 洋,伍昌煦 (武汉工程大学 电气信息学院,湖北 武汉 430205)
【摘 要】摘 要:针对农业生产的自动化管理需求,介绍了ARM与ZigBee技术相结合设计农田环境监测系统的方法。硬件部分采用 ZigBee外接传感器设计环境数据采集节点,采用 S3C2440处理器和CC2530设计协调器网关,其中CC2530与ARM之间采用SPI口进行数据通信。软件部分基于IAR平台结合Z-Stack协议栈构建ZigBee无线监测网络,用于采集并传输影响农作物生长的现场环境信息,数据在基于 ARM与ZigBee技术相结合而开发的网关节点处实现汇聚,最终通过串口发送到基于VC++6.0与数据库技术开发的上位机监测系统。经测试,网关节点能实时接收传感器节点的数据,并通过串口成功上传到上位机监测系统,实现实时数据监测、动态分析、历史查询和异常报警功能,系统具有较好的稳定性和实用性。 【期刊名称】微型机与应用 【年(卷),期】2015(034)008 【总页数】4
【关键词】ZigBee;ARM;SPI通信;串口通信;远程监测
0 引言
随着传统农业向现代化农业的转变,农业生产中降低成本、提高质量和产量、发展优质高效农业的要求以及资源高效利用、农业可持续发展等方面的要求,迫切需求社会效益、经济效益、环境保护和科学技术相结合的新型农业的出现。现代化农业基于精细农业理念,20世纪80年代美国提出精细农业构想,采用
精细农业可以在保护环境、降低成本的前提下实时监测农田环境多元信息,及时进行科学分析与预测,根据农田环境信息变化来确定最合适的管理决策,帮助农民科学种植。
目前,关于基于嵌入式技术农业应用监测系统的研究还较少,大多采用单片机和便携式设备实现环境信息采集[1-2]。针对现代农业自动化管理的需求,本文采用S3C2440处理器结合ZigBee技术设计了一个农田环境监测系统[3]。ZigBee这种低功耗、低成本、近距离、低复杂度的双向无线传感网络技术是进行大面积农田环境信息采集与传输的最佳选择。以PC为上位机,采用VC++开发工具与数据库技术[4]开发上位机监测软件,采用串口通信技术连接协调器网关,构成分布式信息采集系统。该系统实现了对空气温度、空气湿度、光照强度、土壤水分等环境信息的实时数据采集、传输、存储、查询及分析处理,并且具有异常预警功能,有利于降低农业作业的成本,提高效率,同时也为农业工作者科学种植、防治病虫灾害提供可靠、充分的科学依据。
1 系统总体设计
农田环境监测系统,主要包括数据采集终端、数据通信链路和数据监测中心三部分。其中数据采集终端包括采集农作物生长环境的各种传感器,如空气温湿度传感器、光照强度传感器、土壤水分传感器;数据通信链路包括 ZigBee近距离无线通信网络、ZigBee与 ARM间的SPI数据通信和ARM与PC间的串口通信;数据监测中心包括安装了单机版监测软件的PC及PC内部运行的MySQL数据库。系统结构框图如图1所示。
ZigBee终端节点传感器能够采集空气温度、空气湿度、光照强度、土壤水分等环境因素,然后经过ZigBee无线网络将数据发送到ZigBee协调器节点,协调
器节点数据由SPI总线传输到ARM处理器,数据在ARM处理器中经过分析处理之后通过串口最终发送到PC数据库服务器中存储[5-6]。系统可对影响农作物生长的环境信息进行实时远程监测、动态分析和历史查询,并且对超出标准值的环境参数提供报警功能。
2 系统硬件设计
2.1 传感器节点
传感器节点由 ZigBee无线通信模块 (包括 8051处理器)、传感器模块和电源模块组成。传感器模块采集和转换监测区域内的环境信息;无线通信模块用于控制传感器节点的数据采集、存储、转换和处理、收发数据及与其他传感器节点间交换信息等;电源模块负责为传感器节点运行提供所需的能量。传感器节点结构框图如图2所示。传感器模块包括空气温湿度传感器 DHT11、光照强度传感器MAX44009和土壤水分传感器TDR-3。Zig-Bee无线通信模块节点选用 WeBee的 CC2530+CC2591 (PA)模块。CC2530是一个低成本、低功耗的无线微控制器,芯片上集成了CC2591射频前端放大芯片、增强型8051内核、Flash存储器、8 KB RAM和许多其他增大功能。CC2530+CC2591(PA)模块具有以下功能特点: (1)可靠传输距离400m,自动重连距离高达360m; (2)工作在2.4 GHz频段,无线速率达250 kb/s; (3)具有 16个通信信道,可根据环境切换可靠通信信道。 2.2 协调器网关
考虑到协调器节点需要处理传感器节点上传的大量数据,并能够将数据通过串口有序地上传到上位机,要求协调器节点具有较快运行速度和较强的数据处理
农田环境监测系统设计与实现
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)