集成语音感知与云平台的多任务智能楼宇控制系统:基于 FreeRTOS 的嵌入式多任务智能硬件控制项目

本项目以STM32F103C8T6微控制器为核心构建起一套智能楼宇控制系统,目的是基于多模块协同工作方式实现环境参数实时监测、设备自动控制与远程管理等功能。系统集成温湿度传感器(DHT11)、烟雾传感器(MQ-2)、光敏电阻等环境传感器模块,结合OLED显示、ESP8266-01 WiFi通信及SU-03T离线语音模块,形成数据采集、阈值报警、交互控制与云端互联的综合解决方案。设计选用STM32F103C8T6为主控芯片,基于FreeRTOS实时操作系统实现多任务调度,采用PWM算法动态调节照明灯亮度与风扇转速,在通过Proteus仿真验证功能可行性后完成双层PCB布局优化与硬件集成。实际测试中OLED界面能实时显示环境参数,支持华为云平台远程监控与语音指令交互,响应时间短且控制精度高可满足智能楼宇自动化需求。

Branch1Tags0
FilesLast commitLast update
1 year ago
1 year ago
1 year ago
2 years ago
8 months ago

[项目名称] - 集成语音感知与云平台的多任务智能楼宇控制系统

GitCode Star GitCode Star 2025

项目简介

本项目基于 FreeRTOS 实时操作系统,为嵌入式设备打造硬件监测与控制方案。通过多任务并行,实现按键、LED、OLED 显示、环境传感(MQ2、DHT11、光照)、电机、WiFi 等硬件功能,支持环境数据采集、设备状态控制与信息可视化,适用于物联网(IoT)节点、智能硬件原型开发场景。

功能概览

模块分类 功能说明
传感器监测 DHT11 温湿度采集、MQ2 气体检测、光照传感器数据读取
设备控制 LED 状态控制、电机 PWM 调速、 buzzer 报警(需扩展)
交互与显示 按键输入、OLED 屏幕显示(菜单、传感器数据、系统状态)
通信 WiFi 连接(需适配具体协议,如 TCP/IP、MQTT)
系统调度 FreeRTOS 多任务管理,任务包含:传感器采集、设备控制、显示更新、WiFi 通信等

硬件支持

  • 主控:适配 STM32 系列(需根据 HAL 库或标准外设库调整,代码默认基于 STM32 外设)
  • 外设
    • 输入:按键、DHT11(温湿度)、MQ2(气体)、光照传感器
    • 输出:LED、PWM 电机、OLED 显示屏、Buzzer(蜂鸣器)
    • 通信:WiFi 模块(需适配具体驱动,如 ESP8266)

代码结构

[项目根目录]
├── Hardware/           # 硬件驱动层
│   ├── Key.c/h         # 按键驱动(消抖、中断/轮询)
│   ├── LED.c/h         # LED 控制(亮灭、闪烁)
│   ├── OLED.c/h        # OLED 显示屏驱动(字符、图形显示)
│   ├── OLED_Data.c     # OLED 字模数据(ASCII、自定义图形)
│   ├── Buzzer.c/h      # 蜂鸣器驱动(PWM 或 GPIO 控制)
│   ├── MQ2.c/h         # MQ2 气体传感器驱动(ADC 读取)
│   ├── DHT11.c/h       # DHT11 温湿度驱动(时序控制)
│   ├── Timer.c/h       # 定时器驱动(FreeRTOS 定时器或硬件定时器)
│   ├── Light_sensor.c/h# 光照传感器驱动(ADC 读取)
│   ├── PWM.c/h         # PWM 驱动(电机调速、呼吸灯等)
│   ├── Motor.c/h       # 电机控制(PWM 调速、正反转逻辑)
│   └── WiFi.c/h        # WiFi 模块驱动(AT 指令或 SDK 适配)
├── Middlewares/FreeRT/ # FreeRTOS 实时操作系统(需自行添加内核源码)
├── HardwareTask/       # 任务实现层(FreeRTOS 任务封装)
│   ├── MenuTask.c/h    # 菜单任务(OLED 交互、功能选择)
│   ├── Dht11Task.c/h   # DHT11 数据采集任务
│   ├── Mq2Task.c/h     # MQ2 数据采集任务
│   ├── LightTask.c/h   # 光照传感器任务
│   ├── LedTask.c/h     # LED 控制任务(响应按键、传感器事件)
│   ├── MotorTask.c/h   # 电机控制任务(调速逻辑)
│   ├── RtcTask.c/h     # RTC 时钟任务(可选,需扩展)
│   ├── WiFiTask.c/h    # WiFi 通信任务(连接、数据上传)
│   └── UpdataTask.c/h  # 数据汇总/上传任务(传感器数据整合、显示更新)
└── CMSIS/              # CMSIS 标准层(内核、外设抽象,由 STM32 库提供)

