VScode+esp-idf:编译腾讯物联网控制台ESP32例程(esp-qcloud)

ESP32通过腾讯云物联网控制台实现智能LED灯的编程指南
本文档详细介绍了如何在VSCode+ESP-IDF V4.4环境中,利用腾讯物联网控制台的例程对ESP32进行智能LED灯的开发。首先从码云仓库下载esp-qcloud源代码并放入ESP-IDF的example目录,接着创建并配置led_light工程,修改CMakeLists.txt文件以指定QCLOUD_PATH。然后配置工程,包括选择开发板、设置GPIO、输入设备三元组和选择配网方式。最后,编译工程并下载程序到ESP32板,解决可能出现的头文件找不到问题。此外,还提供了使用腾讯连连小程序测试ESP设备的指引。


腾讯物联网控制台专门为ESP32开发一个开源的例程,针对智能灯应用,可以用腾讯连连小程序控制。这篇文章我们介绍如何在vscode+esp-idfV4.4的环境下,进行可视化开发。

1.下载esp-qcloud源代码

1.码云仓库:esp-qcloud
2.github仓库:esp-qcloud
我用的是码云的仓库,下载后解压后生成文件夹 《esp-qcloud-master》,改成 《esp-qcloud》,放到 esp-idf安装目录的 《example》 文件夹里面。以我的路径为例,是这样的(后面我们要用到这个路径 《$ENV{IDF_PATH}/examples/esp-qcloud》):
在这里插入图片描述
放在 《example》 文件夹里面的好处是,后面我们创建例程时,会拷贝一份到我们的工作目录下面,然后我们修改代码时不会影响到原文件。

2.创建led_light新工程

esp-qcloud有一个example,名字为《led_light》路径 如下:
在这里插入图片描述
我们就要对这个工程进行编译。

2.1拷贝led_light例程

在命令面板搜索 “example”
在这里插入图片描述
选择 Use current ESP-IDF,然后路径《E:\esp32\esp-idf\examples》下面所有例程都被列出来:
在这里插入图片描述
找到《led_light》,点击蓝色按键,会跳出一个选择目标文件夹的窗口,我们选择好后,会拷贝《led_light》到目标文件夹。

2.2修改《CMakeLists.txt》

因为几乎每个文件夹都有一个《CMakeLists.txt》,是 《led_light》 下面的《CMakeLists.txt》。

正确的文件:《./led_light/CMakeLists.txt》
错误的文件:《./led_light/main/CMakeLists.txt》

修改的目的是指定 QCLOUD_PATH的路径。根据第一章我们放置《esp-qcloud》文件的位置来设置。
《CMakeLists.txt》文件内容(重点在第14,15行):

# The following lines of boilerplate have to be in your project's CMakeLists
# in this exact order for cmake to work correctly
cmake_minimum_required(VERSION 3.5)
add_compile_options(-fdiagnostics-color=always)

if(EXISTS ${CMAKE_CURRENT_LIST_DIR}/../../config/)
    set(QCLOUD_PATH ${CMAKE_CURRENT_LIST_DIR}/../..)
elseif(EXISTS ${CMAKE_CURRENT_LIST_DIR}/components/qcloud)
    set(QCLOUD_PATH ${CMAKE_CURRENT_LIST_DIR}/components/qcloud)
elseif(EXISTS ${CMAKE_CURRENT_LIST_DIR}/components/esp-qcloud)
    set(QCLOUD_PATH ${CMAKE_CURRENT_LIST_DIR}/components/esp-qcloud)
elseif(EXISTS $ENV{IDF_PATH}/components/qcloud)
    set(QCLOUD_PATH $ENV{IDF_PATH}/components/qcloud)
elseif(EXISTS $ENV{IDF_PATH}/examples/esp-qcloud)
    set(QCLOUD_PATH $ENV{IDF_PATH}/examples/esp-qcloud)
else()
    message(FATAL_ERROR "Please configure the path of `QCLOUD_PATH`")
endif()

if(NOT DEFINED IDF_TARGET)
    set(IDF_TARGET "esp32")
