
ESP-IDF介紹
ESP-IDF(Espressif IoT Development Framework)是樂(lè)鑫官方針對(duì)其ESP32系列芯片推出的物聯(lián)網(wǎng)開(kāi)發(fā)框架,旨在幫助用戶(hù)快速開(kāi)發(fā)物聯(lián)網(wǎng)應(yīng)用。以下是對(duì)ESP-IDF的詳細(xì)介紹:
產(chǎn)品概述:ESP-IDF專(zhuān)為ESP32、ESP32-S、ESP32-C和ESP32-H系列SoC設(shè)計(jì),提供了一套完整的軟件開(kāi)發(fā)工具鏈。該框架基于C/C++語(yǔ)言,為用戶(hù)提供了自給自足的SDK,使得開(kāi)發(fā)者可以在這些平臺(tái)上輕松構(gòu)建通用應(yīng)用程序。
核心功能:ESP-IDF支持多種網(wǎng)絡(luò)協(xié)議,包括TCP/UDP、MQTT、HTTP等,滿(mǎn)足不同應(yīng)用場(chǎng)景的需求。同時(shí),它還支持低功耗模式,通過(guò)優(yōu)化電源管理降低待機(jī)功耗,延長(zhǎng)設(shè)備續(xù)航時(shí)間。此外,ESP-IDF還提供了豐富的外設(shè)管腳,如USB、UART、SPI、I2C、PWM、GPIO等,方便與各種傳感器和控制器連接。
開(kāi)發(fā)環(huán)境:ESP-IDF支持Windows、Linux和macOS操作系統(tǒng),用戶(hù)可以選擇手動(dòng)命令行方式或使用VSCode插件進(jìn)行開(kāi)發(fā)環(huán)境的搭建。對(duì)于初學(xué)者來(lái)說(shuō),推薦使用VSCode插件,因?yàn)樗?jiǎn)單便捷,易于上手。
遠(yuǎn)程升級(jí):ESP-IDF支持FOTA(Firmware Over-The-Air)遠(yuǎn)程升級(jí)功能,用戶(hù)可以通過(guò)合宙IOT平臺(tái)或自建服務(wù)器進(jìn)行固件升級(jí),無(wú)需現(xiàn)場(chǎng)操作,大大降低了維護(hù)成本。
應(yīng)用領(lǐng)域:ESP-IDF廣泛應(yīng)用于智慧城市、智能家居、工業(yè)自動(dòng)化、智能交通等多個(gè)領(lǐng)域。其高性能、低功耗和豐富的功能使得它成為物聯(lián)網(wǎng)應(yīng)用的理想選擇。
綜上所述,ESP-IDF作為樂(lè)鑫官方推出的物聯(lián)網(wǎng)開(kāi)發(fā)框架,憑借其強(qiáng)大的功能和廣泛的應(yīng)用領(lǐng)域,已經(jīng)成為物聯(lián)網(wǎng)開(kāi)發(fā)者的首選工具之一。
設(shè)備對(duì)接Fastbee物聯(lián)網(wǎng)云平臺(tái)
目錄
1.目的
本項(xiàng)目基于esp-aliyun SDK進(jìn)行修改,介紹 ESP 設(shè)備對(duì)接Fastbee物聯(lián)網(wǎng)云平臺(tái),阿里云平臺(tái)的具體流程。 主要實(shí)現(xiàn)的功能:
- 支持 <Fastbee物聯(lián)網(wǎng)云平臺(tái)> 配網(wǎng)&接入&控制
- 支持 <云智能> APP 一鍵配網(wǎng)
- 支持 <云智能> APP 控制設(shè)備
- 支持 <天貓精靈智能音箱> 控制設(shè)備
- 支持 <天貓精靈智能音箱> 配網(wǎng)并控制設(shè)備
- 支持 LED 控制(開(kāi)關(guān),顏色等)
- 支持 OTA 升級(jí)
2.硬件準(zhǔn)備
- linux 環(huán)境
用來(lái)編譯 & 燒寫(xiě) & 運(yùn)行等操作的必須環(huán)境。
windows 用戶(hù)可安裝虛擬機(jī),在虛擬機(jī)中安裝 linux。
ESP 設(shè)備
ESP 設(shè)備包括 ESP芯片,ESP模組,ESP開(kāi)發(fā)板等。USB 線
連接 PC 和 ESP 設(shè)備,用來(lái)燒寫(xiě)/下載程序,查看 log 等。
3.云平臺(tái)準(zhǔn)備
4.環(huán)境搭建
如果您熟悉 ESP 開(kāi)發(fā)環(huán)境,可以很順利理解下面步驟; 如果您不熟悉某個(gè)部分,比如編譯,燒錄,需要您結(jié)合官方的相關(guān)文檔來(lái)理解。如您需閱讀 ESP-IDF 編程指南文檔等。
4.1 編譯器環(huán)境搭建
- ESP8266 平臺(tái): 根據(jù)官方鏈接中 Get toolchain,獲取 toolchain
- ESP32 & ESP32S2 平臺(tái):根據(jù)官方鏈接中 工具鏈的設(shè)置,下載 toolchain
toolchain 設(shè)置參考 ESP-IDF 編程指南。
4.2 燒錄工具/下載工具獲取
- ESP8266 平臺(tái):燒錄工具位于 ESP8266_RTOS_SDK 下
./components/esptool_py/esptool/esptool.py
- ESP32 & ESP32S2 平臺(tái):燒錄工具位于 esp-idf 下
./components/esptool_py/esptool/esptool.py
esptool 功能參考:
$ ./components/esptool_py/esptool/esptool.py --help
5.SDK 準(zhǔn)備
- esp-aliyun SDK, 通過(guò)該 SDK 可實(shí)現(xiàn)使用 MQTT 協(xié)議,連接 ESP 設(shè)備到阿里云。
- Espressif SDK
- ESP32 & ESP32S2 平臺(tái): ESP-IDF
- ESP8266 平臺(tái): ESP8266_RTOS_SDK
Espressif SDK 下載好后:
ESP-IDF: 請(qǐng)切換到 v4.2 分支:git checkout v4.2
如果需要使用 ESP32S2 模組,請(qǐng)切換到 v4.2 版本:git checkout v4.2
ESP8266_RTOS_SDK: 請(qǐng)切換到 v3.3 分支:git checkout v3.3
6.編譯 & 燒寫(xiě) & 運(yùn)行
6.1 編譯
6.1.1 導(dǎo)出編譯器
參考 工具鏈的設(shè)置
6.1.2 編譯 demo 示例
由于 esp32 和 esp8266 將會(huì)采用不同的 sdkconfig.defaults 和對(duì)應(yīng)的 partitions.csv,在對(duì)應(yīng)的 make 命令中加入了對(duì)應(yīng)的芯片選項(xiàng),如 chip=esp32 或 chip=esp8266。
當(dāng) chip=esp32 時(shí)將默認(rèn)使用 sdkconfig_esp32.defaults 以及 partitions_esp32.csv。
當(dāng) chip=esp8266 時(shí)將默認(rèn)使用 sdkconfig_esp8266.defaults 以及 partitions_esp8266.csv。
當(dāng)使用 esp32s2 時(shí),將默認(rèn)使用 sdkconfig.defaults ,sdkconfig.defaults.esp32s2 以及 partitions_esp32s2.csv,編譯方式與 8266 & 32 都不一樣,需要使用 cmake 進(jìn)行編譯。
以上需要特別注意。
在 esp-aliyun 目錄下執(zhí)行:
cd fastbee\sdk\ESP-IDF\esp-aliyun
make chip=esp32 defconfig
make menuconfig
如果需要編譯esp32s2版本, 請(qǐng)按照如下步驟編譯:
在 esp-aliyun 目錄下執(zhí)行:
cd fastbee\sdk\ESP-IDF\esp-aliyun
idf.py set-target esp32s2
idf.py menuconfig
- 配置燒寫(xiě)串口
- 配置
WIFI_SSID
,WIFI_PASSWORD
如果需要編譯esp32s3版本, 請(qǐng)按照如下步驟編譯:
在 esp-aliyun 目錄下執(zhí)行:
cd fastbee\sdk\ESP-IDF\esp-aliyun
idf.py set-target esp32s3
idf.py menuconfig
2.生成最終 bin
make -j8
使用 esp32s2/esp32s3 生成 bin
idf.py build
6.2 擦除 & 編譯燒寫(xiě) & 下載固件 & 查看 log
將 USB 線連接好 ESP 設(shè)備和 PC,確保燒寫(xiě)端口正確。
6.2.1[可選] 擦除 flash
make erase_flash
注:無(wú)需每次擦除,擦除后需要重做 6.2.3。
6.2.2 燒錄程序
make flash
使用 esp32s2/esp32s3 擦除 flash
idf.py -p (PORT) erase_flash
6.2.3 燒錄三元組信息
參考 量產(chǎn)說(shuō)明 文檔燒錄三元組 NVS 分區(qū)。
6.2.4 運(yùn)行
make monitor
也可執(zhí)行
make flash monitor
來(lái)編譯燒寫(xiě)和查看 log。