尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
ESP-IDF-OTA远程升级简单介绍(图文超详细~)
目录一、新建工程二、对报错进行修改三、配置工程 WiFi 功能四、连接巴法云物联网平台五、OTA 进行固件升级摘要本文以 ESP32-P4-WIFI6-DEV-KIT 开发板和 VSCode ESP-IDF 环境为例记录新建工程、解决跨盘编译报错、配置 WiFiC6SDIO、接入巴法云 MQTT 平台并通过 OTA 实现固件升级的完整过程。工具准备开发板ESP32-P4-WIFI6-DEV-KIT开发环境VSCode ESP-IDF物联网云平台巴法云物联网平台一、新建工程直接搜索ota选择原生ota升级根据这个原生ota新建工程根据需求对新建的工程进行一些必要修改新建好后打开工程对新建好的工程进行编译发现有很多报错二、对报错进行修改这个报错说的是工程在 E 盘ESP-IDF 在 D 盘可以看到 idf_component.yml 文件引用了 D 盘的本地组件因为我的 ESP-IDF 安装在 D 盘如果是同一个盘就不会报错……。ESP-IDF 6.0.1 组件管理器处理跨盘相对路径时报错其实把工程移到 D 盘就可以完全解决报错问题最简单但是我不想移那怎么办呢工程继续放在 E 盘将 main\idf_component.yml 文件重命名为 main\idf_component.yml.disabled2. 修改 CMakeLists.txt 文件在include(...)前增加cmake_minimum_required(VERSION 3.22) set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common ) include($ENV{IDF_PATH}/tools/cmake/project.cmake) idf_build_set_property(MINIMAL_BUILD ON) project(native_ota_example)3. 修改 main/CMakeLists.txt在PRIV_REQUIRES后增加protocol_examples_commonidf_component_register( SRCS native_ota_example.c INCLUDE_DIRS . PRIV_REQUIRES esp_http_client app_update nvs_flash esp_driver_gpio esp_netif esp_wifi protocol_examples_common EMBED_TXTFILES ${project_dir}/server_certs/ca_cert.pem )然后再删除工程里的 build 文件夹再编译就发现没有报错了三、配置工程 WiFi 功能先点击 SDK 配置编辑器再搜索 wifi发现只出来了 Host WiFi Enable这个Host WiFi Enable是ESP32-P4 外接 Wi‑Fi 控制器的总开关对应CONFIG_ESP_HOST_WIFI_ENABLEDy。它不是填写 Wi-Fi 账号密码的选项。本次测试使用的开发板是ESP32-P4-WIFI6-DEV-KIT不是普通 ESP32-P4而是ESP32-P4运行 OTA 主程序ESP32-C6通过 SDIO 提供 Wi‑Fi 6 / BLEIP101提供 RJ45 有线网络我们需要使用 WiFi 来进行 OTA 升级的话还需要进行以下配置在 VS Code 中执行Ctrl Shift P → ESP-IDF: Open ESP-IDF Terminal打开 ESP-IDF 终端然后运行以下代码idf.py add-dependency espressif/esp_wifi_remote1.6,2.0 idf.py add-dependency espressif/esp_hosted2.12,3.0运行结果完成后执行ESP-IDF: Full Clean Project。打开ESP-IDF: SDK Configuration Editor。然后我们再去配置 WiFi。先搜索 wifi发现多了个 connect using WiFi interface我们勾选上就会出来很多 WiFi 相关的配置我们对 WiFi 进行设置设置好后记得保存注意WiFi 连接手机热点的话必须要是 2.4GHz 频段的安卓手机可以手动选择苹果手机的话打开最大兼容性就是 2.4GHz 频段的。配置好后删除 build 文件再进行编译发现还是有很多报错……这个报错主要是因为esp_wifi_remote 1.6.2使用完整版本号6.0.1查找 Kconfig但组件只有6.0对应文件。这与乐鑫官方 Issue #85 描述的问题机制一致。解决办法1在 settings.json 中添加ESP_IDF_VERSION:6.02在 sdkconfig.defaults 固化 C6 SDIO 配置添加以下配置# ESP32-P4-WIFI6-DEV-KIT: onboard ESP32-C6 connected over SDIO CONFIG_SLAVE_IDF_TARGET_ESP32C6y CONFIG_ESP_HOSTED_CP_TARGET_ESP32C6y CONFIG_ESP_HOSTED_P4_DEV_BOARD_FUNC_BOARDy CONFIG_ESP_HOSTED_SDIO_HOST_INTERFACEy然后然后就编译成功啦好的现在已经没有太大的问题了我们需要手动加入一些代码方便我们更直观地观察。先对当前工程设置版本号我这边设置为 1 版本然后获取当前工程版本号直接加到主函数里printf(---------------------------------\n); const esp_app_desc_t *desc; desc esp_app_get_description(); ESP_LOGI(TAG, Current firmware version: %s, desc-version);添加好后编译没报错就行。四、连接巴法云物联网平台登录好巴法云平台后创建一个新的 MQTT 设备点击 OTA上传前面工程生成的 .bin 文件一般是工程名.bin上传好之后就会有一个固件地址我们需要把这个地址放入我们的工程里。复制好的固件地址放到工程里的 URL 里配置好后进行保存。然后就烧录代码在终端可以看到打印出来的当前工程的版本号五、OTA 进行固件升级现在版本 1 已经烧录到板子上了我们需要进行固件升级需要手动修改一下方便我们观察。1. 我们先修改版本号2. 修改3. 修正当前 sdkconfig 文件中的 H2 SPI 残留。我们只需要对工程进行编译就行不要烧录仅编译不烧录然后再把生成好的 .bin 文件上传到巴法云平台上传好后就变成了版本 2我们再回到工程里打开监视器看到的现象发现了新版本能看到版本号变成了 2到这里就升级成功了如果要接入别的平台也可以试试……
RELATED

