Buck Blog · 博客正文

返回技术分享首页
「芯火·启航」STM32嵌入式AI开发训练营(L1)— 无线传感采集系统入门实战

🔥「芯火·启航」STM32嵌入式AI开发训练营(L1)

无线传感采集系统 — 从零基础到电赛实战 · 30天完整计划
STM32F407ZGT6VS Code + PlatformIO Claude Code + DeepSeekPython可视化 蓝牙+WiFi5传感器 单人独立作品展示
实训时间
2026.7.18 — 8.16(30天)
每日时段
8:30 — 17:30(白天实验室)
学生起点
零STM32基础,学过C语言+模数电
主控芯片
STM32F407ZGT6(Cortex-M4, 168MHz)
开发环境
Win + VS Code + PlatformIO + Claude Code + DeepSeek
人均预算
约 450—550 元
指导方式
工程师线上+线下辅导 + Claude Code + DeepSeek AI辅助
结题
作品展示 + 现场演示
🎯 实训目的与意义

🤝 参与团队协作开发

实训虽为单人独立完成项目,但采用统一的硬件平台、开发环境和代码规范。每日集中实验室工作、统一进度汇报、相互交叉评审代码,在实践中养成版本管理(Git)、文档撰写、代码可读性等团队协作基本功,为后续组队参加电赛、挑战杯等团队赛事打下协作基础。

🤖 拥抱AI辅助开发

系统性地掌握Claude Code + DeepSeek在嵌入式开发全流程的应用:从环境配置、代码生成、bug排查、协议理解到架构设计。这是AI时代工程师的核心竞争力——不是让AI替代思考,而是学会提出精确的技术问题、审查AI产出、人机高效协作,将开发效率提升数倍。

🎓 为大二及后续发展筑基

实训构建了嵌入式开发的完整知识框架。结业后将具备独立承担电子设计竞赛、智能车竞赛、蓝桥杯等赛事嵌入式部分的能力;在后续课程设计、毕业设计中可以直接复用本实训积累的代码库和调试经验;发表论文时涉及实验装置设计也能自主完成下位机开发。

💎 向芯片设计过渡

嵌入式开发是芯片设计的最佳入口。通过深入理解STM32F407的Cortex-M4内核架构、总线矩阵、外设寄存器操作、中断控制器NVIC等底层机制,建立起"芯片如何工作→软件如何驱动芯片"的系统视角,为后续学习Verilog/FPGA、IC数字设计、SoC架构等芯片方向课程奠定坚实的实践基础。

本次实训的重要性和必要性

📌 补齐"理论到实践"的关键断层

大一/大二阶段学生已修完C语言、模拟电路、数字电路等基础课程,但普遍存在"学过C语言却写不出一个完整嵌入式程序,学过模电却不会用ADC采集电压"的断层。本实训通过30天系统性项目驱动,将零散的理论知识焊接成可运行的工程能力,打通从课本到实际产品的最后一公里。

📌 构建"可迁移"的工程方法论

实训传授的不仅是STM32F407这一款芯片的使用,更是阅读数据手册、分析时序图、调试通信协议、排查硬件故障等通用工程方法。这些能力具有高度可迁移性——无论后续接触ST、TI、NXP还是国产MCU,甚至转向FPGA开发,方法论和思维方式都是相通的

📌 提前锁定竞赛入场资格

电子设计竞赛、智能车竞赛等高水平赛事的备赛周期通常需要3-6个月集中训练。如果等到大三才开始第一次接触STM32,备赛窗口极其紧张。本实训在大一/大二暑假完成嵌入式能力构建,相当于提前一年半锁定参赛资格,为后续竞赛培训赢得了充裕的打磨时间。

📌 顺应产业升级和就业趋势

集成电路产业是国家重点战略方向,企业对嵌入式/芯片人才的需求持续增长。本次实训串联了嵌入式系统→通信协议→传感器→上位机可视化的完整IoT技术栈,与产业界对"全栈嵌入式工程师"的能力要求高度契合,为实习就业积累有说服力的项目作品和实操经验

一句话总结:30天,从零基础到独立完成一个无线传感采集系统,构建嵌入式开发的完整能力框架,为竞赛、课题、论文和芯片方向学习铺设坚实的第一块基石。

