# 宿舍精灵 **Repository Path**: mextra/dormitory-pok--mon ## Basic Information - **Project Name**: 宿舍精灵 - **Description**: 主控:stm32f103c8t6 4G:ML307r 蓝牙音频:mh-m18 - **Primary Language**: Unknown - **License**: AFL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-01 - **Last Updated**: 2025-09-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 宿舍精灵 Dorm Elves ## 项目简介 这是一个基于 STM32F103C8 微控制器的嵌入式项目,主要用于宿舍环境监测与控制。主要功能包括: - 电池电量监测与低电量报警 - 温度监测与高温报警 - OLED 显示系统状态 - 通过 ML307R 模块进行 Wi-Fi 数据传输 - 蜂鸣器报警控制 - 按键1:向上选择(先按按键三才有效) 支持长按快速向上翻页 - 按键2:向下选择(先按按键三才有效)支持长按快速向下翻页 - 按键3:进入楼栋设置,再按一次退出楼栋设置 - 按键4:短按一次确认设置(进入楼栋设置有效) 长按关闭oled显示,并停止获取电费信息 - 默认显示南5 704宿舍电费 可在`/MyAPP/bsp_system.h`中修改 ## 硬件平台 - 微控制器:STM32F103C8 - 传感器:ADC 用于电池电压与温度检测 - 显示设备:OLED 屏幕 - 通信模块:ML307R Wi-Fi 模块 - 报警设备:蜂鸣器 ## 主要模块 ### 1. OLED 显示模块 - 文件:`MyAPP/OLED.c` - 功能: - 提供字符、数字、图形、图片显示 - 支持中文显示 - 提供基本绘图功能(点、线、矩形、圆、椭圆、弧等) - 支持局部刷新与反色显示 ### 2. 电池与温度监测 - 文件:`system/battery.c` - 功能: - 通过 ADC 采集电池电压与温度数据 - 使用 EMA(指数移动平均)滤波算法稳定数据 - 将电压转换为百分比显示 - 提供高温与低电量报警接口 ### 3. Wi-Fi 通信模块(ML307R) - 文件:`MyAPP/ml307r.c` - 功能: - 初始化 Wi-Fi 模块 - 发送与接收数据 - 获取电量、剩余金额、使用金额、时间等信息 - 支持 URL 编码与数据上传 ### 4. 蜂鸣器报警 - 文件:`MyAPP/buzzer.c` - 功能: - 提供高温报警与低电量报警 - 可控制蜂鸣器关闭 ### 5. JSON 数据处理 - 文件:`MyAPP/cJSON.c` - 功能: - 提供 JSON 数据的解析与生成 - 支持对象、数组、字符串、数值等基本类型 - 支持数据比较与格式化输出 ## 系统初始化与主循环 - 文件:`Core/Src/main.c` - 功能: - 系统时钟配置 - 外设初始化(ADC、DMA、GPIO、UART) - 主循环中执行数据采集、显示更新与通信任务 ## 外设驱动 - 使用 STM32 HAL 库进行外设控制 - 包括 ADC、DMA、GPIO、UART 等模块的初始化与中断处理 ## 使用说明 ### 编译与烧录 - 使用 Keil MDK-ARM 编译项目 - 通过 ST-Link 或 J-Link 烧录程序 ### 硬件连接 - OLED 使用 I2C 接口连接 - ML307R 使用 UART2 接口通信 - ADC 采集电池电压与温度传感器信号 ### 运行流程 1. 系统初始化 2. OLED 显示初始化 3. 电池与温度模块初始化 4. Wi-Fi 模块初始化 5. 主循环中定时采集数据并更新显示 6. 异常情况触发蜂鸣器报警 7. 通过 Wi-Fi 模块上传数据 ## 开源协议 本项目使用 MIT License,请参阅 LICENSE 文件获取详细信息。 ## 联系方式 如有问题或建议,请提交 Issue 或联系项目维护者。