若该文为原创文章,转载请注明原文出处。

一、引言

(一)研究背景及意义

随着城市化进程加快和家庭汽车保有量持续增长,“停车难、管理乱、体验差”成为困扰车主的一大痛点。传统车库管理依赖物理钥匙和人工判断,存在便捷性低、安全性不足、无法远程管理等弊端。智能车库系统通过融合射频识别(RFID)、超声波探测、物联网(IoT)和环境传感技术,旨在实现车库管理的无人化、自动化和智能化。本项目基于STM32单片机,构建一个集智能门禁车位监测环境调控远程控制于一体的综合性解决方案,极大提升车辆存取的便捷性、车库空间利用率和安防水平,是现代智慧家庭和物业管理的的重要组成部分。

(二)国内外研究现状

目前,智能车库技术正从单一功能向集成化、平台化方向发展。独立的车牌识别系统、RFID门禁系统已有应用,但多系统间相互独立,形成“数据孤岛”。将身份识别车位检测环境感知设备控制通过一个低成本、高可靠性的主控进行深度融合,并接入统一的云平台实现远程监控,是当前技术应用的前沿。本设计不仅实现了基本功能,更通过传感器联动创造了智能、舒适、安全的车库环境,具有显著的创新性和实用价值。

二、系统总体设计

(一)系统架构

本系统采用“感知-决策-执行-云控”的四层架构。

  • 感知层:由RC522(身份识别)、HC-SR04(车位检测)、DHT11(环境温湿度)、BH1750(环境光照)传感器组成,全方位采集车库状态信息。

  • 决策层:STM32主控制器作为系统大脑,处理所有传感器数据,执行核心逻辑判断(如权限验证、自动照明),并生成控制指令。

  • 执行层:包括继电器(控制门锁/门电机、通风设备、照明灯),负责完成具体的物理操作。

  • 云控层:基于ESP8266 Wi-Fi模块与云平台连接,实现手机App远程状态监控和设备控制,打破地域限制。

(二)功能模块划分

  1. 智能门禁模块:RC522 RFID读卡器 + 继电器(门锁)。

  2. 车位监测模块:HC-SR04超声波传感器。

  3. 环境监测与调控模块:DHT11 + BH1750 + 继电器(通风设备、照明灯)。

  4. 人机交互模块:OLED显示屏。

  5. 数据通信模块:ESP8266 Wi-Fi模块。

  6. 主控与电源模块:STM32单片机 + 电源电路。

三、硬件设计与实现

(一)系统硬件框架图

  • STM32F103C8T6 (主控核心)

  • RC522 RFID模块 (SPI接口):SDA接 PA4, SCK接 PA5, MOSI接 PA7, MISO接 PA6, RST接 PC0

  • HC-SR04超声波模块:Trig接 PA1, Echo接 PA0

  • DHT11温湿度传感器:数据线接 PC1

  • BH1750光照传感器 (I2C接口):SCL接 PB6, SDA接 PB7

  • OLED (SSD1306) (I2C接口):与BH1750共享I2C总线,SCL接 PB6, SDA接 PB7

  • 继电器模块 x 3:接 PC13(车库门锁), PC14(通风设备), PC15(照明灯)

  • ESP-01S (ESP8266):接USART2 PA2(TX), PA3(RX)

(二)主控模块选型及介绍

主控芯片选用STM32F103C8T6。其资源丰富且成本低廉:

  • SPI接口:用于驱动RC522 RFID模块。

  • 多定时器/GPIO:用于产生超声波模块所需的脉冲和测量回波时间,以及控制继电器。

  • I2C接口:可同时挂载BH1750和OLED显示屏。

  • UART接口:用于与Wi-Fi模块通信。
    其性能完全满足多任务处理和外设控制的需求。

(三)传感器模块选型及电路设计

  1. RC522 RFID读卡器:13.56MHz频率,用于识别授权的IC卡(M1卡)。安装于车库门外侧,方便车主刷卡。SPI通信方式稳定可靠。

  2. HC-SR04超声波传感器:用于检测车库内是否停有车辆。安装于车库内部正中央或对准车位,通过测量传感器到障碍物(车辆)的距离来判断车位状态(例如,距离 < 100cm 有车,距离 > 200cm 无车)。

  3. DHT11温湿度传感器:监测车库内部环境。高湿环境易导致车辆和设备受潮锈蚀。

  4. BH1750光照传感器:数字型环境光强度传感器,通过I2C直接输出光照度值(lux),比光敏电阻精度更高、更稳定。用于实现照明灯的自动控制。

