站内搜索
更多
STM32DesktopConsoleV1.5桌面多功能控制台
专业版

STM32DesktopConsoleV1.5桌面多功能控制台

简介

基于STM32F103C8T6的桌面多功能控制台,集成OLED菜单、蓝牙控制、温湿度/光敏/姿态采集、点阵显示、外部存储、蜂鸣器和多路LED。

简介:基于STM32F103C8T6的桌面多功能控制台,集成OLED菜单、蓝牙控制、温湿度/光敏/姿态采集、点阵显示、外部存储、蜂鸣器和多路LED。
复刻成本:60

开源协议

CERN-OHL-P-2.0

创建时间:2026-05-01 10:03:06更新时间:2026-05-06 10:08:29

描述

视频链接:

B站视频--功能演示及介绍:
https://b23.tv/UA0Pgd3


项目简介

本项目是一个基于 STM32F103C8T6 的桌面多功能控制台,集成了 OLED 菜单显示、EC11 编码器交互、AHT20 温湿度采集、光敏 ADC 采集、MPU6050 姿态检测、MAX7219 点阵显示、W25Q64 外部存储、BT24 蓝牙串口控制、蜂鸣器提示和多路 LED 状态指示。

项目从面包板验证开始,逐步完成代码调试、蓝牙通信、外设联调、原理图设计、PCB 布局和 DRC 检查,当前版本为 V1.5 PCB 版本。本项目适合作为 STM32 多外设综合练习、自动化专业课程设计、嵌入式入门作品和开源硬件项目展示。


项目功能

本项目主要实现以下功能:

  1. OLED 菜单显示
    通过 0.96 寸 I2C OLED 显示系统状态、传感器数据、菜单页面和功能提示。

  2. EC11 编码器交互
    使用 EC11 旋转编码器进行菜单切换,配合 OK 按键完成选择和确认操作。

  3. 温湿度采集
    通过 AHT20 传感器读取环境温度和湿度,可用于桌面环境监测。

  4. 光照强度检测
    使用光敏模块的 AO 模拟输出接入 STM32 ADC,实现环境亮度采集。

  5. 姿态 / 运动检测
    使用 MPU6050 获取加速度和运动状态,可用于检测晃动、姿态变化等状态。

  6. MAX7219 点阵显示
    使用 MAX7219 8×8 点阵模块显示图标、状态提示或简单动画。

  7. 蓝牙串口控制
    通过 BT24 蓝牙串口模块与手机通信,手机可发送命令查询状态、控制 LED、读取运动状态、切换蜂鸣器模式等。

  8. 蜂鸣器提示与静音模式
    蜂鸣器用于按键操作反馈和状态提示,同时支持静音模式。

  9. 蓝牙发送指示灯
    每当设备通过蓝牙向手机发送一次数据,LED_BT_TX 会闪烁一次,用于观察通信状态。

  10. 外部 Flash 存储
    使用 W25Q64 SPI Flash 模块保存历史数据或状态记录。

  11. PCB 模块化设计
    外设模块大多采用 2.54mm 排母插接,方便插拔、调试和后期替换。


项目参数

参数内容
主控芯片STM32F103C8T6 最小系统板
内核ARM Cortex-M3,32 位 MCU
主频最高 72MHz
PCB 尺寸100mm × 100mm
PCB 层数双层板
输入电压5V
板载稳压AMS1117-3.3
系统电压5V_BUS / 3V3
显示模块0.96 寸 I2C OLED、MAX7219 8×8 点阵
通信方式USART1 蓝牙串口 / UART 调试口
I2C 设备OLED、AHT20、MPU6050
SPI 设备W25Q64、MAX7219
ADC 输入光敏模块 AO
输入器件EC11 编码器、OK 按键、RESET 按键
输出器件蜂鸣器、LED_USER1、LED_USER2、LED_BT_TX、电源指示灯
安装孔4 个 M3 安装孔
开源协议CERN-OHL-P-2.0

原理解析(硬件说明)

本项目硬件主要由以下部分组成:

电源模块
主控模块
显示模块
传感器模块
蓝牙通信模块
外部存储模块
人机交互模块
LED / 蜂鸣器输出模块

1. 电源模块

