README.md

    ESP 设备对接阿里云指南

    目录

    0.介绍

    乐鑫是高集成度芯片的设计专家,专注于设计简单灵活、易于制造和部署的解决方案。乐鑫研发和设计 IoT 业内集成度高、性能稳定、功耗低的无线系统级芯片,乐鑫的模组产品集成了自主研发的系统级芯片,因此具备强大的 Wi-Fi 和蓝牙功能,以及出色的射频性能。

    阿里云物联网套件是阿里云专门为物联网领域的开发人员推出的,其目的是帮助开发者搭建安全性能强大的数据通道,方便终端(如传感器、执行器、嵌入式设备或智能家电等等)和云端的双向通信。全球多节点部署让海量设备全球范围都可以安全低延时接入阿里云IoT Hub,安全上提供多重防护保障设备云端安全,性能上能够支撑亿级设备长连接,百万消息并发。物联网套件还提供了一站式托管服务,数据从采集到计算到存储,用户无需购买服务器部署分布式架构,用户通过规则引擎只需在web上配置规则即可实现采集+计算+存储等全栈服务。总而言之,基于物联网套件提供的服务,物联网开发者可以快速搭建稳定可靠的物联网平台。

    1.目的

    本文基于 linux 环境,介绍 ESP 设备对接阿里云平台的具体流程,供读者参考。当前只维护 smart_lightsolo 示例,这两个示例包含了另外三个示例的功能,建议直接选择这两个示例 demo。

    2.硬件准备

    • linux 环境
      用来编译 & 烧写 & 运行等操作的必须环境。

    windows 用户可安装虚拟机,在虚拟机中安装 linux。

    • ESP 设备
      ESP 设备包括 ESP芯片ESP模组ESP开发板等。

    • USB 线
      连接 PC 和 ESP 设备,用来烧写/下载程序,查看 log 等。

    3.阿里云平台准备

    根据阿里官方文档,在阿里云平台创建产品,创建设备,同时自动产生 product key, product secert, device name, device secret
    product key, product secert, device name, device secret 将在 6.2.3 节用到。

    4.环境搭建

    如果您熟悉 ESP 开发环境,可以很顺利理解下面步骤; 如果您不熟悉某个部分,比如编译,烧录,需要您结合官方的相关文档来理解。如您需阅读 ESP-IDF 编程指南文档等。

    4.1 编译器环境搭建

    • ESP8266 平台: 根据官方链接Get toolchain,获取 toolchain
    • ESP32 & ESP32S2 平台:根据官方链接工具链的设置,下载 toolchain

    toolchain 设置参考 ESP-IDF 编程指南

    4.2 烧录工具/下载工具获取

    • ESP8266 平台:烧录工具位于 ESP8266_RTOS_SDK./components/esptool_py/esptool/esptool.py
    • ESP32 & ESP32S2 平台:烧录工具位于 esp-idf./components/esptool_py/esptool/esptool.py

    esptool 功能参考:

    $ ./components/esptool_py/esptool/esptool.py --help

    5.SDK 准备

    Espressif SDK 下载好后:
    ESP-IDF: 请切换到 v4.2 分支: git checkout v4.2 如果需要使用 ESP32S2 模组,请切换到 v4.2 版本: git checkout v4.2 ESP8266_RTOS_SDK: 请切换到 v3.3 分支: git checkout v3.3

    6.编译 & 烧写 & 运行

    6.1 编译

    6.1.1 导出编译器

    参考 工具链的设置

    6.1.2 编译 demo 示例

    由于 esp32 和 esp8266 将会采用不同的 sdkconfig.defaults 和对应的 partitions.csv,在对应的 make 命令中加入了对应的芯片选项,如 chip=esp32 或 chip=esp8266。

    当 chip=esp32 时将默认使用 sdkconfig_esp32.defaults 以及 partitions_esp32.csv。

    当 chip=esp8266 时将默认使用 sdkconfig_esp8266.defaults 以及 partitions_esp8266.csv。

    当使用 esp32s2 时,将默认使用 sdkconfig.defaults ,sdkconfig.defaults.esp32s2 以及 partitions_esp32s2.csv,编译方式与 8266 & 32 都不一样,需要使用 cmake 进行编译。

    以上需要特别注意。

    在 esp-aliyun 目录下执行:

    cd examples/solutions/smart_light
    make chip=esp32 defconfig
    make menuconfig

    如果需要编译esp32s2版本, 请按照如下步骤编译:

    执行如下命令,以 solo 示例为例,目前只支持 solo 和 smart_light 示例。

    cd examples/solo/example_solo
    idf.py set-target esp32s2
    idf.py menuconfig

    p1

    • 配置烧写串口
    • 配置 WIFI_SSID, WIFI_PASSWORD

    如果需要编译esp32s3版本, 当前只支持 master 版本。请按照如下步骤编译:

    执行如下命令,以 solo 示例为例,目前只支持 solo 和 smart_light 示例。

    cd examples/solo/example_solo
    idf.py set-target esp32s3
    idf.py menuconfig

    2.生成最终 bin

    make -j8

    使用 esp32s2/esp32s3 生成 bin

    idf.py build

    6.2 擦除 & 编译烧写 & 下载固件 & 查看 log

    将 USB 线连接好 ESP 设备和 PC,确保烧写端口正确。

    6.2.1[可选] 擦除 flash

    make erase_flash

    注:无需每次擦除,擦除后需要重做 6.2.3。

    6.2.2 烧录程序

    make flash

    使用 esp32s2/esp32s3 擦除 flash

    idf.py -p (PORT) erase_flash

    6.2.3 烧录三元组信息

    参考 量产说明 文档烧录三元组 NVS 分区。

    6.2.4 运行

    make monitor

    如将 ESP8266 拨至运行状态,即可看到如下 log: log 显示了 ESP8266 基于 TLS 建立了与阿里云的安全连接通路,接着通过 MQTT 协议订阅和发布消息,同时在阿里云控制台上,也能看到 ESP8266 推送的 MQTT 消息。

    p2

    p3

    p4

    也可执行 make flash monitor 来编译烧写和查看 log。

    项目简介

    Aliyun Iotkit-embedded, support esp32 & esp8266.

    🚀 Github 镜像仓库 🚀

    源项目地址

    https://github.com/espressif/esp-aliyun

    发行版本

    当前项目没有发行版本

    贡献者 7

    开发语言

    • C 99.7 %
    • C++ 0.2 %
    • CMake 0.1 %
    • Makefile 0.1 %