基于物联网的水培控制系统设计与实现
2020-12-07田博严李强梁炜恒李统
田博 严李强 梁炜恒 李统
摘 要:恶劣的自然条件一直制约着西藏地区农业的发展,但很多地方引入的温室大棚起到了很好的弥补作用。文中尝试在室内水培种植模式的基础上引入物联网技术,以ZigBee作为室内传输协议,通过串口通信与STM32相连接,用GPRS网络与服务器进行信息交互,用户可以直接通过移动终端获取服务器数据,并实时远程测控农作物的生长环境状态,为西藏现有的农业增加了一种新的种植管理方式。实验结果表明,该模式不仅能够对水培各个环节进行有效控制,而且整体操作相对简单,在西藏地区具有一定的应用价值。
关键词:水培;物联网;ZigBee;GPRS;远程控制;加密
中图分类号:TP391;TN609;TN99文献标识码:A文章编号:2095-1302(2020)11-00-04
0 引 言
西藏海拔4 000 m以上的地区降雨量少,水源不足,年均温度低,作物生长期短,多数农作物在传统的种植方式下生长困难。因此,发展可以缓解现状的水培种植技术尤为重要。目前,西藏引入的温室种植技术很好地克服了气候问题,但仍存在环境不能精确控制、技术操作繁琐等不足,在一定程度上制约着西藏农业的可持续发展。随着物联网技术的成熟,如何精确控制农作物环境、提高农业信息化水平成为目前西藏农业研究的重大问题之一。
国外的水培技术被称为水耕栽培,所属范畴为无土栽培。水耕栽培的最早概念源自1840年无机质营养学说(Mineraltheory),该学说[1]认为植物的根可以吸收溶解在水中的无机质物。1859—1865年,德国科学家Sachs和Knop通过做植物的成分分析得知N、P、K、Ca、Mg、S、Fe为植物生长必要元素[2],并以这些元素组成的化学物质溶解于水中,将植物根浸在溶液中实验水培技术,并获得成功。半个世纪以后,美国加州大学W.F.Gericke由生理试验的水耕改变为营养栽培的水培,并定名为水耕栽培[3]。第二次世界大战期间,美军在太平洋岛出现蔬菜供应困难,后采用水耕栽培技术从事生产。战后驻日美军也在东京设置了22公顷[4]的水耕栽培基地,故日本在水耕栽培技术方面有所发展。
我国水培技术的研究应用起步较晚,但生豆芽、种水仙这些较原始的无土栽培技术却有悠久的历史,近几十年才开始较正规的科学研究和生产实验。20世纪70年代后期,山东大学首先开始用蛭石栽培黄瓜、西红柿等,都取得了成功。20世纪80年代中期,进口的温室及无土栽培设施相继投产。随着改革开放的深入和人民生活水平的不断提高,蔬菜生产已经从过去的追求高产向优质且高产方向发展,人们对绿色无公害食品的呼声越来越高。在此形势下,无土栽培在全国各地蓬勃兴起,迅速从研究阶段进入生产阶段[5]。
综上所述,水培系统具有很大的发展空间,同时存在许多难题。本文采用Android平台客户端解析发送数据和ZigBee传输数据相结合的构思,使得水培系统具有了人力资源耗费少、获取水培信息效率高、控制简单等优点。以GPRS作为无线通信的基础,用户通过移动终端来实时获取水培的各项信息,并对相应设备进行控制,从而调控各项数据,或者在移动终端设置环境因子范围进行自控,实现较为智能的水培管理。
1 系统总体设计
本文設计的最终目标是形成一个既可以在家庭小规模种植使用,也可以在大棚中大规模使用的物联网生态水培控制系统。其总体设计的要求是实现对水培过程中温度、湿度、光照、营养液成分的自动控制功能。在目前的操作过程中,水培过程中的温湿度可以通过温湿度传感器检测,但营养液浓度、二氧化碳浓度的检测较为困难,且检测仪器成本普遍较高。因此,本文通过APP控制本系统的所有基本功能。系统中的信号传输方式选用GPRS通信技术,因为目前该技术在我国的研究和开发相当成熟,且已广泛覆盖于家庭。近年来,随着智能手机和移动网络传输速度的飞速发展,智能手机已经非常普及。根据市场研究机构IDC发布的智能手机市场报告来看,2019年安卓手机占87%市场份额,故智能生态水培系统的移动终端我们基于Android系统的智能手机进行开发。系统总体设计架构如图1所示。
2 系统硬件设计与实现
本系统的硬件设计主要是用STM32作为信息的枢纽,向上进行信息的交互,向下进行各种节点数据采集以及硬件工作控制。向上交互主要是借助GPRS传出信息到数据服务器;向下控制是STM32通过解析用户使用移动客户端发送到服务器再通过GPRS传输到STM32的数据后,通过控制继电器开关来达到控制外接光照、营养液供给装置的工作状态等目标。系统硬件架构如图2所示。
2.1 单片机系统
单片机系统采用STM32F103单片机,其具有高性能、低成本以及超低功耗和高代码效率[6]等优点。STM32按内核架构可以分为多个系列,其中STM32F系列主要有“增强型”系列STM32F103、“基本型”系列STM32F101、“互联型”系列STM32F107和STM32F105,上述“增强型”系列是性能最高的产品,其时钟频率最高可达72 MHz。
2.2 ZigBee 组网
ZigBee组网方式主要有星型拓扑结构、网状拓扑结构以及簇状拓扑结构。其选择主要取决于具体的应用领域。在ZigBee无线组网过程中,不同的网络拓扑结构所需网络节点配置方案不同。网络节点的类型主要有协调器、路由器和终端节点,具体配置根据需要决定。
本系统采用星型拓扑结构组网,该结构具有控制简单、故障易诊断等优点。该组网方式中的中央控制节点直接或间接与其他所有分节点相连接,从而利用较为简单的协议进行所有节点的控制,便于网络管理和监控。此外,中央控制节点可以在不影响其他节点正常工作的情况下,对单节点连接线路逐一隔离,并进行故障检测和定位,从而较为方便地对各个站点提供服务和网络重新配置。
2.3 无线通信模块
SIM800A是一款高性能工业级无线传输模块,主要优点是功耗低、设计简单等。在系统中,该模块主要用来完成STM32单片机与服务器之间的信息交互。服务器把信息发送给GPRS模块,模块接收、处理后转发给STM32单片机,单片机分析后通过串口通信方式发送到各节点,从而控制各节点设备。反之,无线通信模块接收到STM32传输的水培环境参数信息后,将其分析、打包后通过GPRS发送到服务器,从而实现所有数据的交互。
2.4 ZigBee节点硬件设计
ZigBee是一种短距离、低速率无线组网通信技术,具有强大的组网能力[7]。ZigBee网络中的无线节点按照功能不同一般可划分为3种类型:协调器(Coordinator)、路由器(Router)和终端节点[8](End Device)。协调器是核心节点,主要负责协调各节点网络的正常建立与运行,并将各终端节点连接的传感器所采集到的数据信息发送至STM32。与传感器相连的ZigBee模块在加入网络后,主要负责控制终端子节点上的传感器采集水培环境参数信息,或调节各个调节器的工作状态,必要时终端节点可以进入休眠状态降低电路功耗。本系统使用ZigBee 通信技术,主要是考虑到ZigBee技术的强穿透能力和高抗干扰能力。而且其不用另配置通信电缆,只需通过构建Mesh-network网状网络[9]保障各检测设备的信号覆盖,及控制及时性。ZigBee终端节点硬件结构如图3所示。
2.5 传感器系统模块
(1)空气温湿度传感器
本系统采用的是DHT11数字温湿度传感器。它具有超小的体积、极低的功耗、较为精确的测量数值以及卓越的长期稳定性等优点。该传感器由1个高性能8位单片机与1个电阻式感湿元件和1个NTC测温元件连接而成,外有4针单排引脚封装,连接极其方便。
(2)光敏传感器
光敏传感器是对外界光信号或光辐射有响应或转换功能的敏感装置。本系统所采用的光敏电阻传感器主要通过感应光线的明暗变化,将光信号转换成微弱的电信号,再由简单电子线路放大处理,从而实现控制。它的敏感波长在可见波长附近,包括红外线波长和紫外线波长。
(3)溶解性总固体测量工具
溶解性总固体(Total Dissolvesd Solpds,TDS)的测量单位为mg/L,它表明1 L水当中含有可溶解固体物质的含量。本系统使用的测量工具是TDS笔。它采用电导电极法测量水的电导率,由于水的电导率和TDS值成正比例关系,因此可间接测量TDS值[10]。在物理意义上,水中溶解物越多,水的TDS就越大,水的导电性也越好,其导电率值也越大。
2.6 数据传输防篡改加密方案设计
为了保证数据在传输过程中不被他人以非正当手段篡改而出现异常数据,导致对STM32单片机等硬件以及农作物造成的不可逆损坏;再加上由于MD5算法使用C语言(硬件代码部分)和Java语言(Android客户端开发部分)实现较为简单,所以本系统设计的传输方案是利用MD5加密明文数据,并将两次数据间隔发送来判断数据是否被篡改。
由于MD5的不可逆特性,本系统将明文数据按照预设的关键字提取算法,在字符串的前、中、尾各取出部分数据,组成新的字符串A。之后将新的字符串A进行MD5加密得到MD5(A),并将MD5(A)传输到下一层。间隔3 s后,将明文数据发送到下一层,并将明文数据按照给定算法提取关键词,得到新的字符串B。将字符串B进行MD5加密后得到MD5(B),通过对比MD5(A)和MD5(B),即可判断明文数据在传输过程中是否出现错误或者出现了被非法篡改的情况。数据传输防篡改加密方案设计如图4所示。
在此算法中,无论关键词提取算法如何设计,只要保持数据传输层之间的提取算法一致即可。即使关键词提取算法被破译或泄露,也可以根据判断数据的完整性以及数据是否被篡改,来确保STM32单片机硬件的安全以及水培系统中作物的安全。
3 系统软件设计与实现
3.1 ZigBee节点软件设计
本系统使用ZigBee自组网对各个感应节点反馈回来的信息進行处理。各个感应节点收集到信息之后由ZigBee自组网(星型组网)发送至ZigBee,ZigBee通过GPRS模块发送至手机终端。设计终端节点时,为实现数据采集、处理、通信、储存多元化功能以及保证系统性能良好,选用的是处理能力灵活的ZigBee 无线通信模块和模块化结构传感器[11]。CC2530芯片自身有一个软件编程内核,因此可以简单地进行ZigBee组网。该芯片采用IAR Embedded Workbench作为软件的集成开发环境,ZigBee每一层协议采用C语言进行编程控制,并且留有让开发者迅速实现对ZigBee协议进行应用开发的API接口,从而提升了操作的便捷性和协议的可靠性。ZigBee协调器流程如图5所示,ZigBee节点流程如图6所示。
ZigBee查询数据部分程序代码如下:
switch(FC)
{
case 0x01:
for (i=0; i osal_memcpy(&TxBuffer[index],NodeData[i],4); index += 4; }TxBuffer[index]=XorCheckSum(TxBuffer,index); TxBuffer[index+1] = 0x23; HalUARTWrite(UART0,TxBuffer,index+2); ret = 1; break; case 0x02: osal_memcpy(&TxBuffer[index],NodeData[addr-1],4); index += 4; TxBuffer[index]=XorCheckSum(TxBuffer,index); TxBuffer[index+1] = 0x23; HalUARTWrite(UART0,TxBuffer,index+2); ret = 1; break; default: ret = 0; break;} 当协调器发送的功能码为0x01时,所有终端都将实时采集到的所有数据发给协调器,并以0x23为数据的结束标志位;当协调器发送0x02时根据地址位、数据位和校验码的不同来完成不同终端、不同传感器的数据采集。 3.2 服务器端设计 本系统服务器从功能上主要划分为2个部分:通信部分和数据存储部分。其中通信部分主要实现移动终端和协调器与STM32单片机之间的信息交互。数据部分主要用来存储水培数据、用户资料、操作记录等信息。该系统的通信服务器采用的是由Socket网络编程实现的TCP Server,同时用MySQL数据库进行信息的存储。 3.3 Android手机客户端设计 本系统是基于JDK1.9环境,使用Android Studio 3.6.1版本开发的,主要实现监测水培内环境参数,并对各终端节点控制器下发控制命令,查看历史操作记录等功能。 Android手机端软件设计主要包括Android开发环境搭建、登录界面设计、监测界面设计[12]。该APP使用Android Studio来编写,通过XML文件调用Android通用控件构建UI界面,并通过Java语言绑定Activity生命周期事件以及控件本身来控制相应控件,实行相应的UI变化及相应的数据交互等逻辑事件功能,从而实现监测环境数据、控制相应硬件工作状态、修改用户个人信息、检索操作记录的功能。Android手机端软件界面如图7所示。 4 结 语 本文设计的智能生态水培系统结合了Android平台开发和ZigBee自组网技术,提出了一种新的农业生产种植和管理方案,减少了自然环境对植物生长的限制。它通过远程控制模式降低了人工投入的劳动成本,提高了收益。该系统实现了远程信息交互,及对环境调节系统的控制,能有效解决植物所处环境条件差的问题。在生态发展方面,该系统采用营养液循环模式,基本上实现了全生态。该系统在农业生产模式的智能化、互联网化、生态化等方面均具有良好的应用价值和前景。 注:本文通讯作者为严李强。 参考文献 [1]常维信.无土栽培的现状与发展趋势[J].山东农业大学学报,1986,32(4):87-103. [2]段彦丹,樊力强,吴志刚,等.蔬菜无土栽培现状及发展前景[J].北方园艺,2008,32(8):63-65. [3]王化.中国蔬菜无土栽培发展历史的初步探讨[J].上海蔬菜,1997,11(1):11-12. [4]万军.国内外无土栽培技术现状及发展趋势[J].科技创新导报,2011,8(3):11. [5]张广楠.无土栽培技術研究的现状与发展前景[J].甘肃农业科技,2004,32(2):6-8. [6]陶林,瞿少成,易宇凡,等.一种模拟农场环境监测与灌溉控制的教育物联网系统实现[J].电子测量技术,2019,42(24):81-85. [7]薛秀云,张彬,张泽龙,等.基于ZigBee的液肥变量深施系统设计与试验[J].排灌机械工程学报,2020,38(3):318-324. [8]王睿.基于ZigBee和Android技术的智慧农业系统设计[J].电子技术与软件工程,2019,26(5):93-94. [9]王盟.基于ZigBee通信技术在智能家居中的应用[J].长春大学学报,2019,29(2):1-5. [10]杨磊,熊卫华,姜明.基于NB-IoT技术的家庭水质检测系统[J].计算机系统应用,2019,28(12):129-133. [11]刘幸兴,刘瑜兴.基于ZigBee技术的智能化学生宿舍查寝管理系统[J].自动化技术与应用,2020,39(1):74-77. [12]刘忠超,范伟强,常有周,等.基于ZigBee和Android的牛舍环境远程监测系统设计[J].黑龙江畜牧兽医,2018,61(17):61-64.