基于WiFi的智能园林管理系统设计与实现

2023-07-25 09:55魏佳敏常新峰
电子设计工程 2023年15期
关键词:土壤湿度烟雾温湿度

魏佳敏,常新峰

(平顶山学院信息工程学院,河南平顶山 467000)

面对全球范围内的环境污染、空气阴霾问题,建造城市人工绿化园林是改善自然环境的有效措施,但在园林管理方面,我国仍处于相对落后的地位,尚未形成完善的园林管理系统[1]。当前我国园林管理多以人工方式进行管理,城市园林养护和监督管理工作中的问题日益突出,传统方式已不适应园林建设发展速度。因此对智能园林管理系统的研究是十分迫切的,为提升园林管理效率,该文融合嵌入式技术、传感器技术和WiFi 通信技术,设计和开发一款基于WiFi的智能园林管理系统。

1 系统总体设计方案

该智能园林系统以STM32F103C8T6 单片机作为核心控制器,采用WiFi 通信完成远程传输[2]。该系统由采集与控制端,数据传输端以及远程监控信息端组成,分别对应于物联网三层体系架构的感知层、网络传输层以及应用管理层[3]。

采集与控制端由温湿度模块,土壤湿度模块以及烟雾模块等构成,实现不同环境数据的采集,并将数据传递给主控模块。系统选用七针的OLED 屏作为显示模块,蜂鸣器作为报警模块,及采用继电器控制水泵来实现控制模块。

数据传输端主要由ESP-8266WiFi 模块及ONENET云服务器构成。WiFi模块通过串口AT指令与单片机通讯,实现数据传输端与采集控制端的数据交互。基于EDP 协议,将主控模块整理打包的数据通过WiFi发送至ONENET 云平台。

远程监控端主要通过客户端APP 实现。一方面,数据通过云平台的储存和转发到手机APP,实现数据的可视化监控。另一方面,用户可通过手机APP 下发命令,经云服务器转发后,由硬件设备进行命令解析与响应,实现远程控制。

智能园林系统的总体框图如图1 所示。系统可完成各项环境参数的采集,实现阈值的设置及环境参数的管控、数据的远距离无线传输以及用户实时的控制操作。

图1 系统框图

2 硬件设计

系统由主控模块单片机、电源电路、数据采集电路、WiFi 通信电路以及显示电路构成。电源电路为该系统供电,显示电路用于显示各环境参数的数值和当前模式[4]。传感器数据采集电路由温湿度、烟雾浓度、土壤湿度等模块构成,用于检测对应的环境参数,获取相应的信息。WiFi 通信电路用于实现传感器部分采集的数据与云平台之间的交互。

2.1 STM32单片机

智能园林系统选用STM32F103C8T6单片机作为主控模块,其适用的温度在-40~85 ℃,适用范围较广,性能稳定。该系统选用3.3 V电压,单片机的I/O口数量适中,在进行合理的部署与设计下,可以很好地满足该系统的需求。单片机最小系统是保证单片机工作的基础,其最小系统电路图如图2所示。通过传感器模块、显示模块、通信模块连接,可实现智能监测控制[5]。

图2 STM32F103C8T6最小系统电路图

2.2 数据采集电路

数据采集电路可细分为温湿度、土壤湿度、烟雾浓度采集电路。

温湿度信息采集选用DHT11 模块,温湿度的精度及可测试的范围均可满足该系统的需求,DHT11的测温、测湿功能分别由其内部的NTC 测温元件和电阻式感湿元件来实现。它们获得温度和相对湿度的模拟量后,经内部的AD 转换器转换成数字量,由单线串行接口发送到单片机。将DATA 数据口接单片机PB11 口,另外两个引脚分别与VCC 与地进行相应的连接,为DHT11 供电。接口电路如图3所示。

图3 DHT11接口电路图

