陈楷晖,尹 令,吴正豪,王永福,陈振旭,林颖诗
(华南农业大学数学与信息学院,广东 广州 510642)
随着人们生活水平和文化素养的提高,人们追求更加精致高雅的生活环境,常常在家居摆设上花费心思。盆栽作为一种绿色天然的家居装饰,既能吸收空气中的苯和甲醛等空气污染[1-2],营造清新干净的空气环境,又为都市人亲近自然提供最好的选择,能够有效缓解工作的压力,是现代家居中必不可少的一部分。养植的乐趣,在于看到盆栽能朝气蓬勃的生长,然而人们疏忽管理或过度照理等行为很容易对盆栽生长状况造成不良影响。因此,开发一套智能盆栽系统,满足用户的个性化需求,具有突出的市场价值。
目前大多数自动浇水系统主要以渗透或虹吸原理主动定时浇水,自动完成室内盆栽植物的灌溉任务[3-4],多数采用的是适用于大多数植物的温湿度数据,没有考虑不同植物对温湿度、光照程度的喜好特性[5-6],这样的浇灌方式无法控制不同植物的浇水量,降低了盆栽的土壤质量,不利于植物的生长。本文提出智能盆栽设计方案,在精确采集空气温湿度,土壤温湿度,光照强度数据基础上,能依据植物不同生长特性通过决策树算法做出准确适宜的浇水方案,避免出现只为了满足“干透浇透”而出现的只浇表面的“腰截水”的现象[7]。Arduino UNO控制器通过获取各个传感器采集的数据,并进行计算分析,识别植物基本状态,判断植物是否需要进行浇灌。同时,为了满足用户对盆栽的个性化需求,本系统硬件端使用蓝牙作为数据和控制接口。用户可以通过Android端通过蓝牙设备[8],远程查看了解盆栽,实现种植交互。
图1 智能盆栽系统结构
智能盆栽系统由数据采集、数据传输、决策分析、控制和数据存储模块5个模块构成,各个模块完成不同功能。系统结构如图1所示,数据采集模块由SHT11空气温湿度传感器、YL-69土壤湿度传感器、DS18B20土壤温度传感器、BH1750环境光传感器组成实现对植物的土壤温湿度、环境温湿度和环境光照强度的自动采集;数据传输模块包括两部分,一部分是采集数据传输到决策分析模块,另一部分是移动端和硬件端进行双向数据传输;决策分析模块由Arduino UNO控制器组成,可以根据植物生长喜干湿等特性,运用模糊决策树算法判断植物浇水是否需要浇水;控制模块由决策分析模块进行数据分析得出是否浇水和需要的浇水量,并且自动控制水泵送水完成浇水操作;数据存储模块由Arduino的SD卡或者云服务器构成,实现对各种数据表的存储。
智能盆栽系统数据采集模块由1个ArduinoUNO控制器、1个SHT11温湿度传感器、3个YL-69土壤湿度传感器、1个防水DS18B20土壤温度传感器和1个BH1750环境光传感器组成,实现对各种数据的自动采集。
Arduino主控板原理如图2所示。Arduino能通过温湿度传感器、土壤湿度传感器等各种传感器来感知环境[9-10],并通过控制水泵、蓝牙模块和其他的装置来反馈、影响环境。本盆栽系统采用Arduino是因其具有廉价、跨平台及简单清晰等特点。Arduino开发板的价格低于其他开发板的价格,且Arduino IDE可以运行于Windows、Macintosh OS X、Linux三大主流操作系统,同时由于Arduino的编程语言是建立在C/C++语言基础上,又能够将AVR单片机相关的一些参数设置模块化[11],不需要开发人员处理底层系统,能够提高程序的开发效率,更有利于在智能盆栽的开发和应用,使智能盆栽得到更好的普及。
SHT11温湿度传感模块将温度、湿度感测、信号变换、A/D转换等功能集成到一个芯片上,能感应到智能盆栽周围环境的湿度温度,并将所得温湿度数据转换为电信号,放大后经A/D转换变成数字信号输出,传送到Arduino主控板上;YL-69土壤湿度传感器模块可用于检测盆栽土壤中的水分含量,工作时直接将传感器探头埋入盆栽土壤中,探头电阻随土壤湿度变化,传感器预先设定阀值,当盆栽中土壤水分含量低于阀值时传感器输出高电平,反之输出低电平[12];DS18B20温度传感器具有超小的体积、超低的硬件开销、抗干扰能力强、精度高、附加功能强等特点,用于采集盆栽中土壤温度,是本盆栽系统土壤温度传感器的最佳选择;BH1750环境光传感器通过光度计来测量盆栽周围环境的光照强度,通过计算电压来获取有效数字,直接输出数字信号;Arduino UNO主控板配有数据存储器,可将采集到的传感器数据经过适当处理后,直接存储,实现数据采集[13]。
图2 Arduino主控板原理
数据传输主要由HC-06蓝牙模块、数据存储器和Android移动设备构成。手机端通过搜索硬件蓝牙进行连接,实现数据传输通路的搭建[8]。在连接之后手机可以通过发送命令给盆栽系统,系统硬件端对命名进行解析返回需要的信息给移动端;盆栽系统固定一段时间将所获取的植物基本信息进行实时传输给移动端,实现数据的双向通信。
为设计信息传输的格式,要求时间跨度有相应的最大跨度——定义为MAX-SPAN,包括:命令信息格式,在需要数据时进行发送,请求数据的类型即表中request-type,如表1所示;实时信息格式,盆栽固定一段时间需要传送给移动端的数据信息,如表2所示;历史信息格式,当命令信息的request-type= “history”时返回历史信息,如表3所示;空气温度信息格式,当命令信息的request-type= “atop”时返回空气温度信息如表4所示;空气湿度信息格式,当命令信息的request-type= “ahop”时返回空气湿度信息;土壤温度信息格式,当命令信息的request-type= “stop”时返回土壤温度信息;土壤湿度信息格式,当命令信息的requesttype= “shop”时返回土壤湿度信息。其中空气湿度、土壤温度、土壤湿度的信息格式与空气温度信息格式相似。
表1 信息格式
2.3.1 数据存储结构 (1)植物数据库设计。系统使用数据库结构化地存储系统数据,存储不同植物的种类信息、采集的温湿度信息、浇灌用水量数据等。
(2)主要数据表。包含植物种类信息数据表、植物基本状态信息表、算法训练数据表、浇灌用水量数据表及决策树表。
植物种类信息数据表[14]:用于存储植物种类信息主要有植物种分类群信息 (种所在的门、纲、目、科、属的信息,包括相应的名称和特征)、种名信息 (包括种的拉丁名、中文名和异名)、形态特征、生活环境或生态习性、地理分布。该表首先是在用户在APP端将植物的名称输入之后,系统自动查询该植物的所属的界、门、纲、目、科、属和种的信息,并生成一个ID号唯一标识该植物,然后将这些植物基本信息保存进数据库中,以实现不同植物的个性化浇灌(表2)。
植物基本状态信息表(Basic Plant State Information Table, BPSIT):用于存储由传感器采集到的盆栽在某一时刻的环境温湿度信息、土壤温湿度信息和光照强度信息。该表中ID号是识别植物的标识,在一定时间间隔Arduino主板将会获取各个传感器的实时盆栽状态信息,包括环境温度(ATOP),环境湿度(AHOP)、土壤温度(STOP)、土壤湿度(SHOP)和光照强度(ALIOP)等基本状态信息,并将其保存进数据库,可供数据分析,实现盆栽的自动化浇灌(表3)。
表2 植物种类信息数据
表3 植物基本状态信息
算法训练数据表(Algorithm Training Data Table, ATDT):记录多种植物在不同生命状态下的是否需要浇水(Watering)。该表主要存储不同类别植物(数据表中以pot_id区分)在不同环境温湿度、土壤温湿度和光照强度,其对应判断,植物是否需要浇水的样本数据。根据数据表中某一类别植物的充分的数据信息,利用模糊分类模型进行模型构建,即能获得特定植物模型结果,该结果能够用以判断植物在特定环境温湿度、土壤温湿度和光照强度下是否需要浇水(表4)。
表4 算法训练数据
浇灌用水量数据表(Water Consumption Table, WCT):用于存放浇灌用水量历史数据,实现对用水量预测模型的修正。该表中ID号作为识别植物的标识,Arduino主板对每一次浇灌的时间和时长进行记录,根据浇水时长可以计算得到植物的浇水量(表5),并将这些记录用于数据分析。
表5 浇灌用水量数据
决策树表(Decision Tree Table):用于存放算法训练后得到各种植物对应决策树表。决策树表是某一类别植物利用ATDT数据表进行分类模型构建后得到的模型结果。由于算法训练数据表的数据的改动较小,因此盆栽硬件端模型构建后得到的决策树结果,在一段时间内都具有有效性,并且规定一次训练得到的决策树有效时间为30 d(表6)。
表6 决策树表
2.3.2 数据存储载体 数据表以文件形式存储于Arduino的SD卡,由于Arduino UNO自身的硬件架构特性,其内存仅为32KB,数据库软件无法在平台上运行。因此数据表存储以文件形式存储在SD卡中,主控板通过读写SD卡中的文件操作数据表。
2.4.1 状态分类回归决策树 智能盆栽硬件端从各个传感器获取的数据,如土壤温湿度、环境温湿度、光照强度等盆栽的基本生命状态信息集合(记为infos)。根据infos查找ATDT表,判断植物的干渴程度,既而判断植物是否需要浇灌。
式中,f表示查表,表示infos条件下的植物是否需要浇水。
由于盆栽infos的数据属性的数值型和变化性,ATDT无法包含植物所有状态下的干渴程度信息。因此,结合ATDT中数据特征,系统采用适合机器学习分类算法[15],充分有效的利用ATDT,同时实现系统功能的健全性。分类方法的选择决定着植物状态识别的正确性高低。决策树模型具有高效性、易构建性、计算复杂度不高等特性,针对本系统信息集合infos的特点,选择决策树模型进行浇灌决策。
决策树有分类树和回归树两种[16],分类树对离散变量做决策树,回归树对连续变量做决策树[17]。infos数据的数值型特性,系统进一步选择决策树模型中以Gini指数来选择划分属性的分类回归树(ClassificationAndRegression Tree,CART)模型。其中Gini指数反映从数据集中随机选择两个样本,其类别标记不一致的概率,即盆栽样本数据集中类别标记Watering不一致的概率。因此,Gini指数越小,则数据集纯度越高[18],即划分后的数据集中类别标记Watering一致性更高。所以,在进行算法训练时,选择Gini指数最小的分类方案的分类效果更好。在运用决策树算法模型后,式(1)修正为:
式中,CART(ATDT)表示使用训练数据ATDT训练CART;f表示利用CART的结果,计算得出infos状态下植物的。
2.4.2 系统应用 以 “盆栽绿萝训练数据表”(表7)为例,对盆栽是否需要浇水进行分析。该表数据参考文献及其他数据库等[19]由实验所得,取多盆绿萝盆栽进行实验,分别于每天的8:00、14:00、20:00由盆栽传感器获得数据后求平均值,通过模糊决策树对所得数据进行分析。选用绿萝作为实验物种,是因其具有广大的市场,在盆栽植物中具有代表性。
ATDT数据库中植物物种ID号为盆栽绿萝(001)的共有100条记录,其中正例50个,即Watering为1的数据,表示植物需要补水;反例50个,即Watering为0的数据,表示不需要浇水。表7显示了其中一部分记录。将ATDT表中该类别植物的所有数据作为输入,应用CART算法处理数据后得到决策树(图3)。根据得到的决策树,再结合数据采集模块返回的传感器数据信息,Arduino UNO便能进行决策,判断出植物是否需要浇水。
表7 盆栽绿萝植物训练部分数据表(数据库中植物物种ID号—001)
以数据采集模块采集到的阳台盆栽绿萝下午14:00传感器实时数据ATOP 35.50℃、AHOP 67%、STOP28.65℃、SHOP 76%、ALIOP 780为例,系统的决策过程如下。按照图3决策树逐属性进行决策判断,首先,获得决策数根节点的属性为SHOP,比较实时数据表中土壤湿度SHOP数值76小于根节点分支条件87,因此,需要进入分支节点STOP继续比较,按照同样的方法继续判断,所经过的树节点依次为SHOPSTOP-ATOP-SHOP-AHOP,最终可以到达叶节点Watering为1,判断得到植物需要浇水,决策模块发出浇水信号,Arduino UNO控制器控制水泵对盆栽植物浇水。
2.4.3 算法改进 为满足用户的个性化需求,算法提供了多种模式。其中:
模式0(Automatic):系统根据自带数据库中的信息(ATDT),使用CART算法得到的构建决策树,应用于盆栽决策过程。
模式1(Semi-Automatic):系统根据自带数据库的信息(ATDT),同时结合本地数据库记录的用户浇水时的盆栽信息(BPSIT和WCT),再构建决策树。
图3 数据处理后得到的决策树
模式2(Customize):系统根据本地数据库记录的用户浇水信息(WCT),再构建决策树。
以上3种模式适用于不同需求和背景的用户,提供了个性化的方案,具有一定的实用性。
通过Arduino控制板自动浇灌或通过用户Android端手动控制水泵对盆栽进行个性化浇灌;通过传感器将盆栽实时生长环境信息传送到Arduino主板中[20],利用数据库及数据分析模块中模糊决策树算法对数据传送的数据进行分析是否需要浇水和浇水量,而后反馈回Arduino控制板,再根据所得反馈信息控制水泵进行自动浇水;同时也会将盆栽实时生长环境信息传送到用户Android端中,用户可以通过移动设备视频远程了解到盆栽实时情况,也可以在移动端进行操控,将信息传送到Arduino控制板控制水泵进行手动浇水,同时提醒用户浇水是否浇水不足或过量,让用户体验到养殖盆栽的乐趣,也能让盆栽更好地生长。
本智能盆栽模型采用Arduino UNO主板,配置SHT11温湿度传感器、YL-69土壤湿度传感器以及BH1750环境光传感器进行数据采集,通过蓝牙通信模块将数据无线传输到手机客户端,用户通过应用程序对盆栽进行远程操作。在硬件方面获取数据方便,及时,有效,且操作简单,实用性强,成本低廉;使用决策树算法,透析植物特性,对不同植物做出不同选择,实现因植物而异的差异化照看。设想改进数据采集小车和数据存储容量上稍加扩张,采用更精确的传感器,系统还可拓展到温室大棚蔬菜浇水等,应用于农业种植场和实验基地。
随着人们的购买力日益提升,盆栽市场具有广阔的前景。个性化智能盆栽系统迎合大众需求,根据不同植物的生活习性,实现智能操作,使植物的种植变得更加现代化,专业化。现代人不用再像传统花农一样常规常矩,按时按点打理,便可轻轻松松坐拥绿色生活。未来人工智能技术不断完善,逐步渗透生活,智能家居将得到进一步推广,相信智能绿化设计会更加深入人心,为人们所接受。