基于Arduino+Blinker 云平台的物联网大棚监控系统设计

2023-12-29 02:54李景景代志豪
信息记录材料 2023年11期
关键词:环境参数蜂鸣器温湿度

张 莹,李景景,代志豪

(郑州工业应用技术学院信息工程学院 河南 郑州 450000)

0 引言

随着科学技术的不断进步,物联网技术正迅速崛起,为各行各业生产提供了新的可能性和机遇,实现了从实时数据收集到生产过程智能化控制的跨越式发展[1]。 本设计是基于Arduino+Blinker 云平台的物联网大棚监控系统,能够实现大棚内环境数据的采集与整合并且上传到云端的功能,设计内容主要是以ESP32-WROVER 模块为主控,进行组网和控制,采用Blinker 物联网平台进行数据的接收和存储,实现大棚环境参数的采集上传、手机APP 远程控制、远程监控的功能。 环境参数的采集主要包括大棚内空气温湿度、土壤温湿度、光照强度、CO2浓度。 使用ESP32-CAM 进行数据的在线传输,用户可在手机APP 上实时查看[2-3]。 本设计具有简单可靠、开发周期短、功能强大等特点,解决了小规模农户对大棚的使用需求。

1 系统总体设计

物联网大棚设计以乐鑫公司出品的ESP32-WROVER物联网最小系统为基础,采用光照强度传感器模块、CO2传感器模块、实时监控模块、环境温湿度模块、土壤温湿度模块、光照强度模块等作为大棚环境参数检测模块,采用四路继电器、OLED 显示模块、蜂鸣器模块作为输出控制显示模块。 电源模块采用12 V 主电源分别转5 V、3.3 V向各个模块进行供电。 本设计将各模块采集的大棚环境温湿度、土壤温湿度、CO2浓度、光照强度等数据打包,通过MQTT 物联网协议上传到Blinker 物联网云端,同时使用点灯科技的手机APP,根据用户需求配置理想的UI 界面,通过独立模块ESP32-CAM 实时查看大棚环境参数信息,实现远程控制。 系统总体结构图如图1 所示。

2 硬件设计

2.1 主控模块

目前在市场上比较传统的MCU 微控制芯片有国产宏晶公司出品的STC51 系列、意法半导体公司的STM32 系列、TI 公司出品的MSP40 系列、飞思卡尔公司的MC9S12,在传统的微控制领域已经很成熟,但在物联网方面的开发比较繁琐,需要搭载其他物联网模块实现组网功能,开发过程较麻烦,产品的成本较高,对开发者技术水平要求较高[4]。 本设计实现了大棚内环境数据到云端的收发,有较多的IO 口需求,对数据传输稳定性以及处理能力要求较高,故采用ESP32-WROVER 作为物联网最小系统,因其具有出色的稳定性、节能特性和数据传输等功能,既可以单独执行应用程序,也可以与其他MCU 相连,还支持SPI/SDIO、I2C/UART 接口,提供WiFi 服务。

2.2 温湿度检测模块

大棚内温湿度参数的采集使用价格便宜、工作性能稳定的DHT11 温湿度模块。 DHT11 传感器仅仅需要一个I/O口就能够使用极其简单的单总线协议与单片机之间进行通信。 40 位二进制的数据通过通信引脚一次性传输给主控模块,在40 位数据中有32 位是环境数据,有8 位数据用于检测环境数据的有效性,将32 位数据以8 位相加的方式,判断是否等于校验位,验证数据是否有误。 在5 V 电源电压下,DHT11 工作时功耗低,工作平均最大电流为0.5 mA。DHT11 的引脚从上至下分别是VCC、IO、NULL、GND,其中VCC 连接3.3 V 电压,IO 口不需其他冗余功能,可随时更改输入输出模式,DATA 引脚连接单片机IO32 口,NULL 引脚不需要连接,GND 连接电源的负极。

2.3 CO2 检测模块

SGP30 模块用于实现大棚内CO2浓度检测。 SGP30是一款单一芯片,内集成4 个气体传感元件,具有完全校准的空气质量输出信号,主要用于甲醛的检测和二氧化碳的检测,可以输出CO2浓度等数据,以此判断空气质量。SGP30 采用微机电系统制造工艺(micro-electro-mechanical systems, MEMS)技术来检测金属氧化物(MOx)纳米颗粒的温度。 当MOx表面的氧原子和其他元素结合时,会产生一种特殊的化学反应,通过该反应来检测MOx表面的温度。 当还原性气体存在时,会使气敏材料的表层氧含量显著下降,从而影响其电阻或电导率,利用ASIC 数字高程模拟技术来实时监控、处理和传输这些数据,从而得知待测气体含量[5]。