烟雾浓度采集电路选用MQ-2 烟雾传感器。在该系统中,采集该模块的模拟量输出,即选用AO 模拟电压输出端,使其与单片机的ADC1 通道5 相连,即PA5 引脚。TTL 电平输出引脚(DO 引脚)做悬空处理。由于MQ-2 中气敏材料的特点,当烟雾浓度变大时,电导率相应的变大,输出电阻的阻值也会相应的越低,从而MQ-2 模块输出的模拟信号也会随之变大,主控芯片进而通过模数转换实现数据的收集。烟雾传感器模块接口电路图如图4 所示。

图4 烟雾传感器接口电路图

该系统中采用YL-69 型土壤湿度传感器来进行土壤湿度的检测,其原理是将土壤作为一个可变电阻。利用两个插片连接这个可变电阻,当土壤湿度大时,该电阻值会减小,反之,电阻值会变大。对应湿润度的标定,选用输出电压的模式,通过接入单片机将模拟量输入,进而转换成相应的数值。将传感器AO 引脚其与单片机PA4 相连,进行模数转换,并根据一定的算法得出当前的土壤湿度。其接口电路原理图如图5 所示。

图5 土壤湿度接口电路原理图

2.3 显示电路

该系统显示模块选用0.96 寸七针OLED 显示屏,由于其自发光的特点,不再添加背光。其显示区域为128×64 的点阵,具备小巧轻便、显示效果清晰、耗电较低、对比度高的特点[6]。模块共有七个管脚,采用SPI 方式驱动OLED。硬件设置上1-7 脚分别接单片机的PB12、PB14、PA8、PB15、PB13、电源和GND[7]。接口电路原理图如图6 所示。该部分用来显示各数据参数,以及手动/自动模式的状态。

图6 OLED显示屏接口电路图

2.4 WiFi通信电路

远程数据监控终端与数据传输端进行交互时,起关键作用的就是无线通信模块部分。该系统用ESP8266WiFi 模块与ONTENET 平台进行通信。且其价格低、稳定性高、串口速率可达4 Mbps。ESP8266WiFi 模块可支持高性能的无线SOC,可通过AT 指令快速上手,并且支持STA、AP 以及AP 和STA 共存的三种工作模式。

该设计中,从以上的工作模式中选择STA 模式作为WiFi 模块的工作模式,完成手机与通信模块之间的数据通信。通信模块与单片机之间通过串口来相互通信,单片机会将采集到的各种环境数据进行打包,并用串口传输的方式上传到WiFi 模块[8]。数据由WiFi 模块根据EDP 协议将环境数据转成相应的格式发送到云平台,消息类型选择SaveData 类型,消息子类型采用JSON 格式串[8]。通信模块的RX、TX 口分别接单片机的PA3(TXD)口和PA2(RXD)口,WiFi模块电路接口电路图如图7 所示。

图7 ESP8266电路原理图

3 软件设计

3.1 系统终端程序设计

软件设计的主要任务:STM32 单片机使用单总线获取DHT11 模块采集到的温湿度大小,通过DMA双ADC 接口来连接烟雾浓度模块、土壤湿度模块,在采集到传感器的模拟量后,通过算法得到烟雾浓度和土壤湿度的值。当烟雾浓度超标时,驱动蜂鸣器进行报警。使用USART2 串口进行单片机与WiFi模块的通信,然后将采集到的环境数据上传到ONENET 物联网云平台上,云平台下发手机APP,从而进行数据的可视化显示,同时可以在APP 界面进行一些控制命令的下发,如管理系统的模式设置及水泵的运行[9]。主程序流程示意图如图8 所示。

图8 主程序流程示意图

软件部分总体工作流程如下:

1)初始化系统及各个模块的设置:系统时钟的初始化、串口USART1 的初始化、定时器TIM2 及TIM3 初始化以及OLED 显示屏、DHT11、ADC、土壤湿度与烟雾模块的初始化[10]。

2)WiFi 通信模块初始化:WiFi 模块I/O 初始化及复位、将ESP8266 模块的命令收发模式设置为STA、通过STM32 发送相关的AT 指令、控制WiFi 通信模块连接上路由器[11]。

