基于STM32和树莓派智能灌溉系统的设计与实现
2021-07-31黄中舟朱彦博
蓝 宇,黄中舟,朱彦博,陈 品
(广州软件学院 网络技术系,广东 广州 510990)
0 引 言
本项目的科学性在于合理的市场调研、充分的社会分析。首先是市场调研部分,基于艾媒数据中心收集的数据所得:中国居民人均可支配收入正在逐年增长,由2014年的20 167.0元增长到2018年的28 228.0元,如图1所示。人均收入明显的增长释放出一个信号:人们将更加注意品质生活;基于华经情报网收集的盆栽植物类花卉市场规模数据可得:种植花卉的兴趣并不是突然的兴起,而是呈现缓和增长的趋势,并且此趋势也将平稳增长很长一段时间。2017年的规模已达到362.22亿元,如图2所示。在经济增长缓慢的2017年尚可达到如此成绩,往后的增长更是在此基础上不断上升。
图1 2014—2018年中国居民人均可支配收入
图2 2013—2017年盆栽植物类花卉市场规模
在社会分析方面,随着国家不断发展,经济不断增长,人们更加在意生活质量,想过有品质的生活,小到办公桌前的仙人掌,大到家里的万年青等。如何使用户可以更好、更轻松地种植植物便是本文所需要思考的事情,最后真正地将智能灌溉系统融入日常生活当中。
1 系统总体框架图
智能灌溉系统的设计主要目的是解决何时浇水、浇多少水、如何养护而避免绿植枯萎死亡等问题。系统选用土壤干湿度传感器配合监测环境的变化,为了达到效果,传感器的比较器采用LM393芯片。
系统的整体设计思路是:由高清摄像头实现自动拍照功能,并根据已训练完成的智能识别算法,实时根据特征点进行识别工作。同时输出绿植的具体品种,将品种数据传入STM32单片机。由STM32单片机调用专属该绿植品种的灌溉方案,并以土壤干湿度传感器的监测数据为辅,智能判断是否需要浇水,如果需要浇水,应该浇多少水。该过程无需用户干预,真正做到了智能化。最后,整个过程的数据可反馈至手机APP内,做到数据可视化的效果。系统总体框架图如图3、图4所示。
图3 智能灌溉系统硬软件关系图
图4 智能灌溉系统版块关系图
2 硬件设计
2.1 单片机设计
单片机由STM32单片机、四角按键、DC 5 V的电源座、ADC0832模数转换芯片、LED1602液晶显示屏、DC 5 V水泵等部件组成。
(1)LED1602液晶显示屏
LED1602液晶显示屏主要用于显示当前的土壤干湿度值、自动浇水湿度值以及关闭水泵阀门的湿度值。LED显示屏的显示容量为16×2个字符,工作电压为4.5~5.5 V,工作电流为2.0 mA(5.0 V),字符尺寸为2.95 mm×4.35 mm(W×H)。
(2)单片机
本文采用STM32F101R6单片机,其工作频率最高为72 MHz,1.25 DMIPS/MHz,电压为2.5~6 V,存储器为32 KB的FLASH存储器,主要在系统中担任处理由土壤湿度传感器传回来的电信号,并通过放大信号从而判断是否对水泵传出电信号。
(3)ADC0832模数转换芯片
ADC0832模数转换芯片是一种8位分辨率A/D转换芯片,主要将模拟信号转换成数字信号,用于与STM32F101R6单片机联合使用,测量土壤干湿度。
(4)土壤干湿度传感器
土壤干湿度传感器的比较器采用LM393芯片,因此智能灌溉系统的工作非常稳定,工作电压为3.3~5 V,PCB尺寸为3.2 cm×1.4 cm。此传感器可以控制土壤的湿度,通过电位器调节控制相应阈值,湿度低于设定值时,D0输出高电平;高于设定值时,D0输出低电平。土壤干湿度传感器电路如图5所示。
图5 土壤干湿度传感器电路
2.2 树莓派设计
2018-11-13-raspbian-stretch-full版本的树莓派,把C270摄像头传回来的图像通过卷积神经网络OpenCV进行植物智能识别,然后把识别结果显示在APP端,将识别数据传输到单片机端。
C270摄像头:500万像素的CMOS图像传感器,采用OmniBSI技术提供2 592×1 944视频输出。它通过串行摄像机控制总线或mipi接口提供多分辨率原始图像。
2.3 训练数据过程
在树莓派上使用OpenCV和Python 3进行植物识别,树莓派通过调用C270摄像头模块获取视频。
基于图像分析的植物叶片识别主要有图像预处理、叶片特征提取和叶片分类识别三个步骤,其流程如图6所示。
图6 区域特征法识别流程
3 软件设计
本系统采用下位机控制终端软件和上位机软件设计。
3.1 上位机软件设计
上位机软件采用Eclipse 4.7开发,开发语言为Java,具有界面简洁、可操作性强的特点。上位机软件版块为设置模块、数据模块、控制模块、传输模块。在上位机中,可以实时进行植物数据的显示以及对植物历史数据的查询,并可将数据传输到用户的手机上以及管理者服务器上。本系统采用4G DTU USR-G780模块进行植物数据的传输。通过上位机,用户可以在PC端、移动端对植物的土壤干湿度数据、植物现状进行实时查看,并且可以远程控制水泵的开关与闭合,实时改变土壤的含水量。水泵阀门的闭合通常与数据的上传由软件自动完成。为满足植物在不同阶段的需求,用户可以通过上位机操作不同生长阶段的灌溉量,系统也会根据不同的成长趋势给出推荐方案。
3.2 下位机控制终端软件设计
下位机软件是在Keil μVision 5 IDE集成环境中使用C语言开发而成。系统工作时,会实时分析植物的土壤干湿度、植物生长趋势等数据,并且开始分析从采集部分得到的数据,通过植物生长趋势以及天气情况将土壤干湿度调整至预设范围。当土壤干湿度处于正常范围时,水泵阀门会关闭;当土壤干湿度低于设定区间最低值时,水泵阀门会打开,随着灌溉水量的增加,土壤湿度增加;当植物土壤干湿度高于正常范围上限时,停止灌溉。
系统软件流程如图7所示。
图7 系统软件流程
4 智能识别算法
在众多算法模型面前,本着易训练、准确率高、性价比高的原则,最终选择了较为经典的算法模型—AlexNet结构。该结构特点如下:
(1)8层结构,其中前5层为卷积层,后3层为全连接层;学习参数有6 000万个,神经元有650 000个。
(2)可在2个GPU上运行,大大提高训练速率。
(3)在第2,4,5层均是前一层在自己GPU内连接,第3层是与前面两层全连接,全连接是2个GPU全连接;RPN层是在第1,2个卷积层后;Max pooling层在RPN层以及第5个卷积层后;ReLU函数在每个卷积层以及全连接层后。
(4)卷积核大小数量:
conv1:96 11×11×3(个数/长/宽/深度)
conv2:256 5×5×48
conv3:384 3×3×256
conv4:384 3×3×192
conv5:256 3×3×192
(5)ReLU、双GPU运算:提高训练速度(应用于所有卷积层和全连接层)。
(6)重叠pool池化层:提高精度,不容易产生过度拟合(应用在第1层、第2层、第5层后面)。
(7)局部响应归一化层(LRN):提高精度(应用在第1层和第2层后面)。
(8)Dropout:减少过度拟合(应用在前2个全连接层)。
5 总体设计
5.1 系统特点
系统软件主要分为三大部分,分别是APP端、树莓派端和STM32单片机端。其中,APP端主要设计语言为Java,此端主要让用户从手机上控制单片机端水泵阀门的打开或者关闭,并且可以在APP端显示树莓派端识别的植物结果;树莓派端主要实现识别植物种类的功能,并且把识别结果传输给APP端、STM32单片机端;STM32单片机端主要设计语言为C语言,利用STM32库函数开发。为了实现自动灌溉功能,用户可以通过硬件的按键实现浇水区间的手动设置,并且在单片机端的显示屏上实时显示土壤干湿度值。当土壤干湿度低于预设范围最低值时,红色LED灯会发光,并且蜂鸣器会发出声音;当土壤干湿度位于预设值范围时,绿色LED灯会发光,同时停止蜂鸣器发出声音。系统外形图如图8所示。
图8 外形
5.2 应用价值
(1)节省水源。因系统为全自动化一体设备,拥有电子信息采集的功能,可以实时检测盆栽环境,依据植物生长条件,合理灌溉,从而减少水资源浪费。通过管道、喷枪或喷头形成喷灌,均匀、定量、定时喷洒盆栽。
(2)由于地理条件、环境气候、土壤差异的影响,植物生长会受到一定的限制,但是智能灌溉系统可以实时监测土壤情况,有效地改善土壤环境,为种植物创造较好的生长条件。
(3)减少劳动力成本。普通的灌溉浇水需要耗费时间和人力,而智能灌溉是全自动灌溉模式,同时拥有PC端和移动端,并且可以通过远程操控进行灌溉。
(4)现代的自动灌溉系统大多数都是大型的,多数均用于花园、农场等大型植物种植场所。可是随着人们的生活品质日益提升,现在更多的用户需要小型智能的灌溉系统,而现有的小型灌溉系统均存在共性问题:价格高昂、实用性低、无法为用户提供相应的种植提示等。于是,基于传统特点,改良共性问题,是本设备最大的价值体现。
5.3 转化前景
本系统的预期成果是达到商用化的使用程度,即用户需要购买我们的系统以及设备,然后用户只需要负责放置种植物,剩下的工作可以全部交由系统设备完成。
本系统不仅仅实现家庭用户对灌溉的基本需求,而且提升实用性与科学性的同时,降低技术成本,提高水资源的利用率;同时能够实现让每一位使用者都能很快上手,使花卉灌溉系统安装和使用更为方便。
本系统的社会效益:在绿色环保方面,可以达到节省水资源的效果;在经济方面,此行业目前还是蓝海,仍有较大的发展空间。
6 结 语
基于STM32和树莓派共同设计的智能灌溉系统,在改良传统灌溉系统基础之上,将智能化引入,加以土壤干湿度传感器进行环境监测,从而提出更智能化、更自动化、更人性化的绿植成长方案,一定程度上也避免了绿植的枯萎死亡,做到了节约水源的社会效益。经过一系列测试工作,目前设备可达到日常使用状态,同时也达到了预期设计效果。
未来的发展方向将是引入病虫害识别功能,以完善对于绿植生病问题的解决方案,同时不断更新识别算法,以提高识别效率以及准确度。
致谢:非常感谢王健老师的指导。因为是初次写论文,在写论文的期间遇到了许多困难,是他不断地给出建设性意见,不厌其烦地帮助我们修改和改进论文。王健老师严谨的治学态度、渊博的学术知识以及诲人不倦的敬业精神使我们获益颇多。