(四)通信模块选型及配置

选用ESP-01S模块。配置其连接家庭Wi-Fi,并通过MQTT协议与云平台(如Home Assistant、阿里云IoT、涂鸦智能)通信。MQTT的轻量级和发布/订阅模式非常适合本系统的状态上报和远程指令接收。

(五)执行模块选型及驱动电路

(核心:强电控制,安全第一!)

  1. 继电器模块:用于控制各类220VAC设备。

    • 车库门锁/电机:控制车库门升降电机或电插锁的电源。

    • 通风设备:控制排风扇或除湿机的电源。

    • 照明灯:控制车库顶棚LED灯的电源。

    • 重要警告:继电器输出端连接的均为220V强电,必须与STM32的3.3V弱电电路物理隔离,接线需规范并使用绝缘保护。

四、软件设计与实现

(一)开发环境搭建

  • IDE: Keil uVision5

  • : STM32HAL库 + RC522驱动 + BH1750驱动

  • 协议: cJSON库(用于MQTT数据打包)

(二)系统软件流程图

(三)系统初始化(代码片段)

// main.c
#include "rc522.h"
#include "hc-sr04.h"
#include "dht11.h"
#include "bh1750.h"
#include "ssd1306.h"
#include "esp8266_mqtt.h"

SPI_HandleTypeDef hspi1;
I2C_HandleTypeDef hi2c1;
UART_HandleTypeDef huart2; // For ESP8266

int main(void) {
  HAL_Init();
  SystemClock_Config();
  MX_GPIO_Init();
  MX_SPI1_Init();
  MX_I2C1_Init();
  MX_USART2_UART_Init();

  OLED_Init();
  BH1750_Init();
  RC522_Init();
  DHT11_Init();
  ESP8266_MQTT_Init();

  while (1) {
      Main_Task();
      HAL_Delay(1000); // 主循环周期1秒
  }
}

(四)传感器数据采集与处理

void Sensor_ReadTask(void) {
    // 1. 读取超声波测距值,判断车位状态
    float distance = ULTRASONIC_GetDistance();
    is_car_present = (distance < CAR_PRESENCE_THRESHOLD) ? 1 : 0;

    // 2. 读取温湿度
    DHT11_Read(&temperature, &humidity);

    // 3. 读取光照强度
    light_level = BH1750_ReadLightLevel();
}

// 超声波测距函数
float ULTRASONIC_GetDistance(void) {
    HAL_GPIO_WritePin(TRIG_GPIO_Port, TRIG_Pin, GPIO_PIN_SET);
    HAL_Delay(1); // 持续10us以上高电平
    HAL_GPIO_WritePin(TRIG_GPIO_Port, TRIG_Pin, GPIO_PIN_RESET);

    // 等待回波引脚变高并计时
    while (HAL_GPIO_ReadPin(ECHO_GPIO_Port, ECHO_Pin) == GPIO_PIN_RESET);
    uint32_t start_time = HAL_GetTick();
    while (HAL_GPIO_ReadPin(ECHO_GPIO_Port, ECHO_Pin) == GPIO_PIN_SET);
    uint32_t end_time = HAL_GetTick();

    float time_elapsed = (end_time - start_time) * 1.0; // 单位: ms
    // 计算距离 (声音速度 340m/s, 除以2因为是往返距离)
    float distance_cm = (time_elapsed * 34000.0) / 2.0 / 1000.0;
    return distance_cm;
}

(五)控制功能实现

