APP下载

农田环境信息采集系统设计与实现

2014-05-25玄兆燕唐佳明陈学斌张淑芬

自动化仪表 2014年11期
关键词:子程序串口农田

玄兆燕 唐佳明 陈学斌 张淑芬

(河北联合大学机械工程学院1,河北 唐山 063009;河北联合大学理学院2,河北 唐山 063009)

农田环境信息采集系统设计与实现

玄兆燕1唐佳明1陈学斌2张淑芬2

(河北联合大学机械工程学院1,河北 唐山 063009;河北联合大学理学院2,河北 唐山 063009)

针对农田环境信息采集中环境复杂多变且供电布线困难等问题,对农田环境信息远程采集及处理进行了研究。采用TPLINK TL-WR720N迷你无线路由器、Arduino网络扩展板组建基于3G技术的网络系统,完成数据的远程传输。应用LabVIEW软件和Yeelink平台,使农田环境信息的串口采集和网络发布实现了实时同步,为专家进行分析和决策提供网络数据平台,解决了只能在单一服务器上查询和分析数据的问题。

Arduino 农田环境信息 Yeelink平台 信号采集 LabVIEW

0 引言

农田环境信息包括空气温湿度、光照度、土壤水分等。这些信息是农业专家系统分析和决策的重要数据源和参数,对它们进行实时、快速地采集是实现精准农业和农田现代化管理的重要基础[1]。

近年来,通信、计算机、传感器、网络等技术得到快速发展,尤其是通信网络的飞速发展,田间环境信息的采集已经进入了智能化、机械化阶段,通过传感器在田间采集的数据信息可由各种有线网络进行传输。然而,由于我国农业区域分布广泛、地理环境复杂多变,有线网络存在布线困难、造价高、维护不方便等问题,使得有线数据传输受到很大的限制[2~3]。因此,采用无线通信技术的田间信息传输成为当今田间信息远程获取的主要方式。

目前,有些农业监控系统利用GPRS/CDMA等技术实现了农业环境信息从田间到实验室计算机或手持设备的远程传输。这类系统虽然突破了环境与距离的限制,满足农业环境信息获取的实时性要求,但在数据共享方面存在明显不足[4]。

本文农田环境信息采集系统分别利用3G网络和LabVIEW软件实现环境信息实时快速的网络发布和串口采集,解决了只能在单一服务器上查询和分析数据的问题,为专家进行分析和决策提供数据依据。

1 系统硬件设计

硬件系统由控制与采集模块、网络模块、电源三部分组成。系统硬件结构如图1所示。

图1 系统硬件结构图Fig.1 Structure of system hardware

考虑到农田环境信息包括空气温湿度、光照度、土壤含水量等,选用KY-015数字温湿度传感器模块测量空气温湿度,选用GY-30数字光强度检测模块测量光照度,选用Arduino土壤湿度传感器测量土壤含水量。本文选用Arduino UNO R3开发板作为控制核心。首先,Arduino开发板可以通过电池供电,能耗低,解决了旷野环境供电困难问题;其次,Arduino开发板具有很多成熟外部模块,只需要正确插接即可稳定工作,操作简单、功能强大;最后,Arduino开发板价格低廉、体积小,并且可以给传感器提供5 V或3.3 V电源,解决了传感器供电问题,降低了设备成本。

在网络通信方面,随着3G牌照的发放,我国已经进入了3G时代[5]。因此,本文选用华为EC122电信天翼3G无线上网卡和TP-LINK TL-WR720N迷你无线路由器组建无线网络,从而解决了旷野环境下布线困难问题。同时,考虑到传输速度及传输稳定性问题,本文选用Arduino Ethernet W5100网络扩展板作为连接自建网络与Internet之间的桥梁,通过有线连接的方式将网络模块与路由器相连,最终把环境信息打包发送到Yeelink平台,实现网络发布。

1.1 控制与采集模块

控制核心Arduino UNO R3采用ATmega328微处理器。该微处理器具有独立片内振荡器的可编程看门狗定时器;14个数字I/O端口,6个模拟输入端口;32 kB Flash内存,既可用来编程,也可用做存储易失性数据。工作时,Arduino开发板可以通过USB数据线、9 V干电池或是专用的电源适配器供电,传感器由Arduino开发板提供电源。Arduino与各传感器引脚连接如表1所示。由于W5100需要插入Arduino UNO上,所以表1中提到的Arduino引脚均由W5100引出。

