前言
本文基于找羊开源加热台项目进行复盘,涵盖硬件设计与固件源码分析。
一、硬件
主控选用 ESP-12F,PCB 板上集成有 CH340C 的串口转换电路,可以选择 TypeC 口烧录,也可以选择排母烧录。
1. 电源与供电模块
这部分由三部分组成,分别是 Type-C 接口、LDO 稳压、5V 电源模块。Type-C 接口提供 5V 电压,为主控芯片、CH340C USB 转 TTL 串口电路、屏幕、编码器等等供电;LDO 稳压电路将输入的 5V 电压转化为 3.3V,供电给 ESP-12F、屏幕、编码器等工作电压为 3.3V 的模块。以上两个供电模块负责烧录时到接入市电前的测试(务必确保正常再接入市电)。5V 电源模块将市电 220V 转化为 5V 输出,为 LDO、继电器驱动等电路供电。
2. CH340C 串口通信
CH340C 是 USB 转串口芯片,实现电脑 USB - 串口 - ESP8266 的数据传输。注意与 ESP8266 的 RX/TX 交叉连接,烧录时要把芯片的 GPIO0 拉低电平(接地芯片进入下载模式),烧录完要断开。
3. 主控模块
- RST:复位引脚,通过 R54(10K)上拉、C22(1uF)组成复位电路,实现上电复位。
TXD0/RXD0:串口通信引脚。GPIO0-GPIO16:通用输入输出引脚,用于连接传感器、按键、控制外设等。ADC:模拟 - 数字转换引脚,连接温度传感器(NTC)的输出,实现温度采集。
4. 加热控制模块
用于控制加热板的通断,实现温度调节。
- 光耦与继电器:MOC3041 将 ESP8266 的 PWM 信号隔离后,驱动 BT136-600E 双向可控硅。R46(100Ω)、AO3400 组成 PWM 驱动电路,控制光耦的导通;R47(100Ω)限制光耦电流。
- 可控硅与加热板:BT136-600E 导通后,为加热板供电。R49(390Ω)、R50(390Ω)是可控硅的保护电阻;C19(10nF)是阻容吸收电路,防止电源波动对可控硅的冲击。
5. 温度采集模块
- NTC 温度传感器:热敏电阻通过 R40(10K)组成分压电路,将温度变化转换为电压变化,再由 ESP8266 的
ADC引脚采集,实现温度检测。 - 风扇控制:AO3400 由 ESP8266 的
GPIO15引脚控制,实现风扇的通断。1N4148 是续流二极管,防止风扇电机的反向电动势损坏 MOS 管。
6. 人机交互模块
- OLED 显示:使用 0.91 寸 OLED,SDA(GPIO13)、SCL(GPIO12)与 ESP8266 通信,实现温度、状态等信息的显示。
- 按键与旋钮:使用 EC11 旋钮,SWB(GPIO0)、SWA(GPIO2)、SW(GPIO4)实现功能选择、参数调节等操作。
二、软件
1. 启动与主循环
setup() 初始化 OLED、加载 EEPROM、开启定时器、联网与旋钮;loop() 只调 UI、EEPROM 异步写和 MIOT 任务,CPU 频率维持 160MHz 保证性能。
void setup() { delay(100); #ifdef DEBUG { Serial.begin(115200); } #endif oled.begin(); eeprom.read_all_data(); Ticker_init(); miot.begin(); ec11.begin(5, 2, 4, ui_key_callb); ec11.speed_up(true); ec11.speed_up_max(20); ui.page_switch_flg = true; }
{ (); (() != SYS_CPU_160MHZ) (SYS_CPU_160MHZ); ui.(); eeprom.(); miot.(); }


