康云川 代彦 梁裕巧
摘要:针对当前农业信息化领域物联网技术与流行的单片机开发板,提出了1种应用于农业大棚的物联网系统的选型与构建方案,利用Raspberry Pi、Arduino、ZigBee技术,设计了1种低成本、低功耗、高效率的智能农业大棚监控系统,系统的主要功能包括用户可以通过手机微信、PC终端对大棚内温度、湿度、光照度、CO2浓度、土壤湿度、烟雾等数据进行实时监测与分析,以及对农业设施设备的远程控制,为农业信息化、智能化提供一种新的技术解决方案。
关键词:智能农业;智能大棚;监控系统;Raspberry Pi;Arduino;ZigBee;物联网
中图分类号: S126;TP277.2
文献标志码: A
文章编号:1002-1302(2019)15-0251-05
随着我国经济与科技的飞速发展,传统农业的生产方式已无法满足人们日益增长的物质需求,也无法满足我国加快农业产业化发展趋势,农业的产业化还必须逐渐从传统的实践方式走向信息化,以信息化在农业信息科学中的理论指导、以现代信息技术手段为工具,以数据信息流为调节手段,调整农业活动全过程,使之成为农业信息化的一个重要环节[1]。如农业数据信息采集、信息加工和信息管理等主要利用物联网技术手段,通过各传感器采集相应的环境数据,管理人员或相应的信息系统根据传感器采集后的数据进行加工与分析,最终通过人工或系统自动处理数据,自动干预设备设施进行作业,从而实现农业信息智能化,农业机械智能化,辅助农业管理人员做出决策,辅助作物种植人员对农作物进行栽培、种植等。
智能大棚是保障农作物大规模高效种植、反季节种植、防止大自然病虫害等利用现代化科技手段必要的一种方式,智能大棚主要依托现代化物联网传感器技术、互联网技术、单片机技术,而传统的单片机技术开发使农业信息化技术的利用更为复杂,如51、STM32、AVR等单片机技术的开发,开发人员需要熟悉C语言、汇编语言或C+ +语言、电路设计、模拟电路与数字电路,还需熟悉单片机寄存器等知识,由于技术门槛很高,没有大量专业技术人员的参与,没有示范场、实验室就不可能大规模推广这些技术。采用Raspberry Pi、Arduino开发板有望解决这一难题,其开源、免费的设计理念、简单的开发模式和丰富的外围软硬件资源吸引了大批创客和非计算机专业人士的加入,打破了物联网的技术壁垒,形成了一种大众化创新的新局面,为推动农业物联网的发展提供了一种廉价高效的解决方案。本系统将实现大棚内感知数据进行自动采集、加工处理,然后将数据传送至服务器端再至用户终端,从而实现大棚内设施自动作业,用户可以利用移动终端与PC终端对大棚环境的实时远程监测与管理、设施的远程控制等。
1 系统总体设计
本系统的设计避开了传统单片机技术开发的大量难点,开发人员不需要具备丰富的单片机技术开发知识,就能开发出性能高效稳定的智能大棚系统,智能大棚硬件系统基于Raspberry Pi、Arduino、ZigBee开发板设计,其中主要功能有大棚室内温湿度监控,土壤湿度监控,火源监控及喷淋滴灌系统、补光系统、换气系统等控制模块组成,系统主要由信息采集层、设施控制层、网络层、数据传输层、数据处理层5层构成。单片机系统与传感器通过采集大棚内与土壤环境温湿度、光照度、CO2浓度,烟雾等数据,单片机系统经ZigBee远距离多跳组网后,将数据传至网关Raspberry Pi,数据最后经无线或有线网络传输至服务器。软件系统主要由WEB服务端与手机微信服务端组成,采用Apache、PHP、MySQL开发,管理人员可以通过手机微信端或PC端进行数据的实时监控,对大棚内的设施模块进行远程操作,或由单片机系统自动干预操作,系统框图如图1所示。
2 硬件系统设计
2.1 信息采集层设计
2.1.1 单片机与传感器 信息采集层负责对整个大棚环境的信息感知采集,主要由Arduino单片机开发板、大棚内温度、湿度传感器、光照度传感器、烟雾传感器、二氧化碳浓度传感器、土壤湿度传感器等模块构成,通过对开发板上的GPIO接口与传感器器相连,实现感知信息采集,信息采集层硬件框图如图2所示。
单片机开发板采用Arduino nano微型开发板,简称“MCU”,该开发板的Flash和RAM的存储容量较大,体积较小,具有丰富的外围接口,性价比高,节约成本,输入电压为 7~12 V,工作电压为5 V,可采用USB接口或GPIO针脚接口供电方式供电,烧录程序比传统的单片机更简单方便,不需要额外的烧录器,直接通过USB接口上传程序,编写代码更容易,Arduino将Atemga芯片相关的一些底层参数进行封装,提供了LCD、EEPROM、GSM、WIFI、LED、KeyBoard等一些常用的程序库,开发人员不需要了解芯片寄存器就可实现对程序的开发,可以提高应用的开发效率[2]。
传感器模块主要包括大棚温度湿度、光照度、CO2浓度、土壤的湿度、烟雾传感器其中传感器的具体选型如下:
大棚采用温度传感器DS18B20,具有体积小、性能开销低、抗干扰能力强、测量精度高等特点,温度测量范围为 -40~120 ℃,满足日常生活的需要,该传感器采用数字单总线传输,只占用MCU模块1个IO接口,节省了MCU模块的接口[3]。
大棚湿度传感器采用DHT11,用于測量大棚内的湿度,DHT11型数字温湿度传感器是一种含复合传感器,体积较小、低功耗,已被校准过的数字信号输出温度、湿度,其专用的数字模块采集技术和温度、湿度传感器技术,确保了传感器可靠性高、能长期稳定运行[4]。
光照度传感器采用GY-30,用于测量大棚内的光照度,该传感器成本低、功耗小、体积小、安装方便,光照度的测试范围为0~65 535 lx,传感器内置16 bit模数转换器,省略了复杂的计算,不区分环境光源,直接输出数据[5]。
CO2浓度传感器采用MG811,用于测量大棚内的二氧化碳的浓度,它对二氧化碳有很好的敏感性和选择性,受温度和湿度变化的影响较小,具有良好的稳定性和重现性,常用于二氧化碳浓度检测、空气质量控制系统和发酵过程控制等应用[6]。
土壤湿度传感器采用RS-WS-I20-TR,采用RS485通信,适用于测量土壤温度和水分,RS-WS-I20-TR传感器精确度高,响应快,受土壤盐度影响小,耐电解,耐腐蚀,真空密封,防水防锈,适用于各种土壤类型,可长期埋于土壤中。
烟雾传感器采用MQ-2,用于大棚内火情的检测,以免大棚发生火灾造成不必要的损失,它可以检测空气中的烟雾和可燃气体,并且在很宽的浓度范围内对可燃气体具有良好的敏感性。它对液化气、丙烷和氢气具有高度敏感性,它具有寿命长、成本低、电路简单的特点[7]。
2.1.2 硬件程序实现 MCU与各传感器建立通信连接,采用Arduino开发语言编写传感器操作代码,Arduino开发语言采用C语言编程的风格,Arduino语言基于开始时的 setup( ),loop( )作为程序的主体,setup( )用于初始化程序、pinMode( )为GPIO的设置函数、调用库函数等,它只运行1次,C语言中的main函数loop( )函数是循环函数,语句在函数内重复循环执行,开发人员只要具备C语言基础就能完成项目的开发,MCU与传感器,设施通信方式主要有数字信号输入输出、模拟信号输入输出、串口输入输出,MCU与DHT11采集数据示例代码如图3所示。
2.2 设施控制层设计
2.2.1 单片机开发板与设施设备 设施控制层主要有喷淋滴灌系统、补光系统、换气系统等组成,分别与ZigBee多跳组网后的MCU连接,用于实现大棚内智能化、自动化作业,减少人工手动干预设施,极大地减少了人力成本,提高作业的效率、精度等,例如:土壤的水分不足,喷淋滴灌系统可以根据用户设置的正常阈值,自动进行作物的浇灌或土壤的水分补给;当大棚内的光线不足或过于充足时,补光系统可以对大棚自动进行补光,让农作物正常进行光合作用;当大棚内的温度过高时,换气系统自动打开,有效缓解室内温度、以便空气正常流通,让作物在室内能进行正常生长,设施控制层硬件框图如图4所示。
2.2.2 硬件程序实现 MCU与设施设备的建立连接,主要是MCU向设施设备发送高低电平数字信号“0”或“1”来控制设备,比如“0”表示关闭换气系统,“1”表示打开换气系统,“1”“0”与Arduino语言中的“HIGH”与“LOW”参数对应,MCU控制换气系统的示例代码如图5所示。
2.3 网络层设计
2.3.1 组网通信 采用DL-LN33模块进行信息采集层、设施控制层MCU模块、数据传输层Raspberry Pi的组网通信,模块基ZigBee802.15.4协议,可视通信距离单跳70 m,模块无线频率范围为 2.4~2.45 GHz,该频率范围属于全球免费的
无线频段,模块在工作时,会与周围的模块自动建立成一个无线的多跳网络,连接后的网络为等网络,不需要中心节点,还可以进行星型拓扑组网与多跳组网,专为需要自动组网多跳传输的应用场合设计[8]。DL-LN33工作电压为2.5~3.6 V,无线电发射功率为4.5 dBm,模块工作时电流消耗 30 mA,该模块有16个信号和65 536个网络标志,即26×65 536 个网络,每个网络可以容纳96~130个节点,开发人员不需要对模块进行编程,只需知道需收发端IP地址、网络ID、网络信道地址即可实现网络通讯,模块会通过网络选择最优的路径,将信息传输给目标模块,而目标模块将获得发送端发来的数据[9],组网硬件框图如图6所示。
2.3.2 硬件程序实现 硬件程序主要涉及MCU与DL-LN33、Raspberry Pi与DL-LN33串口通信,在通信过程中,MCU告诉目标模块这样的信息:“将数据00 00 00 33发往地
址为0003的模块,目标端口为90,源端口为91”。首先需要将这些信息整理成一个包,通过串行接口发给目标模块:FE 08 91 90 03 00 00 00 00 33 FF,其中FE 08为包头,91为网卡端口号,90为目标网卡端口号,03 00为目标网卡地址号,00 00 00 33 为需要发送的数据内容,FF为包尾,这段数据串的含义就是组网的MCU把数据00 00 00 33发送给为目标地址为03的网卡。而目标网卡03收到数据00 00 00 33,例如:00 00 00 33 中的33是温室内的温度,然后Raspberry Pi再把33发送至服务器,后台管理系统就能得到感知的温度信息。
MCU与DL-LN33通信采用Arduino开发语言,其中示例代码(接收端与发送端)如图7、图8所示。
Raspberry Pi与DL-LN33通信采用Python语言,主要示例代码如图9所示。
2.4 数据传输层设计
采用Raspberry Pi 3B+开发板作为智能大棚的网关,体积只有卡片大小,具有所有PC机的功能搭载1.2 GHz的64位四核处理器,1 G运行内存,内置802.11 b/g/n无线网卡,比传统单片机处理数据更稳定、快速、便捷[10]。主要功能有接受MCU传来的数据并上传至服务器,接收来自服务器的用户指令,对MCU发送指令,在数据处理层服务器端不可用时,用户可通过HDMI接口接上显示器或通过手机终端对Raspberry Pi进行管理,从而接管所有数据处理层的业务,避免了数据处理层在无法响应时导致大棚内的数据及设施无法监控或控制的问题,数据传输层硬件框图如图10所示。
2.5 数据处理层设计
数据处理层主要由服务器端后台构成,承载数据传输层数据的存储与交互处理,大棚WEB服务端平台、微信通信网关的运行等,用户可以根据系统处理数据的规模大小、并发连接数、资源使用率等实际情况,可采用Raspberry Pi承載平台的运行或购买相应的云计算资源。用户可以通过手机微信,WEB平台来完成系统中的大棚环境信息监测与设施控制,当用户初次访问平台时,需要注册,并且需要超级管理员访问进行权限分配。用户可以通过微信终端或计算机终端发起注册请求。如果用户注册成功,平台将为用户生成唯一的身份标志,并将数据保存至服务器数据库,如果用户注册失败,系统则返回注册失败的信息,当用户注册成功后登录系统,根据超级管理员赋予的角色权限来进行相关访问,对大棚内的环境数据进行实时监测、历时数据查询,以及对大棚内的设施进行远程控制。
3 系统软件设计
Raspberry Pi将所感知数据的整理传送至服务器端,用户对设施控制的所有指令也将通过Raspberry Pi发送,开发人员可以利用Python语言实现与服务器端的接口通信,通信方式采用HTTP WEBService、POST、GET等方式向服务器发送信息或获取指令,可采用的函数库有urllib、requests、soaplib、curl。
服务端主要由WEB管理平台与微信服务端组成,提供用户注册登录功能,为Raspberry Pi提供远程通信接口,并存储用户的权限信息,传感器采集的大棚内环境信息,设施控制指令等,为用户提供大棚数据远程实时监控,大棚设施远程控制等功能。WEB管理平台与微信服务端具有相同的功能,采用HTML5的标准使系统既兼容PC端,又兼容移动终端,采用PHP语言、MySQL数据库开发,以数据模型的形式存储数据,预先设定执行触发动作的规则,并实现特定的事件监控和预警。微信端主要通过微信公众号与数据接口通信,实现对大棚的实时监控和对模块的远程控制,例如在微信公众号菜单栏实现对大棚环境信息的实时查看,也可在微信文字输入窗口,输入相应的口令就能获得相应的信息或操作相应的模块,WEB管理平台与微信服务端功能设计框图如图11所示。
4 结论
该研究采用Raspberry Pi、Arduino、ZigBee等技术,开发实施简单、数据传输可靠性高、开发效率高、组网方式简单灵活,为农业信息技术开发人员提供了低成本、便捷高效率的物联网开发技术方向,也提高了社会经济效益的目的。在实际场景的应用中还需根据作物的生长条件,大棚内的环境,对开发板、传感器的相关参数进行调整与优化。智能大棚系统作为农业信息化的部分范畴,基于物联网技术与软件工程,离不开单片机、传感器、软件程序等基础载体,其知识面涵盖农作物栽培、电子信息技术、软件工程等。而农业信息化是一个跨行业,且涉及多个学科的领域,需要电子工程师、软件工程师、农业技术人员共同协作,对现有的需求环境不断探索与研究才能进一步提升系统的智能程度与管理效率。
参考文献:
[1]孙九林. 信息化农业科技前沿与发展战略[J]. 中国工程科学,2002(9):1-7.
[2]Offcial website Arduino LLC[EB/OL]. [2019-01-10]. https://www.arduino.cc.
[3]张仲明,郭东伟,吕 巍,等. 基于DS18B20温度传感器的温度测量系统设计[J]. 实验技术与管理,2018,35(5):76-79+88.
[4]韩 军. 一种简易前兆观测室温、湿度环境监测设备研制[J]. 地震工程学报,2017,39(增刊1):134-139.
[5]王伟杰,叶 超,卢克祥,等. 基于GY-30的集鱼灯多点同步无线测光系统设计[J]. 渔业现代化,2016,43(5):62-66.
[6]赵庆展,张天毅,陈 洪. 小型四旋翼无人机空气质量监测仪设计[J]. 现代电子技术,2017,40(24):94-99.
[7]李 敏,苏智华,刘 颖. 基于CORTEX M3+SIM900A的报警系统设计[J]. 现代电子技术,2015,38(22):62-64+68.
[8]Wang X,Zhang S L,Song G X,et al. Remote measurement of low-energy radiation based on ARM board and ZigBee wireless communication[J]. Nuclear Science and Techniques,2018,29(1):33-38.
[9]畅丽红,裴焕斗,杨佩宗. 基于龙芯平台的物联网实验系统的设计[J]. 现代电子技术,2018,41(24):183-186.
[10]Offcial Raspberry Pi website[EB/OL]. [2019-01-10]. https://www.raspberrypi.org.沈 鵬,姚永亮,郑美英,等. 基于离散元的山地马铃薯排肥器仿真优化[J]. 江苏农业科学,2019,47(15):256-258.