龚志猛 牟杰 向锋 杨永松 谭建军
【摘要】针对国内温室农业发展成本高、人工干预大、效率低、非智能化等问题。本文介绍了一种利用ZigBee设计的一种基于ZigBee、上位机、internet和android客户端的远程智能温室监控系统。由若干个ZigBee组成的无线传感网络将环境参数通过路由器和协调器传递给上位机处理和显示,上位机同时将数据通过服务器上传到internet,用户即可通过android手机客户端实时查询并控制温室环境参数,从而实现温室远程实时监控。同时,上位机和android客户端设有历史查询功能,用户可根据历史环境记录,综合分析作物生长状况。实践证明,该系统具有较好的操作性和便捷性,并在功耗和成本上与同类系统相比具有明显优势。
【关键词】ZigBee;上位机;传感网络;服务器;android
1.引言
在温室农业迅速发展的今天,温室环境的监控已朝着实时化、自动化、智能化方向发展。有不少研究将无线通信技术用于温室监控,比如基于GSM、bluetooth或wifi的温室监控系统,但它们都存在成本高、功耗大等缺点,这严重制约温室农业进一步的发展。针对上述问题,我们运用时下发展已趋成熟的zigbee技术并结合计算机技术设计了一种基于zigbee、上位机和internet的智能远程温室监控系统。该系统可对温室内的光照强度、CO2浓度、温度、湿度等环境参数进行实时采集,并通过上位机和服务器,将数据上传到internet供android客户端进行远程观察分析。同时上位机可针对特定作物,自动或手动调控光照设备、洒水机、通风设备、CO2发生器做环境最优化处理,从而保证作物时刻处于最佳生长状态。大大降低了环境风险和人工成本,提高了生产效率和经济效益。
2.监控系统设计
系统总体设计如图1所示:
图1 系统总体设计图
该系统主要由若干zigbee传感节点、硬件设备、上位机、服务器和客户终端组成。
当系统工作时,温室内各zigbee无线传感节点将温度、湿度、CO2浓度、光照强度等环境参数通过zigbee无线通信协议传递给路由器,路由器以同样的方式将接收到的数据包传递给协调器。而协调器通过串口通信将数据传递给上位机,上位机将汇总的信息通过服务器上传到internet,最终用户可通过手机终端或PC终端实时查询。终端用户可根据需要,对温室环境进行调控。上位机也可参照作物环境最优值通过串口将指令传递给协调器,协调器将上位机指令传给接有硬件设备的路由器。路由器根据相应指令对作物所需环境进行实时调控。
3.监控系统硬件设计
硬件系统主要由zigbee构成的传感节点、路由器、协调器以及控制电路组成。
3.1 zigbee无线传感节点
本系统选用的无线传感模塊是TI公司推出的兼容zigbee2007协议的SOC芯片CC2350,它支持IEEE802.15.4协议,且集成了一枚增强型8051内核,提高了对任务事件的处理能力。而且集成了一个十四位ADC(模数转换器),无需外部ADC即可实现多通道数据转换。在成本上,CC2530的价格低廉,且zigbee的终端节点有定时休眠功能,这样大大降低了功耗。
传感器介绍:DHT11温湿度传感器采用单总线通信方式进行实时温度和湿度数据的读取;测量光照强度时,为了提高数据传输的稳定性,在光敏电阻上串联一个1K欧姆的电阻后再接VCC和GND,由于输出端出来的模拟信号,可通过ADC进行模拟信号采集;MS4100二氧化碳传感器输出信号为比较小的模拟电压信号,若直接用ADC进行信号采集,将使得测量精度较低,为了达到比较高的精度,可用LM358运算放大器将较小的模拟信号进行适当比例的放大,使测量值能均匀分布在ADC的采样范围内,再进行数据转换,得到较准确的浓度值;当无线传感节点开始工作时,传感器所得到的数据将发给下一级——路由器。
3.2 设备控制电路设计
由于硬件设备供电电压为交流220V,其不能直接与MCU的IO口相接。为保护MCU,必须设计一个由光耦和继电器组成的隔离驱动电路。如图2所示隔离驱动电路:选用的光耦是TLP251,供电电压为5V,继电器的供电电压为12V。硬件设备从2号端口接入交流电,当MCU控制信号进入时,即通过8550PNP型三极管控制继电器的开关,使得端口2和端口3导通,最终实现交流电的导通与关闭。硬件设备通过一个隔离驱动电路与路由器的IO口相连。当路由器接收到协调器发来的硬件控制指令,即对硬件设备进行状态变换。
图2 隔离驱动电路图
图3 终端节点和协调器程序框图
4.软件设计
4.1 zigbee程序设计
zigbeeCC2530编程采用的开发环境是IAR Embedded,结合TI提供的z-stack协议栈。该协议栈将zigbee联盟定义的网络层、安全层和应用层技术规范集合在一起,以函数的形式实现,并给用户提供了一些应用层API供用户调用,因此,我们只需要在应用层添加传感器函数即可。若考虑到节能问题,设计程序时,可根据数据采集周期进行定时,终端节点将定时唤醒,自动将传感器数据发送给路由器,再由路由器发给协调器。如图3所示为终端节点和协调器的程序框图。
4.2 上位机和服务器程序设计
本系统软件设计所采用的开发环境是VC++ 6.0和Access数据库。
该系统主要用于温室大棚环境的实时监测,包括温度监测、光强监测、CO2浓度的监测、湿度监测等。首先基于串口通信处理来自下位机的各路数据,并取整点数据保存于数据库中,以便查询历史记录。其次基于网络通信与Android端连接,可以并发处理多个客户端的请求。实现了用Android手机发出命令,通过服务器转发命令来控制下位机状态的功能,以达到实时监测温室大棚内的环境,同时智能控制采取相应的措施改变温室大棚内的环境参数。
服务器端设有串口设备和网络设备,同时监听串口和网络数据,将接收到的下位机数据处理后显示在界面上,并取整点数据保存到数据库,方便查询历史信息。界面上设有温度、光强、CO2、湿度等实时变化曲线,为响应客户端请求,将此刻的各路数据返还给客户端。界面上也设有的灯控和通风等设备开关用于响应客户端的控制,改变和显示当前状态,以此改变温室大棚内的环境参数。同时本系统设有报警装置,服务器通过判断各路数据是否超过给定阀值自动报警,来提醒用户采取相应补救措施。此外,上位机设有查询历史数据功能,选定日期后即可查询,便于用户统计分析。如图4所示,为上位机和服务器界面。
图4 上位机服务器界面
4.3 android客户端设计
Android端采用的开发环境是Eclipse,ADT(模拟器)。
其功能如下:
(1)通过IP连接服务器,并获取所有开关的状态。(2)查询当前温室大棚内的湿度、温度、光强和CO2浓度的相关数据。(3)能够控制温室大棚相应位置的灯光和通风等设备状态。(4)查询有关湿度、温度、光强和CO2浓度的历史记录,显示结果为查询某个整点的相关数值。
针对相关功能实现的介绍如下:
通过Socket通信完成服务器的连接,连接后将所有开关的状态显示给用户;再在查询湿度、温度、光强和CO2浓度的相关数据时,通过MySend()函数向服务器发送请求,并从服务器获取相关数据,通过receive函数接收后处理数据包,然后相应的查询对话框显示给用户。
图5 android客户端界面
关于通风和灯光等设备的控制,则是将用户操作的相关开关的状态值发送给服务器,然后交给服务器执行相关的操作;例如:用户将风口2打开时,将发送数据包“22F11”(22表示2号开关,F表示操作的是风口,11表示打开)给服务器。
关于历史记录查询,当用户选择了查询的日期后,安卓端将把日期以数据包的形式发送给服务器,服务器将返回对应日期时的数据,数据包括湿度、温度、光强和CO2浓度在那天从0点到24点各个整点的相关数据,接收到数据将其显示到查询界面。如图5为android客户端软件。
5.结束语
随着传统农业向现代化、自动化方向发展,广大农民在运用新科技的同时,更注重新技术的成本、便捷性和智能化。而本系统采用的zigbeeCC2530进行无线组网,不仅在成本上与其他SOC芯片有突出优势,而且无需大量布线、操作方便、功耗低将越来越受广大农民的青睐。更突出的是,运用VC++可视化编程编写的上位机具有友好的人机交互界面,操作简便。还有android远程手机客户端实时监控温室内的环境,大大拉近了农户和田园的距离,使得远程监控不再遥远。当然,在上位机和手机客户端软件优化方面,例如在软件的智能化和实用性方面还有待改进。这将在今后的科研中亟待改善。
参考文献
[1]王小强,欧阳俊,黄宁淋.Zigbee无线传感网络设计与实现[J].北京:化学工业出版社,2012.5.
[2]蒋挺,赵成林.紫峰技术及其应用[J].北京:北京郵电大学出版社,2006.
[3]方敏,张胜,梁路平,赵勇,等.译.Windows程序设计(第五版)[M].北京:清华大学出版社,2010.9.
[4]李兴华.Android开发实战经典[M].北京:清华大学出版社,2012.3.
基金项目:湖北民族学院2013年大学生科研训练计划资助项目(项目编号:2013Z035)
作者简介:龚志猛,男,大学本科,研究方向:嵌入式系统研究。
通信作者:谭建军,男,教授,研究方向:从事无线传感网络技术研究。