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


腾讯物联网控制台专门为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)

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值