智能自动遮阳伞控制系统

绪论

传统户外遮阳伞需要人工操作,遇到突发降雨或强光时往往来不及收伞,造成伞面损伤或用户淋雨。本设计提出一种智能自动遮阳伞控制系统,将雨滴、光强、温度多源感知与步进电机驱动结合,STM32 主控根据环境条件自动控制伞面开收,并支持手动干预与OLED状态显示,能够在阳台、露台、景区摊位等场景连续工作,为户外空间提供"感知-决策-执行"完整的智能化体验。

系统方案设计

系统总体方案

系统由环境感知、单片机主控、电机驱动、人机交互、电源五部分构成。感知层包括雨滴传感器、光敏电阻和DS18B20;执行层采用ULN2003驱动步进电机实现伞面展开与收回;OLED12864 显示当前模式、光强等级与状态;3个独立按键切换模式与手动控制。

系统功能

功能描述
自动感知雨滴、光强、温度综合判定
自动收伞雨/强光/高温收伞
自动展开正常天气展开
手动模式按键精确控制
状态显示OLED 显示当前模式与传感器值
异常保护电机堵转检测+继电器切断

主要模块选型

模块方案对比本设计选择
主控STM32F103C8T6 / ArduinoSTM32F103C8T6
雨滴电容式雨滴 / 湿度计电容式雨滴开关
光强光敏电阻 / 数字照度光敏电阻分压
温度DS18B20 / 热敏电阻DS18B20
执行ULN2003+28BYJ-48ULN2003+28BYJ-48
显示OLED12864 / LCD1602OLED12864

硬件设计

主控与传感器接口

主控使用 STM32F103C8T6 的 PA0(DS18B20 单总线)、PA1(光敏电阻 ADC)、PA2(雨滴传感器 DO)、PB0~PB3(步进电机四相)。

雨滴与光强电路

雨滴传感器 AO 输出经 1kΩ 限流送到 PA1;光敏电阻与 10kΩ 分压后送 PA0,电压越大代表光照越弱。

电机驱动与保护

ULN2003 输入为 PB0~PB3,输出经限流电阻接 28BYJ-48 四相绕组;电机堵转通过监测相电流实现,过流时通过 PA4 触发的继电器切断总电源。

电源

220V 交流输入经 AC-DC 模块转换为 12V 直流,驱动电机;再经 DC-DC 转换为 5V 给 MCU 和传感器使用。

系统接线总表

序号单片机引脚外设/功能
1PA0DS18B20-DQ
2PA1光敏电阻AO
3PA2雨滴传感器DO
4PA4电流检测(堵转保护)
5PB0~PB3ULN2003四相
6PB6/PB7OLED-I2C
7PA5/PA6/PA7三个独立按键

软件设计

主程序流程

主程序在自动模式与手动模式之间切换。自动模式下按"光强+雨滴+温度"三个判据生成目标状态,再由状态机驱动电机。

int main(void)
{
    SystemInit();
    DS18B20_Init();
    ADC1_Init();
    GPIO_Init_Rain();
    GPIO_Init_Motor();
    OLED_Init();
    Key_Init();

    while (1) {
        KeyEvent ev = Key_Scan();
        static Mode mode = MODE_AUTO;
        if (ev == EV_MODE) mode = (mode == MODE_AUTO) ? MODE_MANUAL : MODE_AUTO;
        if (mode == MODE_AUTO) {
            float t = DS18B20_ReadTemp();
            uint16_t light = ADC_Read(1);
            uint8_t rain = Rain_Read();
            Umbrella_State target = Decide_Auto(t, light, rain);
            Apply_Umbrella(target);
        } else {
            if (ev == EV_OPEN)  Apply_Umbrella(UMB_OPEN);
            if (ev == EV_CLOSE) Apply_Umbrella(UMB_CLOSE);
        }
        OLED_Update(mode, t, light, rain);
        Motor_Protect_Check();
        delay_ms(100);
    }
}

自动判定策略

  • 雨滴传感器 DO 为高电平(检测到雨)→ 收伞。
  • 光强 ADC < 阈值 1(强光)→ 收伞。
  • 温度 > 38℃ → 收伞。
  • 其他情况 → 展开伞。

电机驱动与保护

电机采用八拍序列,每拍 2ms 切换一相。打开与关闭过程使用行程限位开关进行限位,电流检测到骤增时立即停止并报警。

模式切换

按键 1 长按 1 秒切换模式;按键 2 短按开/收;按键 3 长按紧急切断电源。

系统实现与测试

测试方法

  1. 用手电筒模拟不同光照强度。
  2. 用滴水管模拟不同雨量。
  3. 热风枪加热验证高温判定。
  4. 户外连续运行 7 天,记录稳定性和功耗。

测试结果

  • 雨滴响应 2.5 秒内收伞。
  • 强光判定响应 1 秒;分级阈值切换稳定。
  • 高温判定误差 ±0.3℃。
  • 电机驱动 24 小时累计耗能 < 0.05kWh。
  • 户外 7 天未出现误动作或卡死。

总结

本系统将多种环境传感器与步进电机结合,形成了多功能、多场景适用的自动遮阳伞控制系统。整体逻辑清晰,硬件稳定,软件可扩展,已经在实验室阳台场景连续运行验证。后续可将电机驱动改为静音版步进+减速箱,并加入风速传感器实现大风预警收伞,进一步提升户外适应性。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