CO2浓度检测模块通过集成电路总线(inter-integrated circuit, IIC)通信协议与主控模块进行通信,主控模块接受采集的16 位数据格式的CO2浓度数据,经过主控模块对数据的整合最终输出精确度为两位的浓度值。 穿行时钟SCL 引脚接ESP32-WROVER 模块的IO14,串行地址和数据输入引脚SDA 接主控模块的IO13,GND 和VCC 引脚分别接系统供电网络的3.3 V 电源和GND。

2.4 显示模块

显示模块采用型号为SH1106 的1.3 寸OLED 屏幕,可呈现128×64 个像素,采用IIC 通信方式。 OLED 具备许多优势,无须像传统的LCD 屏幕那样需要背光层和控制输入输出的液晶层,而是通过内置的无数个微型LED 灯来实现自动发光,其外观更加精致,而且具备更好的分辨率、更强的亮度和更小的重量。

模块中SDA 连接主控模块的IO21 引脚,用于数据和命令的收发,SCL 连接主控模块的IO22,用于同步时钟的接收。 模块的程序开发使用GitHub 平台开源的u8g2 集成库,可以调用u8g2 的中文字库来显示汉字,并且可以设置字体的样式,在系统中主要显示温度、湿度、光照强度和CO2浓度等信息。

2.5 光照强度检测模块

光照强度采用LM393 比较器,将大棚内光照强度模拟量转换成数字量,原理简单,占用主控模块IO 接口资源较少。光照强度模块同土壤湿度模块的工作方式相似,将土壤湿度的模拟量转换成数字量,经过AD 采集转换成确切值。

通过ESP32 主控模块的ADC 检测功能,采集光敏电阻两端的电压。 光敏电阻的特性是对光线十分敏感,当光照强度发生变化时,光敏电阻的阻值会发生变化,随之光敏电阻两端的电压也会发生变化,即随着光照强度的升高,电阻值迅速降低。

2.6 继电器模块

采用型号为SRA-05VDC-CL 的四路光耦隔离性继电器模块,使用5 V 工作电压,具有体积小、PCB 焊接方便、10 A/20 A 多种负载选择、环境温度可满足-40 ℃/+85 ℃等特点。 其中二极管为瞬态抑制性二极管,型号为SMAJ28,反向截止电压为28 V,击穿电压为31 V,当继电器状态进行切换时,继电器内部的储能器件会对三极管放电,二极管将继电器储存的能量对地泄放,用于保护三极管,以保证整体电路性能安全稳定。

2.7 蜂鸣器模块

蜂鸣器模块采用无源蜂鸣器,低电平触发方式。 主要由一个三极管和一个无源蜂鸣器构成,电路结构简单,性能稳定。 在系统中主控模块通过IO18 口向模块输入一定频率PWM 波,使蜂鸣器发出响声。

2.8 按键模块

按键模块用于OLED 界面的切换和工作模式的设置。电路采用3.3 V 供电,具有按键的硬件消抖功能,当按键按下IO36 被拉低,主控芯片会检测到低电平。

2.9 电源模块

DC 电源插座模块是系统供电电源的前级电路,具有过流保护、防反接保护和滤波的功能。 过流保护功能通过电阻丝F1 实现,额定电压为35 V,封装采用1206贴片电阻丝。 电路防反接功能通过瞬态抑制性二极管SMAJ28 实现,当电路反接时直接对电源地导通,用于保护后级的电路,SMAJ28 的反向截止电压为28 V,击穿电压为31 V。

其中5 V 电源主要用于继电器、ESP32-CAM 的供电电路。 将LM2596 S 芯片作为12 V 转5 V 模块电路的电源管理芯片。 3.3 V 电源主要用于OLED 模块、温湿度模块、蜂鸣器模块、SGP30 模块、光照强度模块,由于12 V 转5 V 的模块电路不易直接转换成3.3 V,存在较大的误差,故采用5 V 转3.3 V 的辅助电源模块,将AMS1117-3.3作为电源芯片,具有优异功能的三端稳压器,其中PNP 驱动的NPN 管可以有效控制电流,从而提供更好的电源供应。 AMS1117 的输入与输出均配备了一个高效的滤波器,从而提供较高的精度,确保系统的可靠性。

2.10 ESP32-CAM 远程监控模块