📅 四阶段总览
阶段天数日期核心任务产出
阶段0:环境搭建Day 1—27/18 — 7/19 VS CodePlatformIOClaude CodeDeepSeekST-LinkGit 开发环境100%可用,LED闪烁验证
阶段1:外设基础Day 2下午—127/19 — 7/29 GPIO中断定时器PWMADC/DACI²CSPIUARTDMA 每个外设独立可运行Demo
阶段2:模块实战Day 13—247/30 — 8/10 5传感器蓝牙HC-05WiFi ESP8266OLEDPython可视化 每个模块独立驱动+验证通过
阶段3:系统联调Day 25—288/11 — 8/14 双节点联调PC端可视化整机测试 完整系统跑通,数据流正常
阶段4:展示准备Day 29—308/15 — 8/16 PPT+视频现场演示 作品展示+实训报告
🛒 器材清单与采购指南(人均 · 每个链接直指指定型号,无需人工甄别)
🏪 采购总则:以下是我为你选定的具体型号,每个链接点击即到商品,看「选择指南」列下单即可。
全部器材分2家店采购。所有链接使用淘宝搜索(s.taobao.com),搜索词已经精确到具体型号,点进去出现的商品中,按表格最右列「选择指南」操作即可,无需自己对比甄别:
店铺负责采购说明
正点原子天猫旗舰店 F407核心板 ×2
DAP下载器
OLED屏幕
全国电赛首选品牌,教程最全,Claude Code 可直接引用其官方文档和原理图
优信电子 淘宝店 全部传感器模块
蓝牙+ESP8266
面包板+电源+杜邦线
LED/按键/蜂鸣器/电位器
SG90舵机+L298N
万用表+收纳盒
电子DIY圈公认一站式店,传感器、无线模块、接插件、工具一应俱全。部分冷门模块优信如果没有,可在淘宝搜同型号选销量最高的即可

📦 完整器材清单 — 点击蓝色器材名称直达商品,按「选择指南」下单