void Control_Task(void) {
    // 1. 环境智能联动 (自动模式)
    // 自动照明: 光照暗且有人/车活动(或门打开)时开灯
    if (light_level < LIGHT_THRESHOLD_LOW && (is_door_open || is_car_present)) {
        HAL_GPIO_WritePin(LIGHT_RELAY_GPIO_Port, LIGHT_RELAY_Pin, GPIO_PIN_SET);
    } else if (light_level > LIGHT_THRESHOLD_HIGH || !(is_door_open || is_car_present)) {
        // 光照充足或无活动时关灯
        HAL_GPIO_WritePin(LIGHT_RELAY_GPIO_Port, LIGHT_RELAY_Pin, GPIO_PIN_RESET);
    }

    // 自动通风除湿
    if (humidity > HUMIDITY_THRESHOLD) {
        HAL_GPIO_WritePin(FAN_RELAY_GPIO_Port, FAN_RELAY_Pin, GPIO_PIN_SET);
    } else {
        HAL_GPIO_WritePin(FAN_RELAY_GPIO_Port, FAN_RELAY_Pin, GPIO_PIN_RESET);
    }

    // 2. RFID门禁控制
    uint8_t card_id[4];
    if (RC522_FindCard(card_id) == MI_OK) {
        // 将卡号转换为字符串便于比较
        char card_str[9];
        sprintf(card_str, "%02X%02X%02X%02X", card_id[0], card_id[1], card_id[2], card_id[3]);
        // 检查卡号是否在授权列表中 (列表可存储在STM32 Flash或从云端获取)
        if (IsCardAuthorized(card_str)) {
            // 执行开门操作
            HAL_GPIO_WritePin(DOOR_RELAY_GPIO_Port, DOOR_RELAY_Pin, GPIO_PIN_SET);
            HAL_Delay(500); // 维持一段时间高电平以触发开门动作
            HAL_GPIO_WritePin(DOOR_RELAY_GPIO_Port, DOOR_RELAY_Pin, GPIO_PIN_RESET);
            is_door_open = !is_door_open; // 切换门状态标志
            OLED_ShowMessage("Access Granted!");
            Buzzer_Beep(1); // 提示音
        } else {
            OLED_ShowMessage("Access Denied!");
            Buzzer_Beep(3); // 错误提示音
        }
    }
}

五、系统测试与优化

(一)测试方案

  1. 功能测试

    • 门禁测试:使用授权卡和未授权卡测试开门功能。

    • 车位检测测试:将车辆驶入/驶出车库,测试超声波传感器判断是否准确。

    • 环境联动测试:遮挡BH1750传感器模拟夜晚,测试灯是否自动打开;向DHT11哈气模拟高湿,测试风扇是否启动。

    • 远程控制测试:通过手机App测试远程开门和状态查看功能。

  2. 可靠性测试

    • 压力测试:模拟频繁刷卡开门,测试系统稳定性。

    • 网络测试:模拟Wi-Fi中断和恢复,测试系统的重连机制和数据缓存能力。

  3. 环境测试:在真实车库环境中测试,评估超声波传感器对不同车型的适应性,以及环境传感器数据的准确性。

(二)测试结果与分析

预计测试中,超声波车位检测的准确性抗干扰能力(如车库内杂物、墙壁反射)是主要挑战。RFID读卡距离和角度也需要优化以确保良好的用户体验。强电控制的稳定性和安全性是测试的重中之重。

(三)系统优化

  1. 算法优化

    • 数据滤波:对超声波测距数据进行中位值平均滤波,剔除偶然误差。

    • 防误判逻辑:连续多次检测到有车/无车才改变状态,防止因瞬间干扰导致的误判。

  2. 用户体验优化

    • 语音反馈:增加语音播报模块,在开门、关门、报警时提供语音提示。

    • LED指示灯:在车库内外增加LED状态指示灯,直观显示门状态和车位状态。

  3. 安全性强化

    • 双鉴探测:可增加一个红外热释电传感器(PIR) 与超声波传感器共同判断车位状态,形成“双鉴”探测,极大提高判断准确性,防止误报。

    • 开门超时报警:如果门开启超过设定时间(如5分钟),自动报警并通知用户。

六、结论与展望

(一)未来展望

  1. 车牌识别融合:升级为小型摄像头,集成车牌识别(LPR) 功能,实现“RFID + 车牌”双因子认证,安全性更高,并可自动为特定车辆开门。

  2. 车辆引导系统:增加LED灯带屏幕指示,引导车主将车辆停入车库最佳位置。

  3. 能源管理:与家庭光伏系统联动,在阳光充足时自动启动通风设备为车库降温;统计照明和通风能耗。

  4. AIoT赋能:在云平台端利用AI分析用户使用习惯,实现预测性控制(如下班前提前开启通风)。

如有侵权,或需要完整代码,请及时联系博主。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