彭剑,陈贤权
(韶关学院信息科学与工程学院,广东韶关512000)
基于农业大棚温湿度传感器系统的设计与实现
彭剑,陈贤权
(韶关学院信息科学与工程学院,广东韶关512000)
大棚温湿度检测系统是以保证农作物生长在最佳环境、实现农作物高产、提高农业收入而对农产品生产过程实施监测的系统.在农业生产过程中可以根据需要实时监测大棚内部温湿度的数据,并能够根据不同作物的生长环境设定不同的阈值,对大棚内部环境实行动态控制,实现采集及控制一体化.设计采用以美国德州仪器TI公司CC2530芯片为代表的ZigBee SOC解决方案,使用DHT11作为温湿度传感器,监测到的温湿度数据通过ZigBee协议无线发送至上位机监测系统,取得了较理想的效果.
温湿度检测;ZigBee协议;无线传输
我国是传统的农业大国,民间历来有“靠天吃饭”的说法,传统农业生产受制于天气气候等因素.农业大棚能解决雨水阳光的影响,但对温湿度的控制却只能在大棚里面放置温度计、湿度计,由人工定时定点到大棚里面采集数据进行处置.这种方法大量耗费人力物力,也无法保证处理的及时性,一有疏忽,可能造成农作物严重损害.研发一套可以实时监测环境温湿度,并将数据通过无线传输到移动设备进行处置的检测系统十分必要.
发达国家在农业环境监测方面走在我国前面.以色列的农业大棚技术包含着从播种、灌溉、监控、采摘一体的智能农业系统,为沙漠之舟的以色列创造了世界奇迹.美国是最早将计算机应用于农业大棚温室监控的国家之一,拥有发达的设施栽培技术,综合环境控制技术水平也非常高,能实现对温室环境进行监测并控制相应的设备进行处置.比如以花卉温室为例,温室内监控项目包括室内水温、气温、土壤温度、管道温度、锅炉温度、保温幕状况、相对空气湿度、泵的工作状况、通窗状况、CO2浓度、ECO调节池与回流管数值、pH调节池与回流管数值;室外监控项目包括太阳辐射强度、大气温度、相对湿度、风向风速等.系统的应用为种植者带来了许多经济效益,提高了决策水平,减轻了技术管理工作量,同时也为种植带来了很大便利[1].
国内关于温湿度监测技术的研究与应用始于20世纪80年代末.当时我国的自控技术人员吸收发达国家温度测控技术基础,不断消化吸收,逐步将监测设备与计算机应用结合起来,在技术上,开始以单片机控制的单参数单回路系统比较多,一段时期,没有实现真正意义上的多参数综合控制系统.随着物联网技术的不断发展,单片机技术不断升级,我国逐步将工业应用领域的监控技术应用于农业生产,开始不断出现一些新的技术和新的解决方案.
1.1 问题描述
基于目前市场应用状况,大棚监测数据采集通常有两种:第一种是采用“人工+仪器”的方法,即根据大棚具体作物及位置,科学地在每个固定时间段由工作人员到实地读取放置在大棚里的监测数据,这种方法对人工十分的依赖,较实用且能确保数据的可靠性,但人力成本较高,逐步会被机器取代.第二种是相对先进的方法,即通过在农业大棚里面放置相关传感器,然后将数据通过线缆传递到控制中心,由专人控制读取并存储这些数据.相对于第一种方法,这种方法的确较先进,但若使用这种方法,就需要在大棚设计的时候考虑好相关线缆的布线,实用性依然不高,通常会出现线缆寿命低,布线复杂,运维成本高等不足[2].
1.2 模型设计
农业大棚温湿度传感器系统设计着重在数据传输和无线控制两方面入手.随着网络科技的快速发展,在工程建设的过程中,优先考虑无线传输.无线传输无需考虑布线问题,结合能效问题以及维护成本,采用时下较为成熟的技术——ZigBee无线通信技术.同时在对上位机开发的处理中,为大棚的温湿度变化幅度设限值,当超过所设标准值时,系统可以对大棚环境进行预处理,并提示工作人员作出相应处理,满足生产要求.
1.3 硬件设计
(1)电子模板.采用树莓派(Raspberry Pi)电子制作模板.它将除了存储之外的功能都整合在扑克大小的主板上,采用的制作标准多是Arduino标准,使用了Broadcom BCM2837处理器,是ARM Cortex-A53 1.2 GHz四核心64位处理器,并且增加了图形处理器GPU部分,是VideoCore IV,树莓派3也加入了BCM43438芯片,内置有802.11n无线网络与Bluetooth两个新功能,速度是900 MHz、64 bit,并拥有1 GB的LPDDR2内存.
(2)温湿度采集节点,型号:CC2530、DHT111.CC2530结合了领先的RF收发器的优良性能,业界标准的增强型8051 CPU,系统内可编程闪存,8-KB RAM和许多其它强大的功能.CC2530有4种不同的闪存版本:CC2530F32/64/128/256,分别具有32/64/128/256 KB的闪存.CC2530具有不同的运行模式,使得它尤其适应超低功耗要求的系统.
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接.产品为4针单排引脚封装,连接方便[3].
1.4 系统功能模块设计
(1)系统功能设计.打开协调器及终端后,协调器以广播的方式与周围的终端建立连接,终端则以向协调器单播的形式加入网络,一旦网络成功链接,终端则会周期性的将DHT11检测到的数据无线附送给协调器函数以及温湿度数据,电脑端的上位机通过串口将数据从界面程序重显示出来(见图1).
(2)系统功能模块.系统设计采用“单片机+ZigBee”的组合,主流单片机包括CPU、4 KB容量的RAM、128 KB容量的ROM、ADC/DAC、SPI、I2C、ISP、IAP;系统结构简单,使用方便,实现模块化;而ZigBee技术具有明显的实用优势,特点主要表现在:低功耗,低成本,时延短,传输范围短(10~75 m),网络容量大以及数据传输速率低;更为重要的是,在安全方面,其提供了基于循环冗余校验的数据包完整性检查,支持鉴权和认证,同时采用高级加密标准(Advanced Encryption Standard,AES)进行加密,保证各个应用可以灵活确定其安全属性.整个系统设计布局简洁,在保证高效率的同时可以轻松实现对系统的移植和优化.
(3)协调器与终端流程图设计.系统总体设计包括节点的自适应链接,数据的检测与接收,数据的加工与显示以及控制数据的发送.当系统被打开之后,由于Zigbee协议的优越性,协调器跟终端可以实现自接网,一旦节点接入网络,协调器将会通过发送控制数据给予终端,终端通过将控制数据解析从而响应协调器是否采集数据及发送,如此循环,实现实时无线传输数据[4].
图1 系统功能流程图
(4)数据库设计.设计对数据记录方面的要求不高,只需满足可以传输数据到服务器记录即可.对数据库设计这一模块设计相对简单,只需一个数据库,一个表,基本表的设计见表1.
表1 数据库设计
2.1 界面设计
上位机界面UI(User Interface)的设计是衡量系统“外在美”的因素之一,好的界面可以使用户眼前一亮,提高生产体验.界面采用极简设计,将需要的内容最大程度以最简的方式呈现,做到用户在看到界面的一秒之后就可以上手操作,无需花费更多的时间熟悉界面(见图2).
当开启系统时,上位机QT程序通过初始化函数实现界面的重绘工作,通过initForm()函数将窗体标题隐藏,在windowSystemMenuHint里面已经对窗体的格式以及样式做了相关调整,使其打开之后在初始化过程中对窗体各个控件的位置摆放做出相应的调整,使整个界面简洁,容易理解[5].其中关键代码如下:
图2 上位机界面图
ui->tbnHome->setText(tr("首页"));
ui->tbnHome->setIcon(QPixmap(":/images/tool/home.png"));
ui->tbnHome->setIconSize(QPixmap(":/images/tool/home.png").size());
ui->tbnHome->setAutoRaise(true);
ui->tbnHome->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
//setStyleSheet(QLatin1String("QToolButton{border:0px;}"));
//中间部分的样式
ui->tbnLight->setText(tr("照明"));
ui->tbnLight->setAutoRaise(true);
ui->tbnLight->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);.
2.2 输入输出设计
提高系统效率的重要步骤就是简化流程、优化算法,笔者基于实际操作环境,着力做到只要按下电源开关,系统就会自主运行,最大限度的减少工作人员的工作量.当然,关键信息一个也不会少的显现在屏幕上,只要有需要,随时就可以了解到环境的实时数据.其中关键代码如下:
if(keys&HAL_KEY_SW_6)
{AF_DataRequest(&GenericApp_DstAddr,&GenericApp_epDesc,
GENERICAPP_CLUSTERID,
1,//这个参数就是发送的数据的长度
"1",//这个参数就是发送的数据的内容
&GenericApp_TransID,
AF_DISCV_ROUTE,
AF_DEFAULT_RADIUS);.
Zigbee组网的方式一般有3种:广播、单播以及组播.基于设计自身的考量,协调器采用广播的方式,addrMode=AddrBroadcast就是设置广播的方式实现组网,shortaddr=0xFFFF就是向所有节点发送数据,使附近的终端节点可以加入该网络,为系统的正常工作做充分准备.
终端节点采取何种方式并网是比较重要的方面.通过实验对比,终端向协调器单播这种方式能最有效的实现整个过程.在设计过程中,addrMode=Addr16Bit,就是将终端节点的组网模式设定为单播;shortAddr= 0x0000,就是将设定终端向协调器发送数据,而不向其他节点发送数据.这样,可以保证节点间不进行相互的通信,减少网络中的运行压力,同时可以减少数据冗余,使有限的资源达到高效利用[6-7].其中关键代码如下:
GenericApp_TaskID=task_id;
GenericApp_NwkState=DEV_INIT;
GenericApp_TransID=0;
//初始化P13,因为P13是控制继电器的io口
P1DIR|=0x08;//设置P13为输出
P1_3=0;//初始化P13为低电平
//Device hardware initialization can be added here or in main()(Zmain.c).
//If the hardware is application specific-add it here.
//If the hardware is other parts of the device add it in main().
GenericApp_DstAddr.addrMode=(afAddrMode_t)AddrBroadcast;
GenericApp_DstAddr.endPoint=GENERICAPP_ENDPOINT;
GenericApp_DstAddr.addr.shortAddr=0xFFFF;.
向协调器发送一个字符“1”,协调器收到后会判断下,是否是收到了这个1,如果是1,协调器模块就可以开启或关闭风扇,协调器收到“1”后,进行处理的代码在协调器的“coordinator.c”中.这个函数就是模块无线发送数据的函数,它的参数也比较多,如果发送的数据长度是1,发送的数据内容是字符“1”,就可以在上位机实现单独控制风扇的开闭.
协调器收到终端发送来的数据后,交替让P13高电平或者低电平,就能让继电器交替的吸合或者断开了,这个函数是一个固定的函数,就是协议栈中接受无线数据并处理的函数只要接收到无线数据,就会都调用这个函数.这个函数的参数是一个指针,这个指针的作用就是指向了接收到的无线数据.至于“GENERICAPP_CLUSTERID”,其实是一个命令号,接受处理函数判断是“GENERICAPP_CLUSTERID”的时候,就是进行继电器开闭.上位机接收数据并显示的函数“Genricapp_SendTheMessage”,将接收到的温湿度数据转换成字符集,通过整合,数模转换将其呈现到上位机[8].
大棚温湿度传感器系统经过程序编译完成后,在运行终端节点控制部分程序,预热后,等待传感器稳定后打开上位机,启动后加载各接口信息,对数据进行解析,直接显示在图形界面上,系统能实现到当前温度、湿度等信息的采集,并可以根据需要设置一定的阈值,超过一定的阈值后系统做出相应的处置.系统基于ZigBee,实现了无线传感、无线接收的功能,相对于传统的温湿度系统,实现机制与实现的效能有了明显的提高.
[1]李明亮,刘小龙.基于ARM11的智能家具设计与实现[M].北京:航空航天大学出版社,2013.
[2]黄凤英,许策,俞志强,等.农业大棚自适应监测管理系统[J].南方农机,2017(1):25-28.
[3]戴娟,王鲁南.无线节点组网技术[M].北京:人民邮电出版社,2015.
[4]胡自强.基于物联网技术的温室大棚智能控制系统设计研究[J].电子世界,2016(11):184-185.
[5]潘永雄.单片机原理与应用[M].北京:电子工业出版社,2013.
[6]刘艳,张伟.基于Arduino云的一氧化碳检测报警系统的设计与实现[J].制造业自动化,2017,39(3):20-24.
[7]郭东平.基于单片机的大棚温湿度监测报警装置的研究与开发[D].咸阳:西北农林科技大学,2015.
[8]孙立峰.基于STC单片机塑料大棚温湿度控制系统的设计与研究[D].阿拉尔:塔里木大学,2015.
Design and Implementation of a Temperature and Humidity Sensor System for Agricultural Greenhouse
PENG Jian,CHEN Xian-quan
(College of Information Science and Engineering,Shaoguan University,Shaoguan 512000,Guangdong,China)
Greenhouse temperature and humidity detection system is to ensure the growth of crops in the best environment,to achieve high yield of crops,and to improve agricultural income and agricultural production process monitoring system.In the process of agricultural production according to the needs of real-time monitoring of greenhouse temperature and humidity data,and according to the different growth environment of the crop,it set a different threshold so as to carry out the dynamic control of the greenhouse internal environment,and to realize the integration of data acquisition and control.The design uses TI CC2530 chip as the representative of the ZigBee SOC solution,using DHT11 as a temperature and humidity sensor to monitor the temperature and humidity data,which would be sent to the host computer through the wireless monitoring system of the ZigBee protocol to achieve good results.
temperature and humidity detection;ZigBee protocol;wireless transmission
TP391
A
1007-5348(2017)06-0016-05
(责任编辑:欧恺)
2017-04-01
广东省普通高校特色创新项目(2014KTSCX171,2014WTSCX094);韶关市科技计划项目(韶科[2016]44号).
彭剑(1974-),男,湖南双峰人,韶关学院信息科学与工程学院副教授;研究方向:物联网工程、农业供应链.