店铺类别器材名称
(点击购买 🔗)
指定型号数量单价小计📌 选择指南
▸ 店铺一:正点原子(天猫旗舰店)
正点主控 STM32F407ZGT6 核心板 🔗 正点原子 M100Z-M4
STM32F407ZGT6 最小系统板
2135270 认准店铺名"正点原子旗舰店"(天猫蓝标)。
选颜色分类:"焊排针"(¥135)。
不要选"不焊排针"(¥108),自己焊太费时间。
正点调试 DAP 下载调试器 🔗 正点原子 Mini DAP
高速仿真器
13030 认准"正点原子旗舰店"。
选"Mini DAP"(¥30左右),不要选ST-Link(DAP速度更快且免驱)。
这个下载器同时支持调试+虚拟串口,一根线搞定。
正点显示 0.96寸 OLED显示屏 🔗 0.96寸 OLED
SSD1306 驱动芯片
I²C接口 128×64
11212 认准"4针 I²C接口"(VCC/GND/SCL/SDA),
不要买7针SPI版。
颜色选"蓝黄双色"(上半蓝下半黄),视觉效果最好。
正点原子店里也有,可在买核心板时一起下单。
正点原子小计312
▸ 店铺二:优信电子(淘宝搜店铺"优信电子",进店后搜以下型号。如某型号缺货,同型号换一家店买即可,模块都一样)
优信供电 面包板电源模块 🔗 MB-102 面包板电源
3.3V / 5V 双路输出
188 选带开关DC圆口的版本(¥8左右)。
不要买仅USB供电的简化版——后续可能需要电池或外接电源供电,DC口方便扩展。
优信供电 Micro USB 数据线 🔗 Micro USB 数据线
(能传数据,非仅充电)
2510 ⚠️ 标题里必须带"数据线"或"可传数据"字样。
纯充电线插上电脑不识别STM32!
如果商家标注不清,直接买手机原装数据线(安卓口的)。
优信实验 面包板 830孔 🔗 MB-102 830孔面包板
带背胶
11212 搜"830孔 面包板",¥10-15。
认准中间有凹槽(方便插核心板跨接)。
板子背面带双面胶的更好,可粘在桌面上不会滑动。
优信实验 杜邦线套装 🔗 公对公+公对母+母对母
各20-30条,长约30cm
1套1010 搜"杜邦线 套装 3种",¥10左右一套。
30cm长度(太短接线别扭,太长信号干扰)。
3种都要有:公对公、公对母、母对母。
优信外设 LED+电阻 基础元件包 🔗 LED 红绿蓝各5个
220Ω电阻10个
(或直接买元件包)
1套55 搜"LED 发光二极管 混装",选3mm5mm均可。
电阻选220Ω 1/4W
或者直接买"单片机入门元件包"(¥15-20,含LED/电阻/按键/电位器等全套),比零买更省事。
优信外设 轻触按键 🔗 6×6mm 四脚
轻触开关
40.52 搜"6x6 轻触开关 四脚"。
直插式(引脚可插面包板),不要贴片式。
4个才¥2,多买几个备用也不亏。
优信外设 有源蜂鸣器模块 🔗 有源蜂鸣器模块
低电平触发
3.3V-5V兼容
133 搜"有源蜂鸣器模块",¥3。
认准"有源"(内置振荡电路,通电即响),不要无源蜂鸣器(需要PWM驱动)。
模块上有一颗三极管+一个蜂鸣器+3个排针。
优信外设 10K 电位器 🔗 10KΩ 蓝白可调电阻
3脚直插
212 搜"10K 电位器 蓝白"。
认准3个引脚的蓝白方块电位器(最常见的那种)。
¥1一个,用来模拟0-3.3V电压输出给ADC采集。
优信传感器 BH1750 光照传感器 🔗 GY-302
BH1750FVI 芯片
I²C接口
155 搜"GY-302 BH1750"。
模块上印有GY-302丝印,4个排针(VCC/GND/SCL/SDA)。
¥5-8。注意不要买成BH1750裸芯片——要买焊接好排针的模块。
优信传感器 MPU6050 六轴陀螺仪 🔗 GY-521
MPU6050 芯片
3轴陀螺仪+3轴加速度
188 搜"GY-521 MPU6050"。
模块上印有GY-521丝印,8个排针。
¥8-12。不要买¥4的国产替代芯片版——I²C时序可能有问题,建议买标注"原装MPU6050"的版本。
优信传感器 DS18B20 温度传感器 🔗 DS18B20 模块版
不锈钢管防水探头
单总线接口
155 搜"DS18B20 模块 防水"。
⚠️ 买模块版(一个小PCB板+不锈钢管探头),模块上自带4.7kΩ上拉电阻
千万不要买裸TO-92封装(3脚小黑豆)——需要自己焊电阻,新手容易时序异常。
优信传感器 光敏电阻传感器模块 🔗 4针光敏电阻模块
AO模拟输出
DO数字输出(阈值)
133 搜"光敏电阻传感器模块 4针"。
¥3-5。4个排针:VCC/GND/AO/DO。
我们项目中只用AO脚(模拟电压接ADC),DO脚空着不接。
优信传感器 HC-SR04 超声波模块 🔗 HC-SR04
超声波测距
2cm-400cm
155 搜"HC-SR04 超声波"。
¥4-6。外观是两个银色的圆筒(发射+接收),4个排针(VCC/Trig/Echo/GND)。
这个模块全球都一样,选最便宜的即可
优信无线 HC-05 蓝牙模块 🔗 HC-05 蓝牙串口模块
主从一体
6针排针
21530 搜"HC-05 蓝牙模块"。
认准6个排针(STATE/RX/TX/GND/VCC/EN),底板为蓝色PCB。
¥12-18一个。买2个,不要买HC-06(只能做从机)。
注意:很多HC-05模块的工作电压是5V但信号电平3.3V兼容。
优信无线 ESP8266 NodeMCU 🔗 NodeMCU V3
ESP8266MOD芯片
板载CH340 USB转串口
11414 搜"ESP8266 NodeMCU CH340"。
⚠️ 必须买NodeMCU开发板(黑色PCB,带MicroUSB母座),¥12-18。
千万不要买ESP-01(8脚小黑模块)——需要额外USB转串口,新手调试极其不便。
优信执行器 SG90 微型舵机 🔗 SG90 9g微型舵机
180度
PWM控制
166 搜"SG90 舵机"。
¥5-8。蓝色外壳,配3根杜邦线。
不要买MG90S(金属齿轮版,贵且本项目不需要),普通塑料齿轮SG90完全够用。
优信执行器 L298N 电机驱动模块 🔗 L298N 双H桥驱动
带散热片
驱动电压5V-35V
188 搜"L298N 电机驱动"。
¥7-10。红色PCB,中间有一颗黑色芯片+银色散热片。
这是最经典的电机驱动模块,所有卖家都一样,选最便宜的即可
优信工具 数字万用表 🔗 DT830B
便携数字万用表
电压/电阻/通断/电流
12020 搜"DT830B 万用表"。
¥15-25。黄色外壳的经典入门表。
够用了——测电压、测通断、测电阻,日常调试基本就这几项。
优信存储 元件收纳盒 🔗 15格塑料收纳盒
可调隔板
188 搜"元件盒 15格 可调"。
¥6-10。选隔板可拆卸的款式,方便放不同大小的模块。
不要买固定隔板的——有些模块尺寸大放不进去。
优信电子小计162
🛒 人均合计(约)¥474
⚠️ 下单前最终核对清单(打印出来逐项打勾):
□ F407核心板 ×2(焊排针版,¥135/个)  □ DAP下载器 ×1  □ OLED屏 ×1(4针I²C蓝黄双色)
□ BH1750 ×1(GY-302)  □ MPU6050 ×1(GY-521)  □ DS18B20模块 ×1  □ 光敏电阻模块 ×1  □ HC-SR04 ×1
□ HC-05蓝牙 ×2  □ ESP8266 NodeMCU ×1  □ SG90舵机 ×1  □ L298N驱动 ×1
□ 面包板 ×1(830孔)  □ 面包板电源模块 ×1  □ Micro USB数据线 ×2  □ 杜邦线套装 ×1
□ LED+电阻包 ×1  □ 轻触按键 ×4  □ 有源蜂鸣器模块 ×1  □ 10K电位器 ×2
□ DT830B万用表 ×1  □ 收纳盒 ×1
💡 采购建议:
① 所有模块类器材(传感器、蓝牙、ESP8266、舵机、L298N、OLED、蜂鸣器)本质上都是标准公模产品,无论哪家店卖的,电路板一模一样。所以选销量高、评价好、价格适中的即可,不需要纠结店铺。
② 唯一需要注意品牌的是正点原子F407核心板和DAP下载器——这两个必须认准正点原子,因为资料和原理图是配套的。
③ 建议提前2周下单,收到后第一时间把所有模块通电测试一遍,坏的赶紧换。
④ 所有链接点击后如果显示"商品已下架"(淘宝链接会变化属正常),用表格中「指定型号」列的关键词重新搜索即可。
🖥️ 阶段0:环境搭建(Day 1—2)