表1 Arduino与传感器引脚连接Tab.1 Pin connections between Arduino and sensor

1.2 网络模块

网络模块由TP-LINK TL-WR720N、EC122和Arduino Ethernet W5100组成。首先,对路由器进行初始化,开启路由器DHCP服务,这样无需在初始化程序中设定IP地址,使软件程序在不同IP地址情况下都能运行。然后,把W5100插在Arduino上,由软件初始化程序并设定其物理地址,在运行主程序的控制下将环境信息发送到Yeelink平台。

1.3 电源

电源由两部分组成,一部分为可重复充放电的是为路由器供电的移动电源,另一部分是为Arduino开发板、网络模块以及传感器供电的9 V干电池。

2 系统软件设计

对农田环境信息的网络发布和USB串口上传分别进行了研究,系统下位机软件由初始化程序、主程序、信号采集子程序、数据传送子程序四部分组成。上位机软件对应于网络发布和串口上传分别为Yeelink平台和LabVIEW软件程序,可实现Internet实时数据曲线显示存储及历史数据曲线显示和PC机数据显示、存储、分析的同步进行。系统程序流程图如图2所示。

图2 系统程序流程图Fig.2 Flowchart of system program

2.1 下位机软件

2.1.1 初始化程序

初始化程序对各模块及重要变量进行初始化:设定Arduino D7引脚为输出I/O口;由于系统对数据传输速率要求不高,所以将串口波特率设为9 600 bit/s;根据Yeelink平台数据传送要求以及实际需要,本文将各传感器传送数据时间间隔设为20 s;网络模块W5100的物理地址设定为0x00、0x1D、0x72、0x82、0x35、0x9D。

2.1.2 主程序

系统上电后,首先运行初始化程序,初始化完成后主程序开始运行。成功建立网络连接后,主程序调用信号采集子程序采集农田环境信息,并调用数据传送子程序对数据进行串口显示以及无线网络上传。

2.1.3 信号采集子程序

当主程序发出采集命令时,信号采集子程序根据命令要求依次采集光照度、空气温湿度、土壤湿度三个传感器的四个信号。

2.1.4 数据传送子程序

数据传送子程序包括两方面内容,一方面为Internet提供数据,另一方面为串口提供数据。

Internet方面,通过HTTP请求方式将数据发送到Yeelink平台。首先,通过HTTP POST请求创建数据点,此URL中包含采集时间和传感器数据。然后,通过HTTP PUT请求对数据点进行编辑,此URL对设备ID和传感器ID进行编辑并将数据传输到Yeelink平台存储和显示。设备ID和传感器ID由Yeelink平台提供,在Yeelink平台创建设备及传感器时生成。

串口方面,数据包由传感器标志位和数据内容组成,LabVIEW软件根据传感器标志位确定采集传感器,确保上位机接收数据时不发生错误[6-7]。

2.2 上位机程序模块

上位机程序模块包括与Arduino通信的模块、显示存储模块。通信模块主要用到的功能有LabVIEW串口配置、读取串口数据、关闭串口[8]。数据显示存储模块是LabVIEW前面板的主要部分,能够实时显示农田环境信息并将信息存入SQL Server数据库[9],同时具有历史数据显示功能。存储部分主要用到LabVIEW LabSQL用户库中ADO Creat Conn、ADO Open Conn、ADO SQL Conn、ADO Close Conn、ADO Destory Conn。编程中采用多界面显示、VI调用模式,使各个VI能够同时运行且相互独立[10]。

2.3 Yeelink平台

Yeelink平台的设计目的是要成为物联网世界的开放服务提供商,完成传感器的接入管理、海量数据存储、数据的可视化以及基于数据的自动化服务等工作[11]。

3 系统测试

本文借助Yeelink开放平台,实时显示及存储传感器采集数据,并且可以根据需要选择分时段查看历史数据,也可以设定传感器数据预警和报警值。当采集数据高于设定值时,平台可以通过邮件、网址推送、微博发布、移动端推送等方式发送报警信息,使用户及时了解农田环境信息。另外可以通过任意一台连接Internet的计算机查看传感器实时数据曲线以及历史数据。