快速上手

环境准备

  1. 开发工具:安装 Keil MDK(或 STM32CubeIDE),配置对应 STM32 芯片包。
  2. 依赖库
    • 添加 FreeRTOS 源码Middlewares/FreeRT/(需匹配 STM32 内核,如 FreeRTOSv202212.00)。
    • 确保 STM32 HAL 库标准外设库 已正确配置(代码中 HAL_XXX 函数需适配)。

编译与下载

  1. 工程配置
    • 在 Keil 中新建工程,添加 Hardware/HardwareTask/ 下的 .c 文件,配置头文件路径(包含 Hardware/CMSIS/Middlewares/FreeRT/)。
    • 配置 FreeRTOS 内核(FreeRTOSConfig.h),启用定时器、任务调度等功能。
  2. 编译下载:点击编译,通过 ST-Link/J-Link 下载程序到开发板。

功能验证

程序启动后,FreeRTOS 自动创建任务:

  • OLED 显示:查看菜单、传感器实时数据(温湿度、气体浓度、光照)。
  • 按键交互:通过按键切换 LED 状态、电机模式、WiFi 连接(需适配)。
  • 传感器触发:改变环境(如用手捂住 DHT11、遮挡光照传感器),观察 OLED 数据更新。

自定义扩展

1. 新增传感器/设备

  • 驱动层:在 Hardware/ 下新建 .c/h 文件(如 NewSensor.c/h),实现初始化、数据读取函数。
  • 任务层:在 HardwareTask/ 新建任务文件(如 NewSensorTask.c),通过 FreeRTOS 任务周期性采集数据。

2. WiFi 功能完善

  • WiFiTask.c 中扩展:
    • 连接 WiFi 热点(AT 指令或 SDK 函数)。
    • 实现 MQTT 协议(如接入物联网平台:阿里云 IoT、ThingsBoard)。
    • 上传传感器数据:调用 UpdataTask.c 中的数据汇总函数,封装为 JSON 格式发送。

3. UI 交互优化

  • MenuTask.c 中扩展 OLED 显示逻辑:
    • 添加图形化界面(如柱状图显示传感器数据)。
    • 实现多级菜单、参数配置(如电机速度阈值、WiFi 配置)。

开源协议

本项目采用 MIT 开源协议,允许自由使用、修改、分发,但需保留原作者版权声明(见 LICENSE 文件)。

演示视频

https://www.bilibili.com/video/BV1XjuyzQEUF/?spm_id_from=333.1387.homepage.video_card.click&vd_source=f921ae560a8fc0873abd3137c8a91676

贡献指南

欢迎提交 PR 完善代码:

  1. 修复 Bug:明确描述问题场景,提交补丁。
  2. 新增功能:按代码结构扩展驱动/任务,附带说明文档。
  3. 优化性能:精简任务调度、降低资源占用(如调整 FreeRTOS 任务优先级)。

问题反馈

若遇到以下问题,可通过 Gitcode Issues 反馈:

  • 硬件驱动兼容性问题(如不同 STM32 型号适配)。
  • FreeRTOS 任务冲突、调度异常。
  • 功能需求建议(如新增传感器支持、通信协议扩展)。

Star ⭐ 支持:如果本项目对你的嵌入式开发有帮助,欢迎点亮 Star 支持开源!


最后更新:2025-07-21
作者:[小程同学>o]
仓库地址:[https://gitcode.com/xiaocheng/gitcode_knowledge]

Introduction

本项目以STM32F103C8T6微控制器为核心构建起一套智能楼宇控制系统,目的是基于多模块协同工作方式实现环境参数实时监测、设备自动控制与远程管理等功能。系统集成温湿度传感器(DHT11)、烟雾传感器(MQ-2)、光敏电阻等环境传感器模块,结合OLED显示、ESP8266-01 WiFi通信及SU-03T离线语音模块,形成数据采集、阈值报警、交互控制与云端互联的综合解决方案。设计选用STM32F103C8T6为主控芯片,基于FreeRTOS实时操作系统实现多任务调度,采用PWM算法动态调节照明灯亮度与风扇转速,在通过Proteus仿真验证功能可行性后完成双层PCB布局优化与硬件集成。实际测试中OLED界面能实时显示环境参数,支持华为云平台远程监控与语音指令交互,响应时间短且控制精度高可满足智能楼宇自动化需求。

https://blog.csdn.net/weixin_46281529/article/details/149289084?spm=1011.2124.3001.6209Customize your domain