对大棚内环境参数的远程监控采用ESP32-CAM 小尺寸摄像头模组,可作为最小系统独立工作,深度睡眠电流最低达到6 mA。 ESP-32CAM 采用DIP 封装,可直接插上底板使用,并支持多种接口,如UART/SPI/I2C/PWM/ADC/DAC 等。 该模块采用低功耗双核32 位CPU,主频高达240 MHz,内置520 KB SRAM,外置8 MB PSRAM,支持OV2640 和OV7670 摄像头,内置闪光灯,支持图片WiFi上传和TF 卡,是物联网大棚系统应用的理想解决方案[6]。

ESP-CAM 作为一个独立的网络视频传输模块,主要作用是远程监控大棚内农作物的生长环境,将环境参数通过WiFi 上传到blinker 物联网开发平台上,用户可以在手机APP 上远程查看大棚内农作物的生长环境数据。

3 软件设计

主控模块ESP32-WROVER 对采集的环境数据进行处理,根据数据及时发出指令控制继电器和蜂鸣器,将状态信息和环境信息整合上传到Blinker 云平台,实现手机APP 的显示与控制。 软件部分设计采用远程手动模式和自动模式两种工作模式,通过按键可以切换模式。 远程手动模式通过手机APP 界面操作按键UI 组件控制继电器的开合。 自动模式由系统自动检测环境参数的数值,当数值超过设置的阈值范围时,继电器吸合,蜂鸣器自动报警,用户可通过APP 设置阈值参数的大小。 程序整体设计流程如图2 所示。

图2 程序整体设计流程

3.1 Blinker 接口设计

系统与APP 建立连接的程序设计过程是调用Blinker-library 库,用户在例程中对应代码位置填入WiFi名、WiFi 密码、设备密钥就可以完成连接Blinker 云平台的基本配置。 系统与APP 建立连接的流程如图3 所示。

图3 建立连接流程

3.2 数据上传接口设计

系统数据上传接口首先声明一个数据上传组件函数和数据上传组件名,组件函数在系统初始化中运行,将传感器采集到的数据与组件名进行绑定,然后声明一个“心跳包”的回调函数,并且在初始化程序中调用,Blinker 官方的“心跳包”函数上传数据的速率为每30s 更新一次,上传的数据格式为“组件名:数据\n”,返回“mqtting”,用户在手机APP 端自定义组件,将组件名与程序中的数据组件名对应,实现数据从设备端到APP 的上传。 系统数据上传流程如图4 所示。

图4 数据上传流程图

3.3 APP 数据下发接口设计

APP 数据下发接口首先声明数据下发组件函数和数据下发组件名,组件函数在初始化程序中调用,并且注册对应数据下发组件的回调函数,当手机APP 向设备发送数据时进入回调函数,然后执行回调函数的程序,实现数据下发的目的。 APP 数据下发接口程序流程如图5 所示。

图5 APP 数据下发接口程序流程

4 系统调试

系统上电后进行联网初始化、Blinker 建立连接初始化。 联网成功则串口打印WiFiConnected 字样显示联网成功,来获取设备唯一的IP 地址,成功建立MQTT 连接。当串口打印Connecting to MQTT 说明已经连接成功,可以进行数据通信。 串口初始化信息如图6 所示,经过串口的测试,数据显示组件每30s 上传一次数据,上传的数据格式为Json 格式,设备上传的传感器数据与设备OLED 显示的数据一致,当手机APP 按键组件按下,串口打印“ON”或“OFF”,阈值设置串口打印对应的阈值,实测阈值和打印阈值保持一致,Blinker APP 调试界面如图7 所示。

图6 串口初始化信息

图7 Blinker APP 调试界面

5 结语

物联网大棚系统设计了自动模式和手动模式两种工作状态,以ESP32-WROVER 模块为主控,实现大棚内环境数据的采集上传、远程监测与控制的功能,ESP32_CAM进行视频信息的在线传输,用户通过使用Blinker 物联网开发平台实现环境信息的上传和手机APP 的远程操作,能够实现环境参数的采集上传、手机APP 远程控制、远程监控的功能,自动模式下用户可以用根据大棚内农作物生长环境自定义环境参数阈值,能够帮助用户更好实现大棚物联网的监测与管理,具有实际应用价值。

猜你喜欢
环境参数蜂鸣器温湿度
电动自行车产品车速提示音检测现状和整改技术研究(2)
温湿度控制器在回收砂冷却系统中的应用
基于云平台的智能家居环境参数协同监控系统设计
掌控板制作简易钢琴
列车动力学模型时变环境参数自适应辨识
基于DSP的多路温湿度监测系统
一种食用菌大棚环境参数测控系统设计
单片机驱动蜂鸣器的程序设计
基于温湿度控制的天气预测装置
基于小型固定翼移动平台的区域大气环境参数采集系统设计