图3~图6分别为光照度、空气温度、空气湿度、土壤湿度随时间变化曲线。它们分别由光照度传感器、空气温湿度传感器、土壤湿度传感器测得,并在Yeelink开放平台上实时显示。

图3 光照度传感器曲线图Fig.3 Graphics of light illuminance sensor

图4 空气温度传感器曲线图Fig.4 Graphics of temperature sensor

图5 空气湿度传感器曲线图Fig.5 Graphics of humidity sensor

图6 土壤湿度传感器曲线图Fig.6 Graphics of soil moisture sensor

4 结束语

系统利用物联网开放平台以及开源软硬件Aduino,实现了多种农田信息的实时网络发布及串口传输,满足农业信息实时采集的要求。系统充分利用了3G网络覆盖范围广、长期在线、按流量收取服务费用等优点;同时,利用了Arduino开发板体积小、能耗低和功能满足农业信息采集要求的优点。

系统稍加改造即可制成操作简单、实用性强、对操作人员要求低的手持式设备,可广泛应用于农业环境信息的远程采集。

[1] 王彦集,张瑞瑞,陈立平,等.农田环境信息远程采集和Web发布系统的实现[J].农业工程学报,2008,24(S2):279-282.

[2] 王亚男,王福林,朱会霞.田间信息的远程获取与无线传输系统的设计[J].农机化研究,2013(3):92-95.

[3] 蔡明文.基于Internet的生态环境信息采集系统研究[J].武汉科技大学学报:自然科学版,2003,26(2):187-189.

[4] 马巧红,韩文霆.基于Web的农业环境信息实时发布系统研究[J].农机化研究,2010(5):173-175.

[5] 王焕义.WLAN+3G混合组网及建设策略研究[J].无线通信技术,2011(1):15-18.

[6] 张宇,黄伟志,郝岩.基于LabVIEW的多功能数据采集系统的设计与实现[J].自动化仪表,2013,34(8):24-26.

[7] 赵越,朴仁官,王鹤,等.LabVIEW环境下多路气体检测系统的设计[J].仪表技术与传感器,2013(4):37-40.

[8] 陈树学,刘萱.LabVIEW宝典[M].北京:电子工业出版社, 2011:420-424.

[9] 雷振山,肖成勇,魏丽,等.高级编程与虚拟仪器工程应用[M].北京:中国铁道出版社,2011:105-107.

[10] 陈志奇,黄伟志,张攀.基于ARM和LabVIEW的嵌入式振动信号检测系统[J].仪表技术与传感器,2013(7):42-45.

[11] 陶冶,王晓东,刘君.玩转Arduino物联网应用篇[M].北京:北京航空航天大学出版社,2013:93-95.

Design and Implementation of Farmland Environmental Information Acquisition System

Aiming at the problems of collecting farmland environmental information,i.e.,complex and changing environment and difficult wirings for power supply,the remote acquisition and processing for farmland information are researched.By using TP-LINK TL-WR720N mini wireless router,Arduino network expansion board,the network system based on 3G technology is established,and remote transmission of data is achieved.Applying LabVIEW software and Yeelink platform,real time synchronization of serial port acquisition and web publishing for farmland environmental information is implemented.This provides network data platform for experts to analyze and make decision,and the problem of inquiring and analyzing data can only be done on a single server.

Arduino Farmland environmental information Yeelink platform Signal acquisition LabVIEW

TP274+.2

A

河北省科技基金支撑项目(编号:13227407D);

河北省教育厅基金资助项目(编号:QN20131144)。

修改稿收到日期:2014-05-05。

玄兆燕(1963-),女,2008年毕业于中国矿业大学(北京)控制理论与控制工程专业,获博士学位,教授;主要从事信号采集与信号分析的研究。

猜你喜欢

子程序串口农田
达尔顿老伯的农田
达尔顿老伯的农田
山西省2020年建成高标准农田16.89万公顷(253.34万亩)
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
浅谈AB PLC串口跟RFID传感器的通讯应用
船舶电子设备串口数据的软件共享方法
串口技术的实物调试和虚拟仿真联合教学模式
浅谈子程序在数控车编程中的应用
子程序在数控车加工槽中的应用探索
西门子840D系统JOG模式下PLC调用并执行NC程序