相关推荐

【Electron】集成日志

【Electron】集成日志

GitHub path 安装: install npm package:npm install electron-log主进程:electron-log/main /*** file 日志模块 - 统一管理 Electron 主进程日志* description 负责日志目录初始化、文件滚动、级别控制、自动清理以及渲染进程日志捕获。*/import { …

📅 2026/9/12 15:07:30
游戏武器评分系统开发指南:从数据库设计到算法优化

游戏武器评分系统开发指南:从数据库设计到算法优化

这次我们来看一个名为"那个武器应用6分的JCC校草"的项目,从标题看可能涉及游戏武器评分系统或角色评价机制。虽然具体技术细节在现有材料中不够明确,但我们可以基于常见的游戏评分系统和技术实现方案,探讨如何构建一个完整的武器评…

📅 2026/9/12 21:51:41
Ubuntu软件管理全指南:从APT到Snap安装与卸载

Ubuntu软件管理全指南:从APT到Snap安装与卸载

1. Ubuntu软件管理基础认知作为一个长期使用Ubuntu的开发者,我深刻体会到掌握软件安装与卸载技巧对提升工作效率的重要性。与Windows系统不同,Ubuntu采用独特的包管理机制,这套系统既强大又精密,需要我们从底层理解其运作原理。Ub…

📅 2026/7/21 8:46:53
MORE NEWS

更多资讯

📰

从629张小数据集到可部署模型:基于YOLOv8的停车位检测实战指南

简介:面向YOLO系列目标检测学习者的停车位检测数据集,包含629张带标注的实景图像,覆盖不同角度与场景下的车位区域,适合用于车位检测、智能停车等视觉任务的模型训练与效果验证。包内已按训练/验证需求完成数据集划分,…

📰

STM32智能小车核心板:从原理图到PCB布局与固件调试全攻略

简介:面向STM32F103C8T6智能小车开发者的一份核心板硬件工程设计资源。整套图纸用Altium Designer绘制,覆盖原理图、PCB图与元件库,不仅适用于智能小车,也可移植到其他STM32F103C8T6核心板场景,适合嵌入式入门者学习画…

📰

基于Java与MooseFS的分布式文件系统:核心原理与工程实践

简介:这是基于Java与Moosefs的分布式文件系统完整项目资料,面向高校学生与Java开发人员,可用于课程设计、毕业设计及分布式存储技术实战学习。压缩包共200个文件,以jar依赖库、java源码、class编译产物、html页面为主体&#xff0…

📰

YOLOv5+CRNN车牌识别实战:从检测、训练到TensorRT部署

简介:基于YOLOv5与CRNN的中文车牌识别系统,是一份面向计算机相关专业毕业设计、课程设计的高分项目源码包,适合软件工程、人工智能、自动化等方向学生及入门进阶学习者参考。资源已通过导师认可、答辩评审95分,代码全部测试运行成…

📰

PHP卡密验证系统设计:数据表、生成算法与后台管理实战

简介:这是一套基于PHP开发的卡密验证系统,面向需要为在线服务、游戏或软件产品搭建激活码/兑换码验证机制的个人开发者与中小企业。系统提供完整的前端交互与后台管理,覆盖卡密生成与状态管理、订单及支付回调处理、用户权限管理、销售统计等…

📰

Roo Code 连接 LLM Provider 完全指南:从 API Key 到首个 AI Agent 任务

Roo Code 连接 LLM Provider 完全指南:从 API Key 到首个 AI Agent 任务 【免费下载链接】Roo-Code Roo Code gives you a whole dev team of AI agents in your code editor. 项目地址: https://gitcode.com/GitHub_Trending/ro/Roo-Code Roo Code 是一个运…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