- 设计内容的需求分析和可行性分析
1、需求分析
智能车库系统的设计旨在满足以下需求:
- 实现车库门的自动化管理,基于车辆检测进行升降控制。
- 提供实时的环境监测功能,包括温度、湿度的采集与展示。
- 支持通过网页远程控制LED灯、切换模式(自动/手动)、调整舵机角度等功能。
- 具备超温报警功能,当环境温度超过阈值时触发警示。
- 系统操作简单、实时性高,适应车库环境的低成本部署。
2、可行性分析
- 硬件可行性:ESP32具有高性能、低功耗、内置Wi-Fi模块,能够满足系统对实时处理和远程通信的需求;DHT11、舵机和超声波传感器等外围模块均为成熟的硬件产品,具备高可靠性和易用性。
- 软件可行性:ESP32支持Arduino编程环境,便于开发;Web服务器基于HTTP协议,使用简单;模块化编程设计提高了系统的扩展性和可维护性。
- 经济可行性:所使用的组件价格低廉,整体设计成本可控,适合广泛推广。
二、设计的创新点和重难点
- 创新点
- 使用网页控制界面与硬件相结合,支持远程实时操作。
- 将超声波测距与舵机结合,模拟停车场栏杆的功能,具备自动化逻辑控制。
- 集成环境监测与报警功能,温湿度信息可视化,提供用户友好的显示界面如图一、图二所示。
图 1 网页首页
图 2 切换模式后的页面
2、重难点
- 舵机与超声波传感器的联动:需要精确调试舵机的PWM信号,以确保车库门动作与测距数据的实时性和稳定性。
- Web服务器实现:要求在资源受限的ESP32上实现高效的HTTP响应逻辑,支持多种操作的同时保证系统的实时响应。
- 硬件抗干扰设计:需要在复杂的车库环境中确保传感器测量的精确性和网络通信的稳定性
三、系统的总体设计
本系统以ESP32为核心,设计了一套集环境监测、设备控制和安全功能于一体的车库控制系统。
系统通过Wi-Fi模块实现网络连接,并基于ESP32内置的Web服务器提供网页控制功能。用户可以远程操作网页界面,对系统进行多种控制,包括开关LED灯、切换自动/手动模式,以及控制舵机角度。舵机模拟车库门,可根据超声波传感器检测的距离进行自动升降,在7厘米以内升起,超过20厘米恢复初始状态,增强了安全性与交互性。
DHT11传感器用于采集实时的温湿度数据,数据通过OLED显示屏呈现,并更新到网页,方便用户随时掌握环境状态。当环境温度超过设定阈值(如30℃),系统会点亮LED灯进行超温警示。超声波传感器提供距离检测功能,进一步完善了系统的应用场景。
功能模块包括舵机、DHT11传感器、超声波传感器、LED灯和OLED显示屏,通过ESP32统一控制如表1所示。
表 1 功能模块
- 系统软件设计
流程图如表2:
表 2流程图
五、各子模块的设计与实现
智能车库系统设计了6个子模块,分别是舵机、DHT11传感器、超声波传感器、LED灯、OLED显示屏和Wi-Fi 和网页控制模块。下面将就各个子模块的设计展开论述。
- 舵机模块的设计与实现
1)测距子模块实现的功能
负责模拟停车场栏杆的升降动作。结合超声波传感器反馈的距离数据,在自动模式下实现栏杆的自动升降;在手动模式下,可通过网页接口控制舵机的角度。
2)该模块用到的主要器件的性能参数
SG90舵机
3)器件的物理连接如表3所示
模块名称 |
主要器件 |
连接的GPIO引脚 |
连接说明 |
舵机模块 |
舵机(Servo) |
GPIO17 |
舵机的信号引脚连接到GPI017。 |
表 3 舵机模块连接
4)主要的控制代码如下:
以下程序代码主要实现舵机功能:
int calculatePWM(int degree) {
const float deadZone = 6.4;
const float max = 32;
return (int)(((max - deadZone) / 180) * degree + deadZone);
}
// 控制舵机升降
if (distance < 7) {
ledcWrite(channel, calculatePWM(180)); // 升起栏杆
} else if (distance > 20) {
ledcWrite(channel, calculatePWM(90)); // 恢复初始位置
}
- DHT11模块的设计与实现
1)DHT11模块实现的功能
用于实时采集环境的温湿度数据,通过OLED显示屏展示,并在网页中进行更新。如果温度超过设定阈值(如30°C),触发LED警示灯。
2)该模块用到的主要器件的性能参数
DHT11温湿度传感器。