3)接入云平台:若连接成功,就将单片机采集到的环境数据每2~3 s 一次通过WiFi 模块发送到ONENET 云服务器,并更新数据到OLED 显示屏上。

4)手机端APP 可以控制系统的运行模式,在手动模式下,可通过APP 下达水泵的开启与关闭命令,执行相应的动作。在自动模式下,系统根据设置的土壤湿度范围进行自动调整,当土壤湿度小于20%RH 时,立刻打开水泵浇水的,在土壤湿度大于35%RH 时,进行关闭水泵的操作。

3.2 温湿度模块子程序

首先,进行DHT11 的初始化,配置PA11 引脚的模式,将其配置为推挽输出模式,而后根据模块的时序图进行相应的配置。由于总线空闲状态为高电平,所以将PA11 引脚拉高。接着进行DHT11 的复位操作,设置DHT11 的I/O 口为输出模式,配置为拉低至少18 ms,接着再拉高20~40 μs,在这段时间内等待DHT11 的回应,这时需要改变I/O 口为输入模式,等待DHT 传输的低电平。若等待100 μs 仍未拉低则返回1 表示错误,未检测到DHT11 的存在,若检测到低电平后在检测到高电平则返回0,表示DHT11存在。

当检测到DHT11 后,则需要读取数据。首先,编写DHT11_Read_Bit()函数来读取一个字节,即检测到DHT11 的低电平后,延时40 μs,若仍为高,则读取一位数据为1,反之则为0。编写函数DHT11_Read_Byte()利用循环左移八位来读取一字节的数据。DHT11 模块传输一次完整的数据为40 bit,数据格式分为五部分:湿度整数及小数数据、温度整数及小数数据、校验和,每部分占8 bit 顺序传输,当数据传送正确时校验和结果等于前四部分相加。只获取整数部分作为测得的温度与湿度值。温湿度模块子程序流程图如图9(a)所示。

图9 子程序流程图

3.3 土壤湿度模块、烟雾模块子程序

首先,进行对AD 端口的初始化,配置单片机的PA4 和PA5 引脚为输入模式,而后配置ADC 通道4和通道5 初始化,定义土壤传感器为ADC 通道4,定义烟雾浓度传感器为ADC 通道5,使能指定的ADC1的软件转换启动功能[12]。等待转换结束后,循环获取五次ADC 规则组的转换结果,即循环获取五次采集的值,再取平均值,以使结果更加准确。由于单片机ADC 为12 位,所以测出值为0~4 096,将值缩小40.96 倍,使结果取值范围为0~100,由于ADC 获取数值与需要的值相反,因此需用100 减去得到的值。土壤湿度模块子程序流程图如图9(b)所示,烟雾模块子程序流程图如图9(c)所示。

3.4 OLED显示模块子程序

首先,进行OLED 屏幕的初始化,设置PB12、PB14、PA8、PB15、PB13 端口为推挽输出模式,复位SSD1306,驱动IC 初始化代码,清零显存,开始显示[13]。接着设置命令口的地址,判断读状态字忙时,进行写命令寄存器,等待初始化完成后,设置数据口的地址,再次判断读状态字状态,读状态忙时,写显示数据,并将取模软件取出的数据写入。模块子程序流程图如图9(d)所示。

3.5 系统应用设计

系统应用程序主要包括Web 程序、手机APP 程序两个部分组成。APP 和系统终端之间的数据交互是通过ONENET 平台来实现。在该设计中采用EDP协议接入,EDP 是ONENET 平台特有的传输协议。该协议基于TCP 进行传输,具有较强的功能,可以实现数据的上传、下发及转发功能,接收数据时支持七种格式,实现起来也较为简单。

