Skip to content

ESP-IDF开发 ​

ESP-IDF 开发示意图

ESP-IDF介绍 ​

ESP-IDF(Espressif IoT Development Framework)是乐鑫官方针对其ESP32系列芯片推出的物联网开发框架,旨在帮助用户快速开发物联网应用。以下是对ESP-IDF的详细介绍:

  1. 产品概述:ESP-IDF专为ESP32、ESP32-S、ESP32-C和ESP32-H系列SoC设计,提供了一套完整的软件开发工具链。该框架基于C/C++语言,为用户提供了自给自足的SDK,使得开发者可以在这些平台上轻松构建通用应用程序。

  2. 核心功能:ESP-IDF支持多种网络协议,包括TCP/UDP、MQTT、HTTP等,满足不同应用场景的需求。同时,它还支持低功耗模式,通过优化电源管理降低待机功耗,延长设备续航时间。此外,ESP-IDF还提供了丰富的外设管脚,如USB、UART、SPI、I2C、PWM、GPIO等,方便与各种传感器和控制器连接。

  3. 开发环境:ESP-IDF支持Windows、Linux和macOS操作系统,用户可以选择手动命令行方式或使用VSCode插件进行开发环境的搭建。对于初学者来说,推荐使用VSCode插件,因为它简单便捷,易于上手。

  4. 远程升级:ESP-IDF支持FOTA(Firmware Over-The-Air)远程升级功能,用户可以通过合宙IOT平台或自建服务器进行固件升级,无需现场操作,大大降低了维护成本。

  5. 应用领域:ESP-IDF广泛应用于智慧城市、智能家居、工业自动化、智能交通等多个领域。其高性能、低功耗和丰富的功能使得它成为物联网应用的理想选择。

综上所述,ESP-IDF作为乐鑫官方推出的物联网开发框架,凭借其强大的功能和广泛的应用领域,已经成为物联网开发者的首选工具之一。

设备对接Fastbee物联网云平台 ​

目录 ​

1.目的 ​

本项目基于esp-aliyun SDK进行修改,介绍 ESP 设备对接Fastbee物联网云平台,阿里云平台的具体流程。 主要实现的功能:

  • 支持 <Fastbee物联网云平台> 配网&接入&控制
  • 支持 <云智能> APP 一键配网
  • 支持 <云智能> APP 控制设备
  • 支持 <天猫精灵智能音箱> 控制设备
  • 支持 <天猫精灵智能音箱> 配网并控制设备
  • 支持 LED 控制(开关,颜色等)
  • 支持 OTA 升级

2.硬件准备 ​

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

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

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

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

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 功能参考:

js
$ ./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 目录下执行:

shell
cd fastbee\sdk\ESP-IDF\esp-aliyun
make chip=esp32 defconfig
make menuconfig

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

在 esp-aliyun 目录下执行:

shell
cd fastbee\sdk\ESP-IDF\esp-aliyun
idf.py set-target esp32s2
idf.py menuconfig
  • 配置烧写串口
  • 配置 WIFI_SSID, WIFI_PASSWORD

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

在 esp-aliyun 目录下执行:

shell
cd fastbee\sdk\ESP-IDF\esp-aliyun
idf.py set-target esp32s3
idf.py menuconfig

2.生成最终 bin

shell
make -j8

使用 esp32s2/esp32s3 生成 bin

shell
idf.py build

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

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

6.2.1[可选] 擦除 flash

sh
make erase_flash

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

6.2.2 烧录程序

sh
make flash

使用 esp32s2/esp32s3 擦除 flash

sh
idf.py -p (PORT) erase_flash

6.2.3 烧录三元组信息 参考 SDK 中 aliyunsdk/config/mass_mfg/README.md 的量产说明烧录三元组 NVS 分区。

6.2.4 运行 ​

sh
make monitor

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

蜂信物联 | fastbee.cn