使用樂鑫 Web IDE 助力物聯(lián)網(wǎng)開發(fā)
樂鑫 Web IDE 是基于?Eclipse Theia?的框架,支持?ESP-IDF VS Code 插件同時具備多項(xiàng)輔助工具。您可以觀看我們在 Espressif DevCon22 上的演示視頻,了解它的實(shí)際應(yīng)用。


若您此前沒有接觸過 Eclipse Theia,它是一個開源框架,為開發(fā)人員提供了一個平臺,可以使用 TypeScript 編程語言構(gòu)建云和桌面集成開發(fā)環(huán)境(IDE)工具。Eclipse Theia 的用戶界面基于流行的 Visual Studio Code。此外,開發(fā)人員可以利用 VS Code 提供的擴(kuò)展插件,或者使用?OpenVSX?注冊表中的擴(kuò)展插件。
樂鑫 Web IDE 不僅支持?ESP-IDF VS Code 插件的大部分功能,還針對芯片串口連接開發(fā)了特定指令。為此,我們研發(fā)了兩款附加實(shí)用工具:
ESP-IWIDC (Espressif IDF Web Desktop Companion)?支持通過 websocket 連接 Web IDE 與計(jì)算機(jī)上連接的串口設(shè)備。此工具基于 Python 開發(fā),提供設(shè)備燒錄和串口監(jiān)視功能。?
esptool-js?作為 ESP-IDF esptool 的 TypeScript 實(shí)現(xiàn),支持使用?WebSerial API?與芯片通信。此工具以 NPM 包形式發(fā)布,可在任何 JS 工程中使用。?
為了您能便捷地使用上述工具,Web IDE 提供了下列可用選項(xiàng):
對于 ESP-IWIDC,您可以在?Remote(遠(yuǎn)程)菜單下,選擇?Remote Flash?(遠(yuǎn)程燒錄)或Remote Monitor(遠(yuǎn)程監(jiān)控)。對于 esptool-js,您可以在?Remote(遠(yuǎn)程)菜單下,選擇?Flash with Webserial?(Webserial 燒錄)或?Monitor with Webserial?(Webserial 監(jiān)控)。請?jiān)谶M(jìn)行燒錄或監(jiān)控前指定對應(yīng)的串口設(shè)備。
樂鑫 Web IDE 支持以下兩種運(yùn)行方式
直接從源代碼編譯運(yùn)行;
使用附帶的 Dockerfile 構(gòu)建一個 Docker 容器
編譯源碼運(yùn)行(需使用 NodeJS 和 yarn 編譯工程)
在瀏覽器中打開?127.0.0.1:8080(推薦使用 Chrome 瀏覽器)
2. 使用 Docker 運(yùn)行
拉取最新的 docker 鏡像,命令如下:
或從 IDF-Web-IDE 倉庫構(gòu)建 docker 鏡像,命令如下:
在瀏覽器中打開127.0.0.1:8080(推薦使用 Chrome 瀏覽器)
如需使用?ESP-IWIDC,獲取 Windows 的可執(zhí)行文件,或使用倉庫中的 Python 腳本。
運(yùn)行可執(zhí)行文件,啟動 ESP-IWIDC:
查看可用端口
如果希望直接使用 ESP-IWIDC 的 Python 腳本,請確保已安裝所需的 Python 軟件包,安裝命令如下:
使用 esptool-js 命令則無需額外安裝任何內(nèi)容。
使用 Docker 容器的優(yōu)勢在于,容器中已配置 ESP-IDF 及支持 ESP32 的 QEMU 分支,無需額外為 IDE 配置ESP-IDF。打開任意 ESP-IDF 工程即可開始開發(fā)!
Clang OpenVSX 插件為 Espressif Web IDE 提供 C/C++ 語言支持。該插件通過 build/compile_commands.json 文件實(shí)現(xiàn) Go to declaration 功能以及提供對其他語言的支持。
小結(jié)
歡迎使用樂鑫 Web IDE,您可以隨時聯(lián)系我們?(espressif.com/sales)?提出改進(jìn)意見!您還可以瀏覽我們之前的博客,了解更多有關(guān)ESP-IDF VS Code 插件的信息。

相關(guān)鏈接:
ESP-IDF Web IDE
https://theia-ide.org
Eclipse Theia
https://theia-ide.org
ESP-IDF VS Code 插件
https://github.com/espressif/vscode-esp-idf-extension
OpenVSX 注冊表
https://open-vsx.org
ESP-IWIDC (Espressif IDF Web Desktop Companion)
https://github.com/espressif/iwidc/
esptool-js
https://github.com/espressif/esptool-js
WebSerial API
https://wicg.github.io/serial/
最新的 docker 鏡像
https://hub.docker.com/r/espbignacio/idf-web-ide
使用?ESP-IWIDC 獲取Windows 的可執(zhí)行文件
https://github.com/espressif/iwidc/releases
Clang OpenVSX 插件
https://open-vsx.org/extension/llvm-vs-code-extensions/vscode-clangd