Day 1(7月18日):Windows 开发环境完整搭建

🎯 当日目标:VS Code + PlatformIO + Claude Code + DeepSeek + ST-Link 全部配置完成,下载第一个LED闪烁程序到F407核心板上运行成功。

上午(8:30—12:00):基础软件安装

步骤任务耗时详细说明
0前置检查15min确认Windows系统版本 ≥ Win10;确认用户账户名不含中文/空格(PlatformIO编译路径不能有中文);确认电脑剩余硬盘 ≥ 10GB
1安装 Git for Windows20min官网 git-scm.com 下载安装。安装选项全部默认即可。完成后打开 Git Bash 验证:git --version。Git 用于版本管理代码,也用于 Claude Code 的安装依赖
2安装 Node.js20min官网 nodejs.org 下载 LTS 版本(≥18.x)。安装完成后在 PowerShell 验证:node --versionnpm --version。Claude Code 依赖 Node.js 运行
3安装 VS Code30min官网 code.visualstudio.com 下载安装。安装时勾选"添加到PATH"。装完后打开 VS Code,点击左侧扩展图标,安装 中文语言包(Chinese Language Pack),重启后界面为中文
4安装 VS Code 核心扩展20min在扩展商店搜索安装:① PlatformIO IDE(嵌入式开发核心)② C/C++(Microsoft出品,代码补全和语法检查)③ GitLens(Git可视化,方便回退代码)

下午(13:30—15:30):安装 Claude Code + DeepSeek