电源部分采用 5V 输入,经过自恢复保险丝和电源开关后形成系统 5V_BUS,再通过 AMS1117-3.3 稳压输出 3V3。

电源路径如下:

KF301-5.0-2P 输入 5V
        ↓
自恢复保险丝 F1
        ↓
电源开关 SW1
        ↓
5V_BUS
        ↓
AMS1117-3.3
        ↓
3V3

其中:

  • 5V_IN 为外部输入 5V。
  • 5V_PROT 为经过自恢复保险丝后的 5V。
  • 5V_BUS 为经过电源开关后的系统 5V。
  • 3V3 为 AMS1117 输出的 3.3V 电源。
  • MAX7219 使用 5V_BUS 供电。
  • STM32、OLED、AHT20、MPU6050、W25Q64、BT24、光敏模块和蜂鸣器模块使用 3V3 供电。

上电前需要使用万用表检查 5V_IN5V_BUS3V3GND 是否短路。


2. 主控模块

主控使用 STM32F103C8T6 最小系统板。该芯片属于 32 位 ARM Cortex-M3 单片机,资源足够驱动本项目中的多种外设。

主要使用的外设包括:

  • GPIO:按键、LED、蜂鸣器、编码器
  • ADC:光敏模块模拟输入
  • I2C1:OLED、AHT20、MPU6050
  • SPI1:W25Q64
  • GPIO 模拟 SPI / 普通 GPIO:MAX7219
  • USART1:BT24 蓝牙模块和 UART 调试口

3. OLED 显示模块

OLED 使用 I2C 接口,与 AHT20、MPU6050 共用 I2C1 总线。

OLED 接口定义:

引脚功能网络
1VCC3V3
2GNDGND
3SCLPB6_I2C1_SCL
4SDAPB7_I2C1_SDA

OLED 用于显示菜单、系统状态、传感器数据和蓝牙通信结果。


4. AHT20 温湿度模块

AHT20 同样使用 I2C 接口,用于采集环境温度和湿度。

AHT20 接口定义:

引脚功能网络
1SDAPB7_I2C1_SDA
2SCLPB6_I2C1_SCL
3GNDGND
4VIN3V3

布局时将 AHT20 尽量远离 AMS1117、电源区和 MAX7219,减少发热器件对温度数据的影响。


5. MPU6050 姿态传感器模块

MPU6050 使用 I2C 接口,主要用于读取加速度、角速度或运动状态。

MPU6050 接口定义:

引脚功能网络
1INTNC
2AD0GND
3XCLNC
4XDANC
5SDAPB7_I2C1_SDA
6SCLPB6_I2C1_SCL
7GNDGND
8VCC3V3

当前版本中 INT、XCL、XDA 暂未使用。


6. 光敏模块

光敏模块用于检测环境亮度。本项目只使用 AO 模拟输出,接入 STM32 的 ADC 引脚 PA0。

光敏模块接口定义:

引脚功能网络
1AOPA0_ADC_LIGHT
2DONC
3GNDGND
4VCC3V3

DO 数字输出暂未使用。


7. MAX7219 点阵模块

MAX7219 模块用于驱动 8×8 LED 点阵,可显示图标、状态提示或简单动画。

MAX7219 接口定义:

引脚功能网络
1VCC5V_BUS
2GNDGND
3DINPB8_MAX_DIN
4CSPB9_MAX_CS
5CLKPB10_MAX_CLK

MAX7219 使用 5V_BUS 供电,信号由 STM32 GPIO 控制。


8. W25Q64 外部 Flash 模块

W25Q64 用于保存历史记录、状态数据或后续扩展数据。

W25Q64 接口定义:

引脚功能网络
1VCC3V3
2CSPA4_FLASH_CS
3DOPA6_SPI1_MISO
4GNDGND
5CLKPA5_SPI1_SCK
6DIPA7_SPI1_MOSI

9. BT24 蓝牙模块

BT24 蓝牙模块通过 USART1 与 STM32 通信,用于手机蓝牙串口控制。

BT24 接口定义:

引脚功能网络
1STATNC
2RXDPA9_USART1_TX
3TXDPA10_USART1_RX
4GNDGND
55VNC
63.3V3V3