endif()

# Add QCloud components and other common application components
# This example uses an extra component for common functions such as led and button.
set(EXTRA_COMPONENT_DIRS ${QCLOUD_PATH} 
                         ${QCLOUD_PATH}/examples/common_components/led
                         ${QCLOUD_PATH}/examples/common_components/button)

# Performance Options
if(NOT DEFINED PERF)
    set(PERF "defaults")
endif()
set(SDKCONFIG_DEFAULTS ${QCLOUD_PATH}/config/sdkconfig_defaults/sdkconfig.${PERF}.${IDF_TARGET})

include($ENV{IDF_PATH}/tools/cmake/project.cmake)
string(REGEX REPLACE ".*/\(.*\)" "\\1" CURDIR ${CMAKE_CURRENT_SOURCE_DIR})
project(${CURDIR})

git_describe(PROJECT_VERSION ${COMPONENT_DIR})
message("Project commit: " ${PROJECT_VERSION})

在这里插入图片描述

3.配置工程

此时,我们可以开始配置工程:
在这里插入图片描述

3.1配置开发板及GPIO

这个工程提供3种开发板选项,我们选择自定义开发板,根据实际情况选择GPIO:
在这里插入图片描述

3.2输入腾讯物联网控制台设备三元组

现在腾讯物联网控制台创建一个设备,创建方法见文章 《ESP32:腾讯云物联网控制台创建iot设备(使用腾讯连连控制ESP32)》。把这个设备的参数填到这里:
在这里插入图片描述

3.3指定配网方式

这里提供了3种配网:

  1. smart config(AirKiss)
    2.soft AP
    3.blufi

我们就选第一种:
在这里插入图片描述
到此,配置完成,保存配置,可以编译工程。
在这里插入图片描述

4.编译工程,下载程序到目标板

4.1编译工程

在这里插入图片描述
编译完成,生成各种文件:
在这里插入图片描述

4.2下载bin到目标板

使目标板进入下载模式,点击下载,等待下载完成,按复位键运行程序。
在这里插入图片描述

5.填坑:找不到头文件

尽管编译没有出错,但是vscode还是提示有几个错误:
在这里插入图片描述