步骤任务耗时详细说明
5安装 Claude Code20min打开 PowerShell(管理员模式),执行:
npm install -g @anthropic-ai/claude-code
安装完成后验证:claude --version
6配置 DeepSeek 作为 Claude Code 的模型后端30minClaude Code 支持通过 API Key 接入 DeepSeek。需要:① 注册 DeepSeek 开放平台账号(platform.deepseek.com)→ 获取 API Key → 充值(最低约10元足够整个实训期)② 在 PowerShell 中配置环境变量:
setx ANTHROPIC_API_KEY "你的DeepSeek_API_Key"
setx ANTHROPIC_BASE_URL "https://api.deepseek.com"
③ 关闭并重新打开终端使环境变量生效。④ 测试:claude "你好,请用中文回复"
7VS Code 内集成 Claude Code20min在 VS Code 中按 Ctrl+Shift+P 打开命令面板,搜索 Claude Code: Open in Terminal。或者在 VS Code 的集成终端(Ctrl+`)中直接输入 claude 开始交互。这样可以在同一窗口内:左边写代码,右边问AI
8(可选)配置国内npm镜像10min如果 npm 下载速度慢,在 PowerShell 中执行:
npm config set registry https://registry.npmmirror.com

下午(15:30—17:30):PlatformIO + 第一个工程

步骤任务耗时详细说明
9创建 STM32F407 PlatformIO 工程30minVS Code → PlatformIO 图标 → Home → New Project → Board 选 ST STM32F407ZGT6(或搜索 Generic STM32F407ZGT6)→ Framework 选 STM32Cube(即HAL库)→ 选好保存路径(路径中不能有中文!)→ Finish。PlatformIO 会自动下载 STM32 平台包(首次约需10-20分钟,取决于网速)
10安装 ST-Link 驱动20minST-Link V2 在 Windows 上需要驱动。下载 Zadig 工具(zadig.akeo.ie),将 ST-Link 插入USB口,Zadig 中选择 ST-Link → 安装 WinUSB 驱动。装完后设备管理器中出现 "ST-Link Debug" 设备即成功
11配置 platformio.ini15min在工程根目录 platformio.ini 中确认/添加:
debug_tool = stlink
upload_protocol = stlink
确保烧录和调试都走 ST-Link
12编写第一个程序:LED闪烁(Blink)40min使用 Claude Code 辅助生成代码。在 VS Code 终端输入:
claude "请帮我写一个STM32F407的LED闪烁程序,使用HAL库,LED接在引脚PC0上(低电平点亮),每500ms翻转一次。请给出完整的main.c代码"
将AI生成的代码复制到 src/main.c,按 PlatformIO 底栏的 →(Upload) 按钮编译+烧录
13验证:LED闪烁成功核心板上LED以0.5秒间隔闪烁即Day 1大功告成。如果失败,把错误信息复制给Claude Code排错

Day 2(7月19日):环境收尾 + 硬件连接验证 + 进入 GPIO 学习

时间任务内容
8:30—10:00环境查漏补缺逐一确认每人环境:① PlatformIO 能编译通过 ② ST-Link 能下载 ③ Claude Code 在 VS Code 终端能正常对话 ④ DeepSeek API 有额度。任何问题现场用 Claude Code 排查
10:00—11:30理解 PlatformIO 工程结构借助 Claude Code 了解:platformio.ini 配置含义、src/ 目录放源码、lib/ 放自定义库、HAL库驱动文件在哪。学会:修改引脚配置后如何重新编译、如何查看编译错误
11:30—12:00硬件连接练习学习面包板接线规则(电源轨、连通方向)。把F407核心板插到面包板上,用面包板电源模块供电(3.3V),用杜邦线把 PC0 引脚引出到面包板上的外接LED(串220Ω电阻接地)
13:30—15:30GPIO原理学习用 Claude Code 交互学习:GPIO 输入/输出模式(推挽/开漏)、上拉/下拉电阻概念、HAL库 GPIO 操作函数(HAL_GPIO_WritePin / HAL_GPIO_ReadPin / HAL_GPIO_TogglePin)。做实验:① 外接LED流水灯(3个LED依次点亮)② 按键控制LED(按下亮、松开灭)
15:30—17:30按键消抖实战学习机械按键抖动原理、软件消抖方法(延时法 vs 定时器法)。实验:① 按键切换LED状态(按一下亮、再按一下灭)② 长按/短按识别。用 Claude Code 生成代码并调试
💡 Claude Code 使用技巧(Day 1-2就要教会学生):
① 把编译错误信息直接粘贴给Claude Code,比手动排查快10倍
② 生成代码后不要直接全盘复制,先理解思路,再分段验证
③ 遇到硬件不工作时,把接线描述+现象+代码一起发给AI分析
④ 用 Ctrl+` 打开终端,终端里敲 claude "问题",代码窗口和AI在同一屏幕
🔧 阶段1:外设基础(Day 2下午—12)

逐个吃透 STM32F407 的核心外设。每个外设的学习模式:原理(30min)→ Claude Code生成代码 → 烧录验证 → 修改参数加深理解

Day 2(下午)— Day 3
7/19下午 — 7/20

GPIO + 中断 EXTI

  • GPIO 8种模式全部理解(重点:推挽输出/开漏输出/上拉输入/浮空输入)
  • 外部中断 EXTI:按键触发中断,中断服务函数中翻转LED
  • NVIC 中断优先级分组配置
  • 综合实验:4个按键控制4个LED不同模式(流水灯/跑马灯/呼吸效果/全闪)
Day 4
7/21

定时器基础 + SysTick

  • SysTick 系统滴答定时器:毫秒级延时(HAL_Delay 原理)
  • 通用定时器 TIM2-TIM5:定时中断、时基配置
  • 定时器实现精确延时(微秒级)
  • 实验:定时器中断让LED以精确频率闪烁(1Hz/2Hz/5Hz可切换)
  • 实验:用定时器输入捕获测量按键按下时长
Day 5
7/22

PWM输出 + 舵机控制

  • TIM输出比较 → PWM生成原理(占空比、频率、分辨率)
  • HAL库 PWM 配置:HAL_TIM_PWM_Start
  • 实验:LED 呼吸灯(PWM控制亮度渐变)
  • 实验:控制 SG90 舵机旋转到指定角度(0°→90°→180°→0°循环)
  • 理解 PWM 周期20ms、占空比 0.5ms—2.5ms 对应舵机角度
Day 6
7/23

UART 串口通信

  • UART 通信协议原理(波特率/起始位/数据位/停止位/校验位)
  • HAL库 UART 发送/接收:轮询模式、中断模式
  • 实验:printf 重定向到串口,向PC串口助手打印"Hello STM32"
  • 实验:串口接收PC发来的指令,控制LED亮灭
  • 学习 USB转TTL(CH340)模块与F407的UART1连接
Day 7
7/24

ADC 模数转换

  • STM32F407 ADC 12位逐次逼近型,3个独立ADC
  • ADC 单次转换 / 连续转换 / 扫描模式
  • 实验:读取电位器电压值,串口打印实时电压
  • 实验:读取光敏电阻模块模拟输出,测量环境光强
  • 实验:采集F407内部温度传感器通道(ADC1_IN16)
Day 8
7/25

DAC + DMA 基础

  • STM32F407 DAC 12位,可输出模拟电压
  • DMA 直接存储器访问原理(解放CPU)
  • 实验:DAC输出正弦波(查表法 + DMA自动搬运)
  • 实验:ADC采集电位器 → DMA传输 → DAC输出跟随
  • 用串口打印DMA传输完成标志验证
Day 9
7/26

I²C 总线(上)— 协议学习 + OLED 驱动

  • I²C 协议原理:SCL/SDA、起始/停止条件、ACK/NACK、7位地址
  • STM32F407 I²C 硬件外设 vs 软件模拟对比
  • 实验:驱动 0.96寸 SSD1306 OLED 屏幕
  • 显示文字、数字、简单图形
  • 用 Claude Code 生成 OLED 驱动代码并理解
Day 10
7/27

I²C 总线(下)— BH1750 + MPU6050 驱动

  • 实验:驱动 BH1750 光照传感器,I²C读取光照度(lux)
  • 实验:驱动 MPU6050 六轴传感器,读取加速度+角速度原始数据
  • I²C 设备扫描程序:自动探测总线上所有设备地址
  • 将光照值和姿态角显示在 OLED 上
Day 11
7/28

OneWire 单总线 + SPI 总线

  • OneWire 单总线协议原理(与I²C对比)
  • 实验:驱动 DS18B20 温度传感器,读取温度
  • SPI 协议原理:MOSI/MISO/SCK/NSS,全双工高速
  • 实验(选做):SPI 驱动 MAX7219 LED点阵
  • 注意 DS18B20 时序严格(微秒级),调试时可用逻辑分析仪
Day 12
7/29

综合复习 + 超声波模块

  • HC-SR04 超声波测距:Trig发10μs脉冲 → Echo高电平持续时间 → 距离计算
  • 用到:GPIO输出(Trig)+ GPIO输入中断(Echo上升/下降沿)+ 定时器(计时)
  • 综合实验:OLED显示超声波测量的距离,距离<10cm时蜂鸣器报警
  • 回顾阶段1所有外设,梳理:哪些已掌握?哪些还模糊?用Claude Code补漏
  • 阶段1验收标准:给一个新传感器数据手册,能在2小时内用Claude Code辅助写出驱动
🧩 阶段2:模块实战(Day 13—24)

以最终项目为导向,将每个传感器和通信模块独立调试通过,为阶段3联调做准备。

Day 13
7/30

系统架构设计 + 任务分解

  • 在纸上画出最终系统的架构框图:采集节点(F407)→ 蓝牙 → 汇总节点(F407)→ ESP8266 WiFi → PC Python
  • 定义数据帧协议:采集节点发给汇总节点的数据格式(JSON或自定义二进制帧)
  • 定义每个传感器的数据更新频率
  • 用 Claude Code 写一个 protocol.h 数据帧结构体
Day 14
7/31

蓝牙模块 HC-05 调通

  • HC-05 AT 指令模式配置:设置主从模式、配对密码、波特率
  • 两个HC-05配对:一主一从,自动连接
  • 串口透传验证:从模块发数据 → 主模块收到
  • 实验:两块F407通过蓝牙互相发送字符串
  • 注意:HC-05默认波特率9600,需要与STM32 UART配置一致
Day 15
8/1

下位机采集节点 — 传感器集成(上)

  • 在一块F407上同时驱动:BH1750(I²C)+ DS18B20(OneWire)+ 光敏电阻(ADC)
  • 多传感器数据采集的时序调度:定时器触发的轮询架构
  • 把采集到的光照、温度、ADC电压通过串口打印出来验证
Day 16
8/2

下位机采集节点 — 传感器集成(下)

  • 加入 MPU6050(I²C)+ HC-SR04(GPIO中断)
  • 5个传感器同时在采集节点上运行,互不干扰
  • MPU6050的DMP(数字运动处理器)移植:输出欧拉角(Roll/Pitch/Yaw)而非原始数据
  • 用Claude Code帮助整合所有传感器驱动到一个工程里
Day 17
8/3

采集节点 — 数据打包 + OLED本地显示

  • 将5传感器数据按协议帧打包(结构体 + 校验和)
  • 采集节点本地 OLED 轮流显示各传感器数值
  • 按键切换OLED显示页面(传感器1→传感器2→...)
  • 通过蓝牙把数据帧发给汇总节点验证
Day 18
8/4

汇总节点 — 蓝牙接收 + 数据处理

  • 汇总节点F407通过蓝牙接收采集节点的数据帧
  • 帧解析:校验和验证 → 拆包 → 各传感器数据提取
  • 汇总节点OLED显示接收状态(信号强度/丢包率/数据)
  • 用蓝灯闪烁指示接收到有效数据帧
Day 19
8/5

汇总节点 — ESP8266 WiFi 数传

  • ESP8266 AT指令模式:连接WiFi → 设置TCP/UDP → 发送数据
  • 汇总节点通过UART2连接ESP8266,把传感器数据转发到WiFi
  • 在PC上用网络调试助手(NetAssist)接收数据验证
  • 注意ESP8266供电:需要3.3V且电流>300mA,不要用ST-Link供电
Day 20
8/6

PC 端 Python 环境

  • Python 环境搭建(用Claude Code安装):pip install pyserial matplotlib numpy
  • 用 pyserial 从串口读取数据(汇总节点也可以通过USB串口直接发PC作为备选方案)
  • 或用 socket 通过WiFi接收ESP8266发来的数据
  • 用 Claude Code 生成Python串口数据接收脚本
Day 21
8/7

Python 实时曲线显示

  • 用 Claude Code 生成 matplotlib 实时曲线代码
  • 多通道显示:温度曲线、光照曲线、距离曲线、姿态角曲线
  • 支持 matplotlib.animation 动态刷新
  • 窗口布局:左侧4个实时曲线,右侧数值面板
Day 22
8/8

Python GUI 仪表盘

  • 用 Claude Code 升级可视化:从纯曲线升级为仪表盘式
  • 可选方案:PyQt5 或 tkinter + matplotlib 嵌入
  • 仪表盘元素:温度表盘、光照进度条、姿态3D小球、距离刻度尺
  • 数据保存功能:将传感器数据存入CSV文件
Day 23
8/9

下位机低功耗优化 + 错误处理

  • 增加看门狗IWDG:程序跑飞自动复位
  • 增加通信超时处理:蓝牙断开→自动重连;传感器读取失败→标记错误并重试
  • LED状态指示:绿灯=正常运行、红灯=传感器故障、蓝灯=通信故障
  • 运行稳定性测试:连续运行1小时不崩溃
Day 24
8/10

缓存日 + 代码重构

  • 整理所有代码:去除调试用的printf、统一代码风格
  • 把传感器驱动封装成独立模块(.h/.c文件),提高可维护性
  • 用 Git 提交所有代码到本地仓库,写好 commit message
  • 整理一份开发笔记:记录每个模块的关键配置和踩过的坑
🔗 阶段3:系统联调(Day 25—28)
Day 25
8/11

端到端联调(上)

  • 采集节点→蓝牙→汇总节点→ESP8266→PC Python 全链路打通
  • 从传感器采集到Python界面显示,延迟 ≤ 1秒
  • 测试各种边界条件:节点距离拉远(蓝牙极限距离测试)、传感器遮挡
  • 记录发现的问题列表
Day 26
8/12

端到端联调(下)

  • 根据Day 25问题列表逐一修复
  • 增加报警功能:温度超过阈值→蜂鸣器响 + PC端红色闪烁提示
  • 增加舵机反馈:光照太暗时自动打开舵机控制的"补光灯角度调节"
  • 用 Git 打 tag v1.0-beta
Day 27
8/13

稳定性测试 + 性能优化

  • 连续运行2小时,记录数据刷新率、丢包率、内存使用
  • 优化通信速率:提高蓝牙波特率至115200
  • 优化传感器采集频率:不同传感器根据变化快慢设不同采样间隔
  • Claude Code 辅助做代码审查,找出潜在bug
Day 28
8/14

最终修复 + 版本冻结

  • 修复稳定性测试中发现的所有问题
  • PCB 飞线整理、杜邦线用热缩管/扎带固定
  • 打 tag v1.0-release,冻结展示版本
  • 开始写实训总结报告
🎯 阶段4:展示准备(Day 29—30)
Day 29
8/15

展示准备

  • 制作展示PPT(10-15页):项目背景 → 系统架构 → 技术方案 → 传感器选型 → 通信协议设计 → 实物照片 → Python可视化截图 → 遇到的问题和解决方案
  • 准备演示流程脚本:先让评委看PC端实时数据 → 遮挡传感器看报警 → 展示双节点蓝牙通信 → 回答技术提问
  • 准备备份方案:如果现场WiFi连不上,有USB串口直连的备选演示路径
  • 打包所有代码 + 文档
Day 30
8/16

作品展示 + 成果提交

  • 上午:现场作品展示 + 答辩
  • 下午:提交最终交付物:
    ① 完整源码(Git仓库)
    ② 实训总结报告(含系统架构图、通信协议文档、开发心得体会)
    ③ 展示PPT
    ④ 演示视频(录屏3-5分钟,作为线上备份)
  • 实训结束
📋 附录一:学生每日工作流(SOP)
时间任务
8:30—9:00开VS Code,检查前一天代码能编译通过。在终端敲 claude "今天我要做XXX,请给我今天的开发计划"
9:00—11:30新知识学习 + 代码编写(遇到问题立刻问Claude Code,不等不猜)
11:30—12:00简短记录:今天学到什么?什么没搞懂?写入开发笔记
13:30—16:30动手实验 + 硬件调试(最耗时的环节,耐心排查)
16:30—17:00代码提交Git,写commit message,更新开发笔记
17:00—17:30回顾当日成果,标注未解决问题,发给Claude Code:"明天我该怎么做来解决XXX"
💡 给学生的Claude Code常见提问模板:
claude "请解释STM32F407的{外设名}工作原理,用通俗语言"
claude "帮我写一个用HAL库驱动{传感器型号}的代码,引脚是{XXX}"
claude "这段代码编译报错:{粘贴错误信息}。如何修复?"
claude "我的{传感器}读不到数据,接线是{描述},代码在src/main.c中,可能是什么原因?"
claude "请审查我的代码,指出可能导致不稳定的地方"
📋 附录二:关键平台网址与工具清单
工具/平台网址/说明
VS Codecode.visualstudio.com
Git for Windowsgit-scm.com
Node.jsnodejs.org(LTS版)
Claude Codenpm install -g @anthropic-ai/claude-code
DeepSeek APIplatform.deepseek.com
PlatformIOVS Code扩展商店搜索安装
Zadig(ST-Link驱动)zadig.akeo.ie
STM32F407参考手册STM32F4xx Reference Manual(RM0090),建议下载PDF到本地
ST HAL库文档STM32CubeF4固件包自带 chm 帮助文档
串口助手WIN:SSCOM / MobaXterm;Linux:minicom / picocom
网络调试助手NetAssist(TCP/UDP收发测试)