基于STM32和WiFi模块的智能植物养护系统设计
2022-11-11王潇枫骆邵文刘润琪杨文昌程新玥
王潇枫,骆邵文,刘润琪,杨文昌,程新玥
(武汉理工大学信息工程学院,湖北武汉,430070)
0 引言
现代通信技术发展迅速,利用互联网和自动化技术实现作物栽培智能化已成为农业发展的必然趋势。随着人们对室内植物养护的重视程度加深,相应智能化产品也随之出现,如印度的Saini S, Kumari P[1]等人通过湿度传感器与光照传感器与花盆相结合,保证了植物生长所需的水量与光照,实现了对植物的实时养护。国内也有许多智能植物养护系统的相关研究,如湖南农业大学的戴师[2]等人实现了远程监控植物的湿度并计算需水量,还可以远程浇水。在物联网的浪潮下,植物养护有着光明的前景。当前国内市场重点较多的偏向于对数据的监测而忽视了对数据的处理和分析。本设计基于国内相关研究,加入对采样数据的分析和处理,致力于改善植物生长环境以获得更健康的植株。
1 系统总体设计
本系统通过传感器监测植物种植区的温湿度与光照强度,将采集到的数据传输至单片机,所测数据通过WiFi模块实时显示在手机客户端,客户端比对传输数据和植物理想生长环境指标后为用户提供反馈建议。
具体功能实现的结构框图如图1所示,温湿度传感器模块DHT11及光照强度传感器模块BH1750以实现对植物生长环境的监控。硬件系统通过UART和IIC协议获取数据,STM32控制WiFi模块ESP8266实现数据无线传输。硬件系统将各模块数据发送至手机客户端。软件系统通过TCP协议获取传输数据,使用Android Studio设计的安卓APP可以将所得数据显示在主界面。用户可以实时监测植物生长处的温湿度与光照强度。客户端根据植物适宜的生长环境进行分析运算,提供养护建议供用户参考。
图1 系统结构框图
2 系统功能实现
本系统硬件部分通过传感器模块进行温湿度与光照数据的获取,再通过WiFi模块进行数据的传输。软件部分在Android App搭载TCP服务器,实现可靠的数据传输与显示功能,为用户监护植物生长提供便利,比对植物生长参数与理想环境参数并提供反馈意见。用户还可通过软件远程为植物补光。
如图2所示,STM32所连温湿度传感器、光照传感器、WiFi模块以及补光装置搭载在格架上,格架装配了遮阳网和防雨罩以便用户减少植株受光程度并能起到挡雨作用。
图2 系统实物展示图
2.1 系统硬件实现
2.1.1 系统硬件电路图
WiFi模块使用串口USART3完成与单片机的通讯,USART3_RX对应PB11连接ESP8266的TXD,USART3_TX对应PB10连接RXD。温湿度传感器DHT11通过GPIO口PC5向单片机传输温湿度数据。光照传感器BH1750通过IIC协议传输数据,时钟线SCL连接PB6,数据线SDA连接PB7。
2.1.2 数据无线传输功能
数据无线传输通过STM32与WiFi模块ESP8266相连实现。该模块可搭载软件应用,或利用其他应用处理器装载Wi-Fi网络功能。
图3 系统硬件电路图
ESP8266模块通过AT指令集完成配置[3]。用“AT+CWMODE=1”指令将ESP8266模块配置为station模式,用“AT+RST”指令让 WiFi模块重启,用“AT+CIPMUX”指令设定为单路连接方式,用“AT+CWJAP”指令让模块连接路由,用“AT+CIPSTART”指令建立 TCP连接,“AT+CIPMODE”与“AT+CIPSEND”指令实现WiFi模块在透传模式下发送数据[4]。
2.1.3 温湿度数据获取功能
本系统选用数字温湿度复合传感器DHT11模块测量温湿度,该温湿度传感器可输出校准后的数字信号。
DHT11的数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和,数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位[5]。
2.1.4 光照强度数据获取功能
该系统选用BH1750模块作为测量光照强度的传感器,输入光范围1-65535lx。BH1750通过IIC实现通讯,IIC通信是由时钟线(SCL)和数据线(SDA)组成。BH1750有5个引脚,其中VCC脚为电压源正极;SCL为IIC时钟线,是时钟输入引脚,其时钟信号由MCU输出;SDA为IIC数据线,为双向IO口,用于传输数据;ADDR为IIC地址线,当接不同的源时地址线对应器件地址不同,ADDR接GND时地址为0100011,ADDR接VCC时器件为1011100;GND为接地引脚。
时钟线输出方波脉冲,数据线传输“1”或者“0”数据,连续传送8次,组成一个8位的二进制数即一个字节的数据。时钟信号由STM32引脚输出,数据线实现BH1750与STM32的双向传输。STM32通过预设的器件地址和读写位判断组成字节数据。在BH1750发送应答位后STM32开始发送或接收数据[6]。
2.1.5 STM32功能
STM32系列是专为高性能要求、低成本、低功耗的嵌入式应用设计的ARM内核。具有极高的性能,丰富的外设,较低功耗以及全面的技术文档。本设计调用了STM32的外部中断、时钟、I2C总线、GPIO、TIM定时器、USART等硬件设施。
STM32F103xB增强型系列使用高性能的ARM® Cortex™-M3 32位的RISC内核,工作频率为72MHz,内置高速存储器(高达128K字节的闪存和20K字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设。所有型号的器件都包含2个12位的ADC、3个通用16位定时器和1个PWM定时器,还包含标准和先进的通信接口:多达2个I2C接口和SPI接口、3个USART接口、一个USB接口和一个CAN接口[7]。
2.2 系统软件实现
2.2.1 通信功能
TCP协议提供面向连接的可靠服务。目前的TCP/IP协议族中的主流socket类型为使用TCP协议的流套接字以及使用UDP协议的数据报套接字。
Java语言的ServerSocket 类监听客户端的连接请求,并创建Socket 实例[8]。该设计中APP 建立通信终端,等待客户端连接。TCP 连接的建立步骤如下。
①创建ServerSocket 对象,绑定并监听端口:
ServerSocket serversocket=new ServerSocket(8080);
②获取本机IP 地址供客户端建立连接:
int ipAddress=wifiInfo.getIpAddress();
③启动服务端监听线程:
serversocket_thread.start();
④建立连接后通过输出输入流执行读写:
inputstream=clicksSocket.getInputStream();
outputStream=clicksSocket.getOutputStream();
⑤关闭相关资源。
2.2.2 Android客户端功能
用户客户端APP界面开发主要是利用Android Studio[9]进行开发。在Android Studio APP中,用户界面上的所有的元素全都为View 和ViewGroup对象构成。View是使使用的用户能够与之交互的一个对象。ViewGroup则是用来存储其他View和ViewGroup对象的布局容器。
Activity是一个人机交互的程序,连接人和机器的操作,用法相当于shell,在其中写上Java代码,从而完成想要实现的功能。activity_main.xml是Android界面的显示视图,界面中所有的配置控件都能够在这里进行设计。AndroidManifest.xml是主配置文件,用来配置每个组件的访问权限。R.java是android_main.xml里控件的id号,用来在MainActivity里通过id来确定这个控件,从而做出功能处理。app:通常工程里的各个组成部分放在这个目录中,其中res文件中存放一些图片、layout、values等资源文件。
在页面设计上主要使用TextView 和EditView。在android_main.xml中为TextView设置组件id,通过id我们可以在工程代码中使用方法findViewById()获取到对应对象,然后进行相关属性的设置。
在接收信息转递中,使用Handler 进行信息传递。Handler主要用来接收子线程发送的数据, 根据发送的数据配合主线程更新UI并和UI主线程交互。用Handler发送信息,为了防止在UI主线程中处理消息导致其他处理工作被影响,因此在Handler的线程中来接收处理该消息。在Android App 搭载TCP服务器,实现可靠的数据传输与显示功能,为用户监护植物生长提供便利。
2.3 系统功能实现
2.3.1 植物养护建议功能
客户端根据对所测环境温湿度和光照数据与用户植物理想生长环境进行比对分析,向用户提出关于浇水的频率、摆放位置的选取等实用性较强的植物养护建议。
如图4所示,手机客户端可以显示植物当前生长环境的相关状态并给出该植物的生长建议,用户可根据该建议及时做出改进措.施,为植物构建良好的生长环境。
图4 app植物养护建议图
本设计选取当下市场上较为常见的部分绿植,如仙人掌、绿萝、多肉植物、文竹等等,在数据库中导入植物适宜的生长环境数值即光照强度,温湿度以及养护建议等等。
如图5所示,通过选择植物种类,客户端可以修改植物生长的适宜的光照强度和温湿度范围,并提供对应的养护建议。
2.3.2 客户端APP控制功能
当客户端APP反馈植物光照偏弱时,用户可以用APP控制补光装置的开启,补充光照。客户端通过WiFi模块远程控制STM32打开补光装置,实物图如图6所示。
3 结语
本系统实现了数据的采集与无线传输、客户端显示以及数据分析反馈等多个功能。实时监测植物的生长环境并提供养护建议,方便用户及时做出调整,确保植物处于较为健康的状态。
该系统利用较低的成本实现对植物生长环境的监控与信息反馈,不仅可以应用到室内的植物养植上,还可以应用到大棚种植中。通过对该系统进行进一步拓展就可以实现对更多种类植物的实时监督,提高植物存活率。相信在当今这个物联网时代,植物养护水平会得到进一步的发展。
图6 补光装置开启实物图