系统内置传感器采集到的温度、湿度以及烟雾等各类数据,借助STM32 嵌入式平台的WiFi 功能上传云平台[14]。ONENET 平台可以实时接收来自系统终端的数据,并对数据进行分析、监测、存储等,也可以将接收的数据实时同步到手机APP 端,用户通过APP 可以实时的查看植物的生长情况,方便用户进行远程监控。ONENET 也可以接收来自APP 的控制命令数据,通过ONENET 云平台进行命令的转发,随后下发至硬件部分进行命令的解析,实现远程的操控[15]。在平台的应用设计界面,针对不同的数据流添加不同的图标来进行表示,同时也可以添加相应的控件进行命令的下发,如图10所示。

图10 应用开发界面

在应用区设计了由基础元素和控制元素构成的组建库,基本元素包含了对植物生长情况的数据统计,如温度、湿度、土壤湿度以及烟雾浓度的仪表盘。控制元素主要包括了开关功能按钮,实现对园林系统模式的远程控制[16]。

4 系统测试

1)当系统上电后,各模块进行初始化,OLED显示屏显示出当前的温度为25 ℃,相对湿度为30%RH,土壤湿度显示66%RH,模式显示为自动模式,DHT11模块、土壤湿度模块功能正常运行,能够正确地获取当前的环境数据。系统实现了温度、湿度、土壤湿度的实时监测功能。而烟雾显示为1 000 ppm,这是由于烟雾模块的初始化,其数值先达到最大值,再慢慢降下来,所以起初蜂鸣器将进行报警,等待片刻,当烟雾浓度小于750 ppm 时,停止报警。

2)测试自动模式,当土壤湿度传感器浸没在水中时,OLED 显示土壤湿度为53% RH。将土壤湿度模块拿出水面后,土壤湿度降为0,水泵开始工作,再将土壤湿度放入水中,土壤湿度为72% RH,水泵停止工作。根据上述测试,自动模式正常工作,系统实现了智能灌溉。

3)测试烟雾超标报警,用火机制造烟雾,此时烟雾浓度显示为1 000 ppm,蜂鸣器进行报警,随后等烟雾值小于750 ppm 时停止报警。

4)接着用手机开热点,使与WiFi 模块进行连接,设置手机热点名称与密码,保持与代码相一致,打开手机APP,可观察到接收到来自ESP8286 的数据显示在屏幕上。将接收到的环境数据与OLED 显示的环境数据作对比可知,系统的通信功能测试正常。在APP 上将自动模式切换到手动模式,OLED 显示屏模式显示同样由自动变为手动模式。在手动模式下,通过APP 开关控制水泵为开启状态,水泵执行相应操作,系统实现了WiFi通信功能。

按照该文的功能需求,开发了系统硬件部分,微处理器能够稳定运行,能够顺利采集温湿度和烟雾数据,并在显示屏上显示当前数据,同时能够将数据通过无线发送至服务端。当采集的数据出现异常时,能够及时按照目标自动实时控制水泵浇水,保证土壤湿度在设定的范围内。

5 结论

该文设计了一款基于WiFi 通信技术的智能园林管理系统。该系统主要实现对植物生长环境中温湿度、土壤湿度、烟雾浓度等参数自动化采集与传输,借助ONENET 云平台与WiFi 通信技术的结合,实现远程对数据的可视化分析及管理,使用户能够随时随地进行系统访问观测数据,方便及时管理。今后可与人工智能、大数据、云计算等技术进一步结合,打造真正的智慧化智能园林体系。

猜你喜欢
土壤湿度烟雾温湿度
温湿度控制器在回收砂冷却系统中的应用
薄如蝉翼轻若烟雾
土壤湿度传感器在园林绿化灌溉上的应用初探
影视剧“烟雾缭绕”就该取消评优
基于DSP的多路温湿度监测系统
基于51单片机控制花盆土壤湿度
基于温湿度控制的天气预测装置
咸阳锁紧烟雾与尘土
蒸发冷却温湿度独立控制空调系统的应用
四川盆地土壤湿度时空分布及影响因子分析