ESP8266 固件开发与 Web 控制项目。
esp-12f/
├── firmware/
│ ├── c/ # C/C++ 固件 (PlatformIO)
│ │ ├── src/main.cpp
│ │ └── platformio.ini
│ └── python/ # MicroPython 固件
│ ├── boot.py
│ ├── main.py
│ ├── mqtt_client.py
│ └── umqtt_cp.py
├── web/
│ ├── be/ # NestJS 后端
│ │ ├── src/
│ │ ├── package.json
│ │ └── tsconfig.json
│ ├── fe/ # 前端页面
│ │ └── index.html
│ ├── index.html
│ └── package.json
├── docs/
│ ├── curriculum/ # 10 课渐进式课程
│ ├── gpio-led.md
│ ├── mqtt-broker.md
│ └── repl.md
└── README.md
本项目当前按手上这块实物板子作为课程和接线基准:
| 项目 | 实物信息 |
|---|---|
| 核心平台 | ESP8266 |
| 模块型号 | ESP-12F |
| 开发板形态 | NodeMCU 风格开发板 |
| 板子丝印 | Ver 0.1 |
| 正面方向 | 天线朝上,Micro USB 朝下,元件正面朝自己 |
| 供电/下载 | Micro USB |
| 板载按钮 | RST 用于重启板子,FLASH 用于配合进入烧录/下载模式 |
| 右侧排针 | D0、D1、D2、D3、D4、3V、G、D5、D6、D7、D8、RX、TX、G、3V |
| 左侧排针 | A0、G、VU、S3、S2、S1、SC、S0、SK、G、3V、EN、RST、G、VIN |
后续课程、接线说明和引脚图都优先以这块实物板子的丝印为准。S0/S1/S2/S3/SC/SK 多数与板载 Flash 相关,普通实验先不使用。
引脚图按手上这块 NodeMCU Ver 0.1 实物丝印绘制:天线朝上、Micro USB 朝下、元件正面朝自己。右侧是
D0到D8、RX、TX,左侧是A0、电源/复位以及S0/S1/S2/S3/SC/SK这组 Flash 相关引脚。
| 层 | 技术 |
|---|---|
| 固件 (C) | PlatformIO, Arduino framework, ESP8266 RTOS SDK |
| 固件 (Python) | MicroPython, umqtt |
| 后端 | NestJS, TypeScript, MQTT.js |
| 前端 | HTML, CSS, JavaScript, SSE |
| 通信 | MQTT, HTTP, SSE |
firmware/c/— PlatformIO 工程,C/C++ 固件代码,烧录到 ESP8266firmware/python/— MicroPython 脚本,通过 ampy 烧录或直接运行web/be/— NestJS 后端服务,提供 HTTP API 与 MQTT 桥接web/fe/— 前端控制页面,通过 SSE 接收实时状态docs/— 文档与渐进式课程(10 课从零到综合项目)
真实 Wi-Fi、MQTT 地址、用户名和密码不要写进 Git。仓库只保留示例文件:
# ESP8266 MicroPython 配置
cp firmware/python/config.example.py firmware/python/config.py
# NestJS 后端 MQTT 配置
cp web/be/.env.example web/be/.env然后只编辑本地的 firmware/python/config.py 和 web/be/.env。这两个文件已被 .gitignore 忽略。
ampy --port /dev/cu.usbserial-1130 --baud 115200 put firmware/python/config.py /config.py
ampy --port /dev/cu.usbserial-1130 --baud 115200 put firmware/python/mqtt_client.py /main.py如果目标是运行自己写的 C/C++ 程序,不需要先烧 AT 固件。C/C++ 代码会在电脑上编译成 .bin 固件,然后直接烧录到 ESP8266;烧录后会覆盖当前的 MicroPython 固件。
cd firmware/c
pio run -t uploadcd web
npm run dev:backendcd web
npm run dev:frontend👉 查看课程大纲
10 课渐进式课程,从 GPIO 到综合项目,每课 1-2 个新概念。