作者 TK Hareendran,特約作家
我第一次涉足 IoT 時使用了 Espressif ESP8266,這是一款內置 32 位 MCU 和 2.4-GHz Wi-Fi 的 SoC。從那時起,我使用了許多基于微控制器的不同模塊變體。因此,當它更強大的兄弟ESP32降落在我的土地上時,我不得不嘗試一下。
樂鑫 ESP32是一款很有前途的支持 Wi-Fi 和藍牙的 SoC,具有大量 GPIO。最近,我(在 eBay 上)購買了兩個通用 ESP32 開發板進行一些實驗。每個都由 Expressif ESP-WROOM-32 Wi-Fi 和藍牙模塊供電,該模塊包含 ESP32 SoC、閃存和芯片天線。樂鑫提供多種開發模塊/開發板來幫助用戶評估 ESP32 芯片的功能,而 ESP-Wroom-32 是用于安裝在最終用戶產品中的最小模塊。
圖 1:ESP32 SoC 集成了雙 CPU 內核和外圍協處理器以及藍牙和 Wi-Fi 無線電元件。(來源:Expressif)
ESP-WROOM-32根據數據表,ESP-WROOM-32 是一款功能強大的 38 針 Wi-Fi/藍牙/BLE MCU 模塊,采用可擴展和自適應的 ESP32-D0WDQ6 芯片。該芯片的核心包含兩個低功耗 Xtensa 32 位 LX6 微處理器以及一個超低功耗 (ULP) 協處理器。兩個 CPU 內核可以單獨控制,它們的時鐘頻率在 80 MHz 到 240 MHz 之間可調。用戶還可以關閉 CPU 并使用 ULP 協處理器來處理 A/D 轉換并監控外設的值變化或閾值交叉。
圖 2:ESP-Wroom-32 模塊。
藍牙、藍牙 LE 和 Wi-Fi 的集成確保該模塊可以針對廣泛的應用。Wi-Fi 允許較大的物理范圍并通過 Wi-Fi 路由器直接連接到互聯網,而藍牙允許用戶方便地連接到手機或廣播低能量信標以進行檢測。ESP32 的睡眠電流 ESP32 可忽略不計(小于 5 μA),使其適用于大多數電池供電和可穿戴電子應用。
我從eBay上得到的被稱為“ESP32開發板”的產品實際上只是基于ESP-WROOM-32模塊的小型方便的插接板,還有一些附加組件。這些分接板通過公頭暴露模塊的I/O,并采用SiLab的CP2102芯片,通過微型USB端口進行串行至USB調試。USB至串行編程接口還為該板提供電源。板載3.3伏穩壓器芯片、按鈕和LED。
兩塊板都提供幾乎相似的功能,但具有不同的引腳配置。第一個,通常稱為DevKitC,具有 38 針 (2 x 19) 布局,尺寸為 55 x 29 x 14 毫米。第二個,有時稱為DOIT板,具有 30 針 (2 x 15) 布局,尺寸為 52 x 29 x 14 毫米。
圖 3:我從 eBay 獲得的開發模塊。
我選擇了這些易于使用的 ESP32 開發板,盡管它們相對來說有點貴(至少是模塊成本的兩倍)。如果您要將 ESP-WROOM-32 模塊集成到(商業)項目中,則無需任何其他東西即可使用它。但是對于原型設計和與面包板一起使用,您很可能需要像這樣的特殊分線板/測試臺來暴露 GPIO。模塊的齒形安裝孔意味著連接 I/O 所需的焊接工作并不容易。因此,嘗試使用裸模塊可能對許多人來說是個麻煩,對少數人來說可能是一種有趣的體驗。板子方便多了。
顛簸的起飛開始使用滑板很快。因為我已經在我的 PC 中安裝了 USB-to-Serial 轉換器驅動程序(VCP 驅動程序),所以我可以簡單地在開發板和我的計算機之間連接一條 micro-USB-to-USB 電纜。我可以立即看到 Windows 為該板分配了唯一的端口標識符。
因為官方 ESP32 網站提到了 Arduino,所以我決定使用Espressif 發布的ESP32 芯片的 Arduino 內核。該軟件解釋了如何使 ESP32 與 Arduino IDE 一起工作。不幸的是,這并非一帆風順。首先,提供的指示既可憐又令人生畏(誠然,現在一切都還處于初步階段)。其次,ESP32 內核是基于 Xtensa 的,而不是我們熟悉的 ARM/AVR。所以他們還沒有 Arduino 板管理器安裝選項。然而,在一些最初的麻煩和混亂之后,我設法使一切正常,但為了新手,我沒有詳細記錄我的步驟。(對不起。)
簡而言之,該過程(在 64 位 Windows 上測試)是這樣的:
確保隨身攜帶最新版本的Arduino IDE
安裝Git GUI
啟動Git GUI并選擇Clone Existing Repository
選擇源(https://github.com/espressif/arduino-esp32.git)和目標(您的目標目錄),然后單擊克隆開始克隆存儲庫
轉到目標文件夾,打開工具(…/Arduino/hardware/espressif/esp32/tools),然后雙擊get.exe
get.exe 完成后,您應該會在命名目錄中看到所有必需的文件
圖 4:克隆 Git ESP32 存儲庫。
接下來,將 ESP32 板插入計算機的 USB 端口并等待驅動程序安裝。之后,運行 Arduino IDE,選擇您的開發板,然后選擇 COM 端口。最后,編譯并上傳您的代碼。
對于我的首次測試,我選擇了 GetCHIPID 樣本,因為它只是從板上檢索芯片 ID(實際上是 MAC 地址)。我可以上傳代碼,它確實返回了我的芯片 ID — BC7306A4AE30。一次短暫的試飛,但很成功!
圖 5:成功的首次測試檢索到芯片的 ID 代碼。
總結ESP32 是一款功能極其強大的支持物聯網的微控制器,使用 ESP32 開發板以非常令人愉悅的電路板設計展示了這種強大功能,適合初學者和高級用戶。大多數便宜的“n”歡快的 ESP32 開發板都由 ESP-Wroom-32 模塊供電,這是當今物聯網應用的絕佳選擇之一。ESP32 旨在用于擊敗無線應用(Wi-Fi 或 BLE 項目),但目前大多數開發板上的 Arduino 平臺無法充分發揮其強大的功能。不過,這是我注意到的唯一缺點。
圖 6:完全兼容 Arduino 的 ESP32 開發板。
也就是說,尋找易于使用的 ESP-Wroom-32 平臺以使用 Arduino 進行快速原型設計的 Arduino 粉絲(甚至是新手)可以嘗試DFRobot (未經 FCC 認證)的“ FireBeetle ”。另一個漂亮的補充是來自“Explore Embedded”——印度的“ Hornbill ”。兩者都聲稱與 Arduino IDE 完全兼容。
審核編輯 黃昊宇
評論