一、总体要求
本课程设计旨在通过一个完整的嵌入式系统项目,将《微控制器系统》课程中所学的理论知识与实践技能相结合,掌握嵌入式系统模块化设计、硬件接口驱动、实时操作系统(RTOS)应用与系统调试的综合能力。学生需以小组为单位,完成从项目需求分析、方案设计、硬件搭建、软件编程到系统联调与功能演示的全过程。
二、设计任务
设计并实现一个“智能环境监测与控制系统”。该系统需能实时采集环境参数(如温度、湿度、光照强度),并根据预设逻辑或远程指令控制执行机构(如LED灯、风扇、继电器等),同时具备人机交互与数据通信功能。
三、系统构成与模块划分
1. 核心控制模块:以STM32F103系列(或其他同等级)单片机为核心,负责任务调度、数据处理与逻辑控制。要求使用FreeRTOS进行多任务管理。
2. 传感器采集模块:
温度湿度传感器(如DHT11或SHT20)。
光照强度传感器(如BH1750)。
要求编写相应的I2C或单总线驱动程序,实现数据的稳定读取。
3. 执行控制模块:
LED灯组,模拟照明设备。
直流电机(通过L298N驱动)或继电器模块,模拟通风/空调设备。
要求编写PWM输出、GPIO控制程序。
4. 人机交互模块:
OLED显示屏(I2C接口),用于实时显示环境数据与系统状态。
独立按键或矩阵键盘,用于参数设置与模式切换。
5. 通信模块:
ESP8266 WiFi模块,通过AT指令或SDK开发,连接云平台(如OneNET、阿里云)或手机APP,实现数据上传与远程控制。
或采用蓝牙模块(如HC-05)与手机进行短距离通信。
四、功能要求
1. 基本功能:
能实时采集并本地显示温度、湿度、光照强度。
能通过按键切换手动/自动模式。
手动模式下,可通过按键控制灯与风扇的开关及风扇转速(PWM调速)。
自动模式下,系统能根据预设阈值自动控制设备(如光照低于某值开灯,温度高于某值开启风扇并随温度升高加速)。
2. 扩展功能:
通过WiFi/蓝牙将数据上传至手机或云平台,并可从平台下发控制指令。
实现历史数据(如24小时内温湿度变化)的简单存储与曲线显示(OLED上滚动显示或通过上位机查看)。
增加声光报警功能,当某项参数超限时触发。
设计简单的上位机(可使用串口助手、网络调试助手或自行编写的简易界面)进行数据监控。
五、实施步骤与时间安排(建议两周)
第1-2天:项目分析与方案设计。明确系统框架,划分硬件模块与软件任务,制定详细的任务流程图与各模块接口定义。
第3-5天:硬件搭建与模块驱动开发。焊接或连接各模块电路,分别调试各个传感器、执行器、屏幕与通信模块的驱动程序,确保每个硬件单元可独立正常工作。
第6-9天:FreeRTOS任务集成与逻辑实现。创建多个任务(如:传感器数据采集任务、显示刷新任务、自动控制决策任务、通信处理任务、按键扫描任务等),编写任务函数,实现任务间的通信(队列、信号量)与同步。
第10-12天:系统联调与功能测试。将所有任务整合,测试系统整体功能,优化代码结构,解决任务间可能存在的资源竞争与逻辑冲突,确保系统稳定运行。
第13-14天:完善功能,撰写报告,准备答辩。完成扩展功能,整理项目文档,制作答辩PPT与演示视频。
六、成果提交
1. 实物作品:完整可运行的硬件系统。
2. 设计报告:包含任务书、总体设计方案、硬件电路原理图(或连接示意图)、软件流程图、核心程序代码(带详细注释)、系统调试过程与问题分析、功能测试结果、总结与心得体会。
3. 程序源码:完整的Keil(或STM32CubeIDE)工程文件。
4. 答辩与演示:现场演示系统功能,并回答提问。
七、考核标准
系统功能完整性(40%):是否完成基本功能与所选扩展功能,运行是否稳定可靠。
模块化与代码质量(25%):硬件设计是否清晰,软件结构是否模块化、可读性强,是否合理运用RTOS特性。
设计报告与文档(20%):报告内容是否详实、规范,逻辑清晰。
创新性与答辩表现(15%):方案是否有独到之处,现场演示与问题回答情况。