Skip to content

TencentCloud/tc-iot-sdk-embedded-for-esp8266

Folders and files

NameName
Last commit message
Last commit date

Latest commit

abbf070 · Jun 21, 2023

History

42 Commits
Jun 21, 2023
May 31, 2022
May 31, 2022
May 31, 2022
May 31, 2022
May 31, 2022
May 31, 2022
Jul 18, 2022
May 31, 2022
May 31, 2022
May 31, 2022
May 31, 2022
May 31, 2022

Repository files navigation

腾讯云物联网开发平台设备端C-SDK for ESP8266

本文档介绍如何将腾讯云物联网开发平台C-SDK移植到乐鑫 ESP8266 RTOS 平台,并提供可运行的samples。对于物联网开发平台的详细使用,请参考官网文档

本项目基于NodeMCU ESP8266开发板,关于开发板的详细介绍,请参考这里

例程支持情况:

samples 说明 备注
mqtt_sample MQTT连接例程
data_template_sample 数据模板例程 使用codegen.py生成
dynreg_sample 动态注册例程
light_data_template_sample 智能灯示例
wifi_config_sample 配网示例 支持softAP、SmartConfig和Air kiss配网
raw_data_sample 二进制数据传输示例

快速开始

1. 获取 ESP8266_RTOS_SDK 以及编译器

本项目基于**Linux(ubuntu)**环境进行开发,关于ESP8266开发的基础知识,请参考其 开发指南

本项目基于ESP8266_RTOS_SDK v3.1版本开发,如果使用更高版本可能会报错,请自行解决。

git clone --single-branch -b release/v3.1 https://github.com/espressif/ESP8266_RTOS_SDK.git

ESP8266_RTOS_SDK编译需要python及pip,并且需要安装以下python库及软件

sudo apt-get install git wget flex bison gperf python python-pip python-setuptools cmake ninja-build ccache libffi-dev libssl-dev
pip install pyserial
pip install xlrd

下载ESP8266_RTOS_SDK后需要将IDF_PATH路径设置到环境变量中

# 设置IDF_PATH
export IDF_PATH=/mnt/d/UGit/ESP8266_RTOS_SDK

编译toolchain请参考ESP8266_RTOS_SDK/README.md,推荐使用

在Linux安装toolchain之后,需要将toolchain的bin目录添加到PATH环境变量中

# 设置编译工具链
export PATH=$PATH:/opt/xtensa-lx106-elf/bin

2.腾讯云物联网开发平台 C-SDK 代码

项目默认已经包含了一个腾讯云IoT Explorer C-SDK v3.1.9的代码。如需要更新可参考文档底部说明

3.工程目录结构

在下载了ESP8266 RTOS SDK之后,应该具有以下目录结构(部分文件没有展示出来)

├── components
│   ├── qcloud_iot_c_sdk
│   │   ├── component.mk
│   │   ├── include
│   │   ├── platform
│   │   └── sdk_src
│   └── qrcode
│       ├── component.mk
│       ├── include
│       └── src
├── main
│   ├── Kconfig.projbuild
│   ├── board_ops.c
│   ├── board_ops.h
│   ├── component.mk
│   ├── main.c
│   ├── ota_esp
│   │   ├── qcloud_iot_ota_esp.c
│   │   └── qcloud_iot_ota_esp.h
│   ├── qcloud_iot_demo.h
│   └── samples
│       ├── data_template
│       ├── dynreg_dev
│       ├── gateway
│       ├── mqtt
│       ├── raw_data
│       ├── scenarized
│       └── wifi_config
├── ota_data_initial.bin
├── partitions_qcloud_demo.csv
├── sdkconfig
├── sdkconfig.old
├── sdkconfig.qcloud
├── Makefile
├── README.md
├── build

工程的组织结构参考ESP8266_FREE_RTOS风格,其中components文件夹里面存放了两个组件

├── components # 组件文件夹
│   ├── qcloud_iot_c_sdk # 腾讯云物联网开发平台执行C-SDK代码抽取后的源文件
│   └── qrcode           # 生成二维码组件

main文件夹存放了项目入口函数main.c和一些开发板硬件初始化函数,其中samples文件夹里面存放了腾讯云物联网开发平台的各个示例文件。

│   └── samples				# 示例文件夹
│       ├── data_template	# 数据模板示例
│       ├── dynreg_dev		# 动态注册示例
│       ├── gateway			# 网关示例
│       ├── mqtt			# mqtt示例
│       ├── raw_data		# hex传输示例
│       ├── scenarized		# 场景示例,如智能灯
│       └── wifi_config		# 配网示例

4.修改设备三元组信息

components/qcloud_iot/qcloud_iot_c_sdk/platform/HAL_Device_freertos.c里面修改在腾讯云物联网平台注册的设备信息(目前仅支持密钥设备):

/* Product Id */
static char sg_product_id[MAX_SIZE_OF_PRODUCT_ID + 1]    = "PRODUCT_ID";
/* Device Name */
static char sg_device_name[MAX_SIZE_OF_DEVICE_NAME + 1]  = "YOUR_DEV_NAME";
/* Device Secret */
static char sg_device_secret[MAX_SIZE_OF_DEVICE_SECRET + 1] = "YOUR_IOT_PSK";

5.编译及烧写

  1. 执行make menuconfig可进行功能配置,以MQTT sample为例,填入当前网络环境的WiFi名称和密码

menuconfig

  1. 再执行make -j8就可以在build目录下面生成镜像。

make

  1. 烧写镜像可以在Linux下面执行make flash命令,或者使用乐鑫在Windows下面的FLASH_DOWNLOAD_TOOLS工具

download

  1. 烧写成功之后可以重启开发板运行程序

mqtt_sample_run

固件升级

  1. 本例程提供了完整的固件升级示例,首先通过menuconfig 选择Factory app, two OTA definitions),然后使能Enable OTA support on ESP

  1. 如果你想在自己的项目中使能OTA功能,出了上述配置之外,在初始化完成mqtt后,还需要调用enable_ota_task具体的使用方法,请参考light_data_template_sample.c示例。
    rc = enable_ota_task(&sg_devInfo, IOT_Template_Get_MQTT_Client(client), "1.0.3");
    if (rc)
        Log_e("Start OTA task failed!");
  1. 烧录时,注意选择build\partitions_two_ota.bin

更新腾讯云物联网开发平台SDK版本

  1. 从GitHub拉取最新的代码,建议拉取release版本代码
# 腾讯云物联网开发平台 IoT Explorer
git clone https://github.com/tencentyun/qcloud-iot-explorer-sdk-embedded-c.git
  1. 执行代码抽取,生成本项目的组件

code_gen

  1. 替换需要更新的源文件

    将生成的output\qcloud_iot_c_sdk拷贝到本项目的components\qcloud_iot_c_sdk

file_copy

注意:文件拷贝过去后需要仔细检查接口,有些接口需要重新适配!

AT 固件

最新AT固件请移步乐鑫官网下载

配套视频教程