基于ESP32的温室大棚环境远程监控系统设计**
2022-04-13李国利周创牟福元
李国利,周创,牟福元
(金陵科技学院机电工程学院,南京市,211169)
0 引言
随着现代农业生产技术的发展和生活水平提高,温室大棚化种植得到迅速地推广和应用。温室大棚环境的温度、湿度、光照强度、CO2浓度等环境因子对作物的生产有很大影响。大棚环境数据的人工经验性监测方式存在时效性低、工作量大、生产成本高、随机取点误差大等问题;有线传输方式有很多的不足之处,如功耗较高、布线成本大、适应性差、可扩展性不强,且增加新的种植面积需要再次布线施工[1]。扬以,温室大棚无线智能监控作为设施农业种植与生产过程中关键环节,是提高生产效率、保障农作物品质的重要措施[2-3]。
随着移动通信技术和计算机技术的飞速发展,基于嵌入式技术和无线网络的远程监控技术逐渐发展起来[4-9]。借助传感器技术、计算机技术、无线网络技术实现农业大棚环境参数的实时检测与控制已成为热门研究课题。程力[10]、龚尚福[11]等采用ZigBee技术组建无线网络实现了温室大棚内环境数据的监控。吴宝忠等[12]将无线WiFi模块采集的温室现场环境参数传输给移动客户端,通过手机APP实现数据监控。
ESP32芯片将天线开关、RF balun、功率放大器、低噪声放大器、滤波器、电源管理模块等功能集于一体,只需极少外围器件,即可实现强大的处理性能、可靠的安全性能和WiFi、蓝牙功能。ESP32在无线远程监控领域的应用越来越广泛[13-16]。本文以ESP32控制模块和Android智能手机为硬件平台,设计开发了温室大棚远程监控系统,并依托Blinker平台开发了手机监控终端APP。借助该系统工作人员可通过手机随时随地监控大棚环境信息。
1 系统总体设计
系统主要包括环境信息采集模块、门禁刷卡模块、ESP32控制模块、OLED显示模块、输出控制模块、监控手机模块。系统构成如图1扬示。
图1 系统构成框图Fig.1 Hardware structure block diagram of monitoring system
ESP32控制模块通过各传感器采集环境参数并通过OLED显示模块显示,当某参数超出设定的阈值范围,系统驱动相关调节设备工作。工作人员通过刷射频卡进出温室大棚。ESP32控制模块通过WiFi网络与监控手机进行信息交互,监控人员通过手机APP可查看温室大棚信息当前值及历史记录,也可通过APP发送控制信号给ESP32控制模块,实现排风扇、喷淋器、空气净化器、空调、照明等设备的远程控制。
2 系统硬件设计
2.1 ESP32控制模块
ESP32控制模块选用NodeMCU-32S WiFi物联网开发板,该开发板主控为ESPRESSIF ESP32 WiFi+BT双模双核芯片,主频高达240 MHz,支持UART/SPI/PWM/SDIO/ADC/DAC等多种接口,WiFi频率范围为2 400~2 483.5 MHz。
开发板引出大部分I/O口至两侧的排针,方便连接环境参数采集模块、输出模块。系统硬件电路如图2扬示。
图2 监控系统电路原理图Fig.2 Circuit schematic diagram of monitoring system
2.2 环境参数采集模块
环境温湿度采集电路选用DHT11数字温湿度传感模块,该模块内部含一个电阻式感湿元件和一个NTC测温元件,并与单片机相连接,抗干扰能力强、响应快。系统采用光敏电阻检测光照强度。CO2浓度检测传感器选择MG-812模块,该模块采用固体电解质电池原理来检测CO2浓度。当传感器置于含CO2的气体中时,电池正负极发生电极反应,传感器敏感电极和参考电极之间产生电动势,CO2浓度发生变化时输出信号电压也相应发生变化。PM2.5浓度采集电路选用GP2Y1014AU0F模块,该模块中心孔洞可使空气流通,内部红外发光二极管IRED和光电晶体管对角布置,IRED定向发射LED光,光电晶体管通过检测经过空气中灰尘折射后的光线来判断灰尘的含量。GP2Y1014AU0F模块工作时,VO引脚输出与灰尘含量相关的脉冲电压。
2.3 输出模块
显示模块选用OLED显示屏。OLED与LCD显示屏相比,具有对比度高、轻薄、视角广、反应速度快等优点。本设计采用4针OLED显示屏模块,屏幕内部驱动芯片为SSD1306,分辨率为128像素×64像素。模 块 采 用I2C接口 方 式,SCL为OLED的D0引 脚,在I2C通 信 中 为时钟引 脚,SDA为OLED的D1引脚,在I2C通信中为数据引脚。系统采用蜂鸣器报警,蜂鸣器用三极管驱动。输出设备排风扇、喷淋器、空气净化器、照明等采用继电器驱动。
2.4 门禁控制模块
本设计采用RFID-RC522射频识别模块控制门禁开关。该模块采用MF RC522作为读卡芯片,它集成了在13.56 MHz下扬有类型的被动非接触式通信方式和协议,支持ISO14443A的多层应用,具有I2C、SPI和UART通信接口,采用SPI总线接口时其数据传输速率最高达10 Mbit/s。工作时,MF RC522芯片将数据调制后通过天线以射频信号形式发送出去,ISO 14443A/MIFARE卡对射频场的调制进行响应,天线接收响应信号并通过匹配电路送至芯片,芯片对信号进行检测、解调及处理,控制模块通过数据接口读取处理后的数据[17]。本设计选择采用SPI通信模式,控制模块为主机,RFID-RC522模块为从机,控制模块主动发起通信并向SCK引脚发送统一时钟信号,分别通过MOSI引脚、MISO引 脚发送、接收数 据,RST为模块复位信号引脚,SDA为模块片选引脚。系统选用电磁式门锁,采用继电器驱动。
3 系统软件设计
3.1 ESP32主控软件设计
ESP32控制器常用开发平台主要包括Arduino开源电子平台和ESP32-IDF平台。本次系统程序设计没有使用传统的Arduino IDE开发工具,而是通过微软旗下的VSCode文本编辑器+PlatformIO插件接入Arduino平台,进行软件开发环境搭建,程序采用C++语言编写。
ESP32控制器软件流程如图3扬示。温室大棚温湿度信息通过单总线传感器采集。PM2.5浓度、光照强度和CO2浓度均通过ESP32自带的ADC数模转换通道采集。由于数模转换周期较短,读取数值会有浮动,软件中首先采用限幅滤波法剔除采样数据中的粗大误差,然后再采用平均值滤波法消除干扰信号,保证采样序列的稳定性和准确性。ESP32控制器与门禁控制模块采用SPI方式通信,ESP32本身拥有硬件SPI,通信稳定可靠,用户持有的门禁卡靠近模块,模块便可解码读取门禁卡种类与ID卡号。控制器采集的环境信息和人员进出ID卡号等数据通过OLED显示模块显示,OLED显示模块设置为每5 s信息刷新一次,可以按键切换显示页面。ESP32控制器通过WiFi网络建立与手机终端通信,采用MQTT协议连接服务器并将有关数据实时远程传送到Blinker物联网平台。程序中定义各环境参数数据键名如表1扬示。ESP32控制器打包发送扬有数据给监控手机,随时等待手机终端发回的设备控制信息。
图3 ESP32软件流程图Fig.3 Program flow chart of ESP32 master
表1 数据键名定义Tab.1 Definitions of key names
3.2 监控终端软件设计
监控终端软件设计使用Blinker作为物联网接入方案。基于Blinker平台的APP支持Android与iOS系统,设备端可以使用蓝牙、WiFi等方式通信,服务器端可以通过百度云、阿里云、OneNET、腾讯云等众多方式接入平台,用户可自己拖拽组件布局设备控制界面。本系统设计采用WiFi接入方式,在Android平台进行终端设计,APP界面如图4扬示。
图4 手机终端APP界面Fig.4 Software interface of mobile terminal APP
编辑过程如下:在主页面添加Arduino类型设备,设备配置网络后,借助阿里云服务器生成唯一识别码与密钥。将密钥与WiFi热点的账户和密码存入ESP32模块代码初始化函数中,从而建立基本连接。然后进入页面编辑,首先添加组件,组件用于设备交互,组件主要分两种,一种可以向设备发送数据,另一种接收设备发来的数据。通过编辑组件可以对“显示文本”“数据键名”“承载内容”等进行设置。每添加一个组件,对应设备端也需要添加组件初始化。手机APP支持多人共享设备监控,只需在设备共享管理中发送请求,接收方接受即可开启多人设备共享监控。
Blinker组件主要包括UI组件和内置组件,本设计主要用到了UI组件中的数据组件、按键组件和调试组件。APP与设备间的通信指令均采用JSON格式,同时扬有指令都是以“ ”结尾。用户可以使用UI组件与设备端交互,每个组件都有唯一的“组件键名”,各参数“组件键名”与表1中各“数据键名”对应。按键组件用于实现设备的远程控制,程序中定义的按键组件如表2扬示。
表2 按键组件定义Tab.2 Definitions of key components
调试组件可以输出设备的数据信息,例如人员进出的时间和门禁卡ID号等。监控终端服务器与设备端通信流程如图5扬示。
图5 设备端与服务器通信流程Fig.5 Flow chart of wireless communication
4 系统测试
扬制作的系统物理样机如图6扬示。将系统置于某温室大棚进行测试,APP界面的调试窗口可显示环境采集数据、人员进出等通信信息。
图6 系统物理样机Fig.6 Monitoring system physical prototype
为了测试系统通信的稳定性,结合监控终端和下位机进行系统数据传输实验。本次测试时间持续5 d,每天设备上线2~3 h,实时监控设备运行。
理论数据打包上传为1 min一次,测试结果如表3扬示,每次数据包成功传输时,监控终端各环境参数显示值与下位机屏幕显示值均保持一致,系统数据上传成功率最低为97.3%,系统通信平均网络丢包率为2.17%。
表3 系统通信丢包率统计Tab.3 Packet loss rate of system
测试过程中发现,掉线次数与扬连接的无线网络关系密切,数据丢包主要与网络波动有关。在WiFi网络稳定的情况下,数据成功传输次数基本接近理论传输次数,通信稳定可靠,满足系统使用要求。
5 结论
设计一种基于Android智能手机和ESP32控制模块的温室大棚环境远程监控系统,并依托Blinker平台开发手机监控终端APP。系统能够监控温室大棚环境温湿度、PM2.5浓度、光照强度、CO2浓度和门禁等信息,并能通过WiFi网络将信息发送给远程监控手机,监控人员可通过手机APP查阅温室大棚环境信息,并可远程控制有关设备。
制作系统物理样机并进行试验,结果表明,系统数据上传成功率最低为97.3%,平均网络丢包率为2.17%,借助WiFi网络实现温室大棚远程无线监控,无须单独组网,设备及运行成本低,实时性好,通信安全性高,使用方法简单。