注意事项:

  • BT24 使用 3.3V 供电。
  • BT24 RXD 接 STM32 TX。
  • BT24 TXD 接 STM32 RX。
  • BT24 天线区域需要禁铜。
  • 蓝牙命令和回复统一使用英文 ASCII,避免手机蓝牙串口助手中文乱码。

10. 人机交互模块

项目使用 EC11 编码器和独立按键实现本地交互。

器件功能
EC11菜单旋转控制
KEY_OK菜单确认
RESET系统复位

EC11 连接:

信号STM32 引脚
ENC_APA1
ENC_BPA2
KEY_OKPA3
RESETNRST

11. LED 和蜂鸣器模块

LED 用于显示系统状态、用户状态和蓝牙发送状态。

LED功能
LED_PWR电源指示
LED_USER1用户状态指示 1
LED_USER2用户状态指示 2
LED_BT_TX蓝牙发送指示

LED_BT_TX 的功能是:每当设备通过蓝牙向手机发送一次数据,该 LED 闪烁一次。

蜂鸣器使用低电平触发模块:

引脚功能网络
1GNDGND
2I/OPB15_BUZZER
3VCC3V3

软件中支持蜂鸣器提示音和静音模式。


软件代码

GitHub 仓库地址:

https://github.com/eastpeak001/STM32-Desktop-Console-V1.5

仓库内容包括:

  • STM32CubeIDE 工程代码
  • README 项目说明
  • LICENSE 开源协议
  • 硬件说明文档
  • 引脚分配表
  • 调试记录
  • Gerber 文件
  • PCB 图片和项目资料

主要代码目录:

Core/
Drivers/
STM32_Desktop_Console.ioc

注意事项

  1. BT24 蓝牙模块需要使用 3.3V 供电,不要接 5V 引脚。
  2. MAX7219 模块使用 5V_BUS 供电。
  3. OLED、AHT20、MPU6050 共用 I2C1 总线。
  4. I2C 上拉电阻默认可不焊,因为多数模块已经自带上拉。
  5. UART 调试口和 BT24 共用 PA9 / PA10,调试时不要同时让多个外部设备驱动串口。
  6. 光敏模块只使用 AO 模拟输出,DO 暂未使用。
  7. MPU6050 的 INT、XCL、XDA 暂未使用。
  8. 所有模块插入前必须确认引脚顺序,避免反插烧毁模块。
  9. 上电前必须用万用表检查 5V、3V3 与 GND 是否短路。
  10. 当前版本为 V1.5 第一版 PCB,主要目标是验证完整功能。

组装流程

建议按照以下顺序焊接和测试:

1. 焊接电源部分

先焊接:

  • KF301 输入端子
  • 自恢复保险丝
  • 电源开关
  • AMS1117-3.3
  • 电源指示 LED

焊接完成后,不插任何模块,先测量电源。

2. 上电前检查

使用万用表蜂鸣档检查:

  • 5V_INGND 不应短路
  • 5V_BUSGND 不应短路
  • 3V3GND 不应短路

3. 首次上电

接入 5V 电源后测量:

  • 5V_BUS 是否约为 5V
  • 3V3 是否约为 3.3V
  • AMS1117 是否异常发热

4. 焊接 STM32 核心板插座

确认核心板方向,尤其是 USB 口朝向,避免插入后无法连接 USB。

5. 插入 STM32 核心板

测试程序下载是否正常,确认主控部分无问题。

6. 依次插入外设模块

建议顺序:

  1. OLED
  2. AHT20
  3. 光敏模块
  4. MAX7219
  5. BT24
  6. W25Q64
  7. MPU6050
  8. 蜂鸣器模块

每插入一个模块都单独测试,避免一次性插入后难以排查问题。


实物图

图1:面包板验证阶段
e8487ac1ec3fa1d4257cabb9a377abde.jpg

图2:PCB 顶层布局
GITHUBPCB最终图.png

图3:PCB 原理图

GITHUB原理图最终图.png

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
Gerber-STM32_Desktop_Console_V1.5_Gerber.zip.zip
7
2
STM32_Desktop_Console_V1.5_Firmware.zip
12
克隆工程
添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

底部导航