在文件《 c_cpp_properties.json》加入esp-qcloud所在路径 “${config:idf.espIdfPathWin}/examples/esp-qcloud/**”
在这里插入图片描述
注意,有2个地方增加相同的内容。
重新编译一下,就可以消除错误。

6.使用腾讯连连小程序测试ESP设备

详情见:《ESP32:腾讯云物联网控制台创建iot设备(使用腾讯连连控制ESP32)

<think> 我们正在处理一个关于在Windows 11系统下使用VSCodeESP-IDF进行第一次编译时卡住的问题。根据常见问题,这通常是由于环境配置、依赖下载或工具安装问题引起的。以下将分步骤提供解决方案。 ### 步骤1: 检查ESP-IDF环境配置 确保已正确安装ESP-IDF插件并设置环境。在VSCode中,按下`F1`打开命令面板,输入`ESP-IDF: Configure ESP-IDF extension`,选择`Advanced`模式进行安装。确保安装路径无空格和特殊字符,且选择正确的版本(推荐稳定版)[^1]。 ### 步骤2: 设置工具安装源 由于国内网络问题,建议将工具下载源设置为国内镜像。在配置ESP-IDF扩展时,选择`Custom`设置,在`Espressif IoT Development Framework Setup`界面中,找到`Tools mirrors`,选择`China (Gitee)`或`China (Espressif Systems)`镜像[^2]。 ### 步骤3: 检查环境变量 确保系统环境变量中已添加必要的路径。通常包括: - `IDF_PATH`:指向ESP-IDF安装目录 - `PATH`:添加`%IDF_PATH%\tools\bin`和`%IDF_PATH%\components\esptool_py\esptool`等 ### 步骤4: 启用详细日志 在编译时卡住,可以通过启用详细日志来定位问题。在VSCodeESP-IDF插件设置中,将日志级别设置为`Debug`。然后重新编译,查看输出窗口中的详细错误信息。 ### 步骤5: 手动下载工具 如果卡在下载工具(如`xtensa-esp32-elf`)的步骤,可以尝试手动下载: 1. 从官方或镜像站点下载所需工具包(如`https://dl.espressif.com/dl/`或`https://github.com/espressif`)。 2. 将工具包解压到`%USERPROFILE%\.espressif\tools`目录下。 3. 重新运行编译命令。 ### 步骤6: 禁用杀毒软件和防火墙 临时禁用Windows Defender或其他杀毒软件,因为它们可能阻止编译过程中的文件访问或网络连接。 ### 步骤7: 使用离线安装包 如果网络问题持续,考虑下载离线安装包(从ESP-IDF GitHub releases页面获取)并按照官方文档进行离线安装。 ### 步骤8: 更新ESP-IDF和工具 确保使用最新版本的ESP-IDF和工具。在VSCode命令面板中运行`ESP-IDF: Update ESP-IDF Tools`。 ### 步骤9: 检查Python环境 ESP-IDF需要Python 3.7以上版本。确保系统默认Python版本符合要求,且已安装必要的依赖: ```bash python -m pip install -r %IDF_PATH%/requirements.txt ``` ### 步骤10: 清理并重建 尝试清理项目并重新编译: 1. 在VSCode终端中运行: ```bash idf.py fullclean idf.py build ``` §§相关问题§§ 1. 如何验证ESP-IDF环境配置是否正确? 2. 在Windows 11下使用VSCode开发ESP32有哪些常见问题? 3. 如何解决ESP-IDF编译过程中出现的Python依赖错误? </think> 针对在Windows 11系统下使用VSCodeESP-IDF首次编译卡住的问题,以下是分步解决方案: ### 1. **检查网络连接和镜像源设置** ESP-IDF首次编译需要下载大量工具链和依赖库(约1GB),国内用户建议设置镜像源: ```bash # 设置环境变量(在PowerShell执行) $env:IDF_GITHUB_ASSETS = "dl.espressif.com/github_assets" $env:GIT_SSL_NO_VERIFY = "1" ``` 或在ESP-IDF安装目录的`tools/idf_tools.py`中添加: ```python url_prefix = "https://dl.espressif.com/dl" ``` ### 2. **禁用实时防护** Windows Defender可能拦截编译进程: - 打开`Windows安全中心` → `病毒和威胁防护` → `管理设置` - 临时关闭`实时保护` - 添加VSCodeESP-IDF目录到排除列表 ### 3. **更新基础依赖** ```bash # 在VSCode终端执行 python -m pip install --upgrade pip pip install -r %IDF_PATH%/requirements.txt ``` ### 4. **修复环境变量** 在VSCode终端手动激活环境: ```bash # 替换路径为你的实际安装位置 . $env:USERPROFILE/esp/esp-idf/export.ps1 ``` ### 5. **清理并重建项目** ```bash idf.py fullclean idf.py build -v # -v显示详细日志 ``` ### 6. **关键目录权限** 确保以下目录有完全控制权限: - `C:\Users\<用户名>\.espressif` - ESP-IDF安装目录 - 项目目录 (右键文件夹 → 属性 → 安全 → 编辑 → 添加用户权限) ### 常见卡住点解决方案 | 卡住阶段 | 现象 | 解决方案 | |---------|------|---------| | **下载工具链** | 长时间无进度 | 手动下载`xtensa-esp32-elf`解压到`.espressif/tools` | | **Python依赖** | 提示缺少模块 | 运行`pip install -r requirements.txt` | | **编译bootloader** | 卡在`.config` | 检查`make menuconfig`是否被拦截 | | **链接阶段** | 内存不足 | 关闭其他程序,增加虚拟内存 | ### 验证安装 创建测试项目验证: ```bash idf.py create-project test_build cd test_build idf.py build ``` > **注意**:首次编译通常需要30-60分钟,如超过2小时无响应需干预。建议使用有线网络连接[^1]。
评论 12
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值