ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

小智 AI 助手 zhengchen-1.54tft-ml307 板卡全解析:双网络(WiFi + ML307 4G)架构、编译烧录与硬件适配

小智 AI 助手 zhengchen-1.54tft-ml307 板卡全解析:双网络(WiFi + ML307 4G)架构、编译烧录与硬件适配 小智 AI 助手 zhengchen-1.54tft-ml307 板卡全解析双网络WiFi ML307 4G架构、编译烧录与硬件适配【免费下载链接】xiaozhi-esp32An MCP-based chatbot | 一个基于MCP的聊天机器人项目地址: https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32小智 AI 助手xiaozhi-esp32是一个基于 ESP32-S3 的开源 AI 语音对话机器人固件项目。本文聚焦其官方板卡zhengchen-1.54tft-ml307正辰 1.54 英寸 TFT 屏 ML307 4G 模组结合 板卡 README 与仓库源码完整讲解该板卡的编译配置命令、双网络切换原理、引脚定义、电源管理与高温告警机制让读者既能在 5 分钟内完成固件编译烧录也能深入理解其底层实现。一、板卡概览一块同时具备 WiFi 与 4G 双通道的语音交互板zhengchen-1.54tft-ml307是 zhengchen正辰系列中带 ML307 4G 通信模组的版本与同系列的zhengchen-1.54tft-wifi板卡共享显示与电源管理设计核心差异在于网络接入方式默认通过ML307 4G Cat.1 模组联网适合无 WiFi 覆盖的户外或移动场景同时保留WiFi 通道可在两者之间运行时切换长按 BOOT 键。板卡声明文件位于 main/boards/zhengchen/1.54tft-ml307/zhengchen-1.54tft-ml307.cc类ZHENGCHEN_1_54TFT_ML307继承自DualNetworkBoard双网络板基类并通过DECLARE_BOARD宏注册进固件。其板卡类型在 config.json 中登记为zhengchen-1.54tft-ml307编译目标为esp32s3。二、编译配置与烧录命令原文核心步骤依据 板卡 README完整流程如下。1. 设置编译目标该板基于 ESP32-S3 芯片首次配置需指定目标芯片idf.py set-target esp32s32. 打开 menuconfig 选择板卡idf.py menuconfig在图形化配置界面中依次进入Xiaozhi Assistant - Board Type - zhengchen-1.54tft-ml3073. 编译固件idf.py build4. 烧录并监视串口日志idf.py build flash monitor执行后固件会烧录到开发板并在当前终端实时显示设备日志log 标签为ZHENGCHEN_1_54TFT_ML307见 zhengchen-1.54tft-ml307.cc。5. 合并生成发布固件如需生成可直接分发/量产烧录的完整合并固件idf.py merge-bin说明以上命令均依赖 ESP-IDF 环境。编译前请确保已按项目根目录 README.md 的说明完成 ESP-IDF 工具链含 esp-adf 等组件初始化并已拉取 idf_component.yml 声明的依赖组件。三、硬件资源与引脚配置config.h 逐项解读板卡硬件映射全部集中在 main/boards/zhengchen/1.54tft-ml307/config.h功能引脚说明I2S 麦克风WSGPIO4 / SCKGPIO5 / DINGPIO616 kHz 采样输入I2S 扬声器DOUTGPIO7 / BCLKGPIO15 / LRCKGPIO1624 kHz 采样输出BOOT 按键GPIO0单击切换对话/配网长按切换网络音量加GPIO10单击 10长按静音上限音量减GPIO39单击 -10长按静音LCD 屏幕SDAGPIO41 / SCLGPIO42 / RESGPIO45 / DCGPIO40 / CSGPIO211.54 ST7789240×240背光GPIO20PWM 调光ML307 4GRXGPIO11 / TXGPIO12UART 连接 4G 模组充电检测GPIO9高电平表示充电中音频方面该板使用NoAudioCodecSimplex全双工直通编解码见 zhengchen-1.54tft-ml307.cc输入 16 kHz、输出 24 kHzI2S 麦克风与扬声器独立接线。四、源码级深度解析双网络WiFi ML307如何协同工作4.1 DualNetworkBoard 基类设计main/boards/common/dual_network_board.h 定义了双网络板基类内部持有std::unique_ptrBoard current_board_根据NetworkTypeWIFI/ML307动态创建当前活动的网络板卡默认网络类型为ML307枚举默认值可通过Settings持久化保存与加载SwitchNetworkType()负责运行时切换网络GetNetworkType()返回当前类型GetCurrentBoard()返回当前活动的板卡实例。这就是一块板卡同时承载 WiFi 与 4G的底层机制小智固件中的WifiBoard与Ml307Board在此被组合封装应用层对话、配网、状态上报只面对统一的Board接口。4.2 按键交互从对话到网络切换在 zhengchen-1.54tft-ml307.cc 中按键逻辑非常清晰BOOT 单击先唤醒节能定时器若当前处于 WiFi 网络且设备处于kDeviceStateStarting启动态则进入 WiFi 配网模式EnterWifiConfigMode否则切换对话状态ToggleChatStateBOOT 长按调用SwitchNetworkType()在 WiFi 与 ML307 之间切换音量加/减单击音量 ±100–100 范围并在屏幕上弹出音量通知ShowNotification音量加/减长按分别直达最大音量与静音。4.3 电源管理与高温告警板卡复用了同系列 1.54tft-wifi 的 PowerManager电池检测通过 ADC 通道 712 位、衰减 12dB采集电池电压采用滑动平均采样 3 次与分段线性插值映射电量ADC 2030→0%、2134→20%、2252→40%、2370→60%、2488→80%、2606→100%每 60 个 tick 刷新一次低电量阈值kLowBatteryLevel 20低于 20% 触发低电量回调温度监控ESP32-S3 内置温度传感器每 10 秒读取一次温度变化超过 3.5°C 才触发回调避免频繁刷新高温弹窗PowerManager将芯片温度通过OnTemperatureChanged回调传给显示层zhengchen_lcd_display.h 中的UpdateHighTempWarning(chip_temp, threshold 75.0f)在温度 ≥75°C 时弹出红色温度过高警告条LV_PALETTE_RED背景、白色文字低于阈值自动隐藏。此外InitializePowerSaveTimer使用 RTC GPIO2 保持外设供电配合PowerSaveTimer(-1, 60, 300)实现 60 秒无操作进入低功耗、300 秒深度休眠的省电策略充电状态下自动禁用节能定时器拔电后恢复。五、屏幕显示ST7789 驱动的 240×240 LVGL 界面显示初始化位于 zhengchen-1.54tft-ml307.ccSPI3 总线MOSI/SCLK 直连屏幕最大传输240×240×2字节使用esp_lcd_new_panel_st7789创建驱动SPI 模式 3、时钟 80 MHz、RGB 顺序、16 bpp启用颜色反转esp_lcd_panel_invert_color(panel_, true)并按DISPLAY_SWAP_XY / DISPLAY_MIRROR_X / DISPLAY_MIRROR_Y配置旋转镜像上层由ZHENGCHEN_LcdDisplay继承SpiLcdDisplay承载 LVGL 界面负责表情、音量通知、高温告警等 UI 呈现。六、与其他板卡的关系zhengchen-1.54tft-ml307与 zhengchen-1.54tft-wifi 属于同系列姊妹板两者共用相同的屏幕驱动ZHENGCHEN_LcdDisplay、相同的PowerManager电源管理、几乎一致的引脚分配见两个目录下的 config.h差异仅在于 ML307 版本额外引入 4G 模组引脚GPIO11/GPIO12并继承DualNetworkBoard。因此从 WiFi 版迁移到 4G 版时主要工作集中在网络层适配显示与电源部分可直接复用。七、常见问题与注意事项编译目标必须是 esp32s3该板基于 ESP32-S3若此前配置过其他目标务必先执行idf.py set-target esp32s34G 联网需要实体 SIM 卡与天线ML307 走运营商蜂窝网络首次使用前确认 SIM 卡已激活、天线已连接并在小智 App 中完成账号绑定低电量保护电量低于 20% 会触发低电量回调建议及时充电充电时节能定时器自动暂停高温场景长时间满负载运行时若屏幕弹出高温警告说明芯片温度达到 75°C请检查散热合并固件idf.py merge-bin生成的合并固件适合量产烧录日常开发使用idf.py flash monitor即可。结语zhengchen-1.54tft-ml307以WiFi ML307 4G 双网络为核心卖点通过DualNetworkBoard抽象层实现了网络的无感切换同时依托共享的PowerManager与 ST7789 显示驱动提供了完整的电量、温度监控与 LVGL 交互界面。借助本文的编译命令与源码剖析开发者既可以快速把固件跑起来也能在其基础上二次开发属于自己的双网络语音设备。相关可进一步阅读板卡实现、双网络基类、电源管理。【免费下载链接】xiaozhi-esp32An MCP-based chatbot | 一个基于MCP的聊天机器人项目地址: https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进