ESP32-S3-N16R8 部署 Mimiclaw 并接入 DeepSeek V4 Flash/Pro大模型
ESP32-S3-N16R8 部署 Mimiclaw 并接入 DeepSeek V4 Flash/Pro 大模型全流程
————————————————
文章目录
前言
本文旨在教你把 MimiClaw 部署到 ESP32-S3系列开发板上,并对接国内大模型DeepSeek V4 flash,不适合0基础小白,部分步骤参考了Mimiclaw 快速体验指南–还有孙老师 芯电厂和MimiClaw 项目中添加一个新的大语言模型。
一、准备工作
需要的硬件
- ESP32-S3-N16R8(要求Flash至少16MB,ROM至少8MB)
- USB-C数据线(插在左边的Type-C接口)
- Windows系统的电脑+WSL2(Ubuntu子系统)
需要的软件
- Git
- DeepSeek开放平台中创建API Key
- 飞书机器人(如果不会配置机器人,可以参考这个网址中的配置教程:
二、拉取Mimiclaw仓库
1.利用压缩包的方式
仓库名称:memovai / mimiclaw

下载这个包含源代码所有文件的压缩包在你电脑上的某个位置
解压缩后打开,你会看到D:\MiMi\mimiclaw-0.1.1\mimiclaw-0.1.1 文件夹下有很多文件。
三、安装ESP-IDF开发环境
3.1 用 VS Code 打开项目并准备环境
Windows 环境+WSL2 (Ubuntu 20.04~Ubuntu 24.04之类的),那我们直接用 Linux 命令行方式 来编译它,因为项目里连脚本都帮你写好了。
打开 VS Code。
点击左下角的绿色双箭头图标(或者按 F1 运行 WSL: Connect to WSL),进入你的 WSL2 (Ubuntu 24.04) 环境。
在 WSL2 环境中,打开源码目录(你的跟我的路径存放位置不同) D:\MiMi\mimiclaw-0.1.1\mimiclaw-0.1.1(在 WSL 里对应的路径通常是 /mnt/d/MiMi/mimiclaw-0.1.1/mimiclaw-0.1.1)。
3.2 安装编译工具箱(ESP-IDF)
在编译之前,我们需要让Ubuntu系统装上乐鑫官方的“翻译官工具箱”。利用项目自带的脚本,在 VS Code 的终端(Terminal)里输入以下两行命令:
- 运行项目自带的环境安装脚本(这会自动下载并配置好整个 ESP-IDF 工具链)
./scripts/setup_idf_ubuntu.sh
(如果在运行这个项目自带的安装脚本之后,屏幕上成功打印出了 ESP-IDF v5.x.x(或者类似的版本号)说明成功了)(如果屏幕上提示 idf.py: command not found(找不到命令),这个步骤的关键就是请你想办法安装ESP-IDF**)
避坑提示:如果输入后提示 command not found,说明脚本把工具链装在了独立目录,没有自动写入系统。不要慌,盲敲下面这行官方命令手动引路即可:
. $HOME/esp/esp-idf/export.sh
(注意最前面有一个点和空格)。
当屏幕打印出 ESP-IDF v5.x.x 时,说明工具箱彻底觉醒!
- 刷新环境变量,让当前终端认识 idf.py 这个编译命令
source ~/.bashrc
- 验证编译工具链是否就绪
idf.py --version
如果没有报错,说明ESP-IDF环境配置成功
3.3锁定芯片并启动编译
- 告诉工具箱,我们要给 ESP32-S3 芯片做固件
idf.py set-target esp32s3
- 启动正式编译
idf.py build
执行 idf.py build 时有顺利看到进度条走动吗?
如果没有走动,请把你终端上的报告日志复制粘贴给Ai,让它教你
如果编译成功的话:
关键会显示:“@flash_args”
如果还是没有办法使用命令行的方式安装ESP-IDF的话,那么你可以去看看有个名字是luo_feng_666的博主(他用的是离线包的方式)(这个博主的对于接下来关键的DeepSeek等大模型修改配置文件的方法,它步骤太多,我用的是另一种方法。)
https://blog.csdn.net/qq_45373533/article/details/159695494?spm=1001.2014.3001.5501
四、修改配置文件(核心步骤)
- 配置文件 1:main/mimi_config.h
- 配置文件 2:main/llm/llm_proxy.c
- 配置文件 3:main/mimi_secrets.h
4.1修改main/mimi_config.h
修改目的:这个文件承载了系统的全局宏定义。我们需要借用 OpenAI 的现成协议通道,把终点网址改为 DeepSeek 的服务器。(核心思想)
位置: “D:\MiMi\mimiclaw-0.1.1\mimiclaw-0.1.1\main\mimi_config.h”
// ❌ 修改前:
#define MIMI_OPENAI_API_URL "https://api.openai.com/v1/chat/completions"
// 🟢 修改后:
#define MIMI_OPENAI_API_URL "https://api.deepseek.com/v1/chat/completions"
4.2修改main/llm/llm_proxy.c
修改目的:拔除不兼容的“违禁参数”,打通代理 Host 闭环
修改位置 1:大模型参数打包处
/* Build request body (non-streaming) */
cJSON *body = cJSON_CreateObject();
cJSON_AddStringToObject(body, "model", s_model);
if (provider_is_openai()) {
// ❌ 修改前:使用了 DeepSeek 无法识别的参数,会导致 400 报错
cJSON_AddNumberToObject(body, "max_completion_tokens", MIMI_LLM_MAX_TOKENS);
}
/* Build request body (non-streaming) */
cJSON *body = cJSON_CreateObject();
cJSON_AddStringToObject(body, "model", s_model);
if (provider_is_openai()) {
// 🟢 修改后:替换为全天下通用的标准大模型参数
cJSON_AddNumberToObject(body, "max_tokens", MIMI_LLM_MAX_TOKENS);
}
修改位置 2:API 域名返回函数 llm_api_host() 处
//新增
static const char *llm_api_url(void)
{
// 如果是 openai 协议,直接导流到 deepseek 终点
return provider_is_openai() ? "https://api.deepseek.com/v1/chat/completions" : MIMI_LLM_API_URL;
}
//新增
/* ── 请将 llm_api_host 修改为以下状态 ── */
static const char *llm_api_host(void)
{
// 当协议是 openai 时,Host 域名指向 deepseek
return provider_is_openai() ? "api.deepseek.com" : "api.anthropic.com";
}
4.3修改main/mimi_secrets.h
修改目的:配置认主凭证(密钥、模型与飞书通行证)
这是整个项目最高优先级的私密配置文件,负责给芯片灌入各种核心连接凭证。
修改前(“”符号里面是没有信息的)
/* WiFi:填入你的手机热点,让芯片开机自动盲连(亦可通过 NVS 历史记忆自动读取) */
#define MIMI_SECRET_WIFI_SSID ""
#define MIMI_SECRET_WIFI_PASS ""
/* Feishu Bot:填入飞书开发者后台的长连接机器人凭证 */
#define MIMI_SECRET_FEISHU_APP_ID ""
#define MIMI_SECRET_FEISHU_APP_SECRET ""
/* DeepSeek V4 API:借道 OpenAI 通道,认准最新闪电大脑 */
#define MIMI_SECRET_API_KEY ""
#define MIMI_SECRET_MODEL ""
#define MIMI_SECRET_MODEL_PROVIDER ""
修改后:
/* WiFi:填入你的手机热点,让芯片开机自动盲连(亦可通过 NVS 历史记忆自动读取) */
#define MIMI_SECRET_WIFI_SSID ""
#define MIMI_SECRET_WIFI_PASS ""
/* Feishu Bot:填入飞书开发者后台的长连接机器人凭证 */
#define MIMI_SECRET_FEISHU_APP_ID "你的飞书机器人ID"
#define MIMI_SECRET_FEISHU_APP_SECRET "你的飞书机器人密钥"
/* DeepSeek V4 API:借道 OpenAI 通道,认准最新闪电大脑 */
#define MIMI_SECRET_API_KEY "你的DeepSeek的APIKEY"
#define MIMI_SECRET_MODEL "deepseek-v4-flash"//模型名称
#define MIMI_SECRET_MODEL_PROVIDER "openai"
五、编译烧录
由于 WSL 远程环境与 Windows 本地环境无法同时操作,我们的编译与烧录必须严格分为以下两个阶段进行:
5.1第一阶段:切入 WSL 2 终端(代码编译)
请首先将 VS Code 切换回 WSL: Ubuntu 远程连接状态,唤醒 Linux 子系统终端。
- 锁定项目根目录
在 WSL 终端中,切进你的项目源码文件夹:
命令:
cd /mnt/d/MiMi/mimiclaw-0.1.1/mimiclaw-0.1.1

- 激活 ESP-IDF 编译工具链
由于新开窗口会丢失环境变量,请运行官方脚本来唤醒编译器:
运行官方绝对路径脚本(注意点号后有一个空格):
. /home/liwenzheng/.espressif/esp-idf-v5.5.2/export.sh
- 执行编译命令
- 情况 A:如果你修改了 mimi_config.h 的宏定义
建议执行一次全清重编,确保宏定义刷新到每一个底层组件中
idf.py fullclean && idf.py set-target esp32s3 && idf.py build
- 情况 B:如果你后续只修改了 .c 或 .md 尾部的应用层代码
直接执行增量编译即可,几秒钟就能闪电完成:
idf.py build
5.2第二阶段:切回 Windows 终端(固件烧录)
当 WSL 终端提示 Project build complete 成功后,请完全放下并离开 WSL 窗口,回到你的 Windows 桌面。
-
唤醒 Windows 本地 PowerShell
在 Windows 任务栏搜索并打开普通的 PowerShell(不需要、也别进入 WSL)。 -
定位到 Windows 盘符下的 build 目录
直接在 Windows 命令行里切到编译输出产物文件夹:
PowerShell
cd D:\MiMi\mimiclaw-0.1.1\mimiclaw-0.1.1\build
- 调用本地 Python 驱动一键盲刷
确保你的数据线连接在开发板的左口(应用层原生 USB 口),在设备管理器中看清它的 COM 号,然后闭眼运行这行命令:
PowerShell
# ⚠️ 请将下面的 COM3 替换为你左口在 Windows 下实际识别到的端口号!
python -m esptool --chip esp32s3 -b 460800 --port COM3 write_flash "@flash_args"
烧录完成后的查验:
看到命令行提示
Hard resetting via RTS pin…

代表烧录大功告成。
保持连接在左口,直接打开 Windows 串口调试助手,连接对应的 COM 口,波特率死守 115200。
按下板子上的 RST 键让芯片重启,你就能在控制台里,静静欣赏 DeepSeek 联网并成功接管飞书长连接的日志啦。
5.3WIFI配置
https://hexchip.com/archives/mimiclaw-quick-guide
去这个网站查看配置命令
5.4测试通信

总结
如果顺利,那么现在你的 ESP32-S3 已经成功部署了 MimiClaw,并且可以使用接入DeepSeek的 DeepSeek V4 flash大模型了!有什么不懂的可以提问噢
下一步通过飞书机器人给 ESP32 发消息,去试试吧
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)