ESP32是一係列低成本,低功耗的單片機微控製器,集成了Wi-Fi和雙模藍牙。 ESP32係列采用 Tensilica Xtensa LX6 微處理器,包括雙核心和單核版本,內(nei) 置天線開關(guan) ,RF變換器,功率放大器,低噪聲接收放大器,濾波器和電源管理模塊。
ESP32 由總部位於(yu) 上海的本土芯片設計公司樂(le) 鑫信息科技創建和開發,由台積電采用 40 納米技術製造。它是 ESP8266 微控製器的後繼產(chan) 品。
ESP8266 在2014年橫空出世後,迅速引起國外眾(zhong) 多電子創客的注意。最初的 ESP8266 是在一個(ge) 名為(wei) ESP-01 的模塊上引入的,它的英文文檔很少,所以它是當時的能力在很大程度上是未知的。文檔被翻譯成英文後,許多實驗者很快就意識到了 ESP8266 的強大功能,並很快變得非常流行。
ESP32 的其他特性包括:
- 多達 18 個 12 位模數轉換器。
- 兩個 8 位數模轉換器。
- 10 個電容式觸摸開關傳感器。
- 四個 SPI 通道。
- 兩個 I2C 接口。
- 兩個 I2S 接口(用於數字音頻)。
- 三個用於通信的 UART。
- 多達 8 個通道的 IR 遙控器。
- 多達 16 個 LED PWM(脈衝寬度調製)通道。
- 集成霍爾效應傳感器。
- 超低功耗模擬前置放大器。
- 一個內部低壓差穩壓器。
ESP32 模塊有很多種,他們(men) 幾乎都適用本文的教程。
其中許多開發板上帶有 USB 連接器,插上 USB 線就能編程。有些板沒有此功能,需要外部 FTDI 適配器進行編程。
這些模塊大都基於(yu) ESP32-WROOM 芯片。
ESP32 DEV KIT 和 ESP32 NODEMCU 開發板是比較受歡迎的兩(liang) 款開發板。
ESP32 WROOM DevKitC v4 開發板上帶有樂(le) 鑫的雙核 SoC 模塊 WROOM-32D 或者 WROOM-32U。該板具有工作頻率為(wei) 2.4 GHz 的 高達 150 Mb/s 的速度的 Wi-Fi 連接和 BLE 藍牙技術。ESP32 WROOM DevKitC v4 板載 MCU 的工作頻率高達 240MHz。電路板的 I/O 引腳與(yu) 兩(liang) 側(ce) 的 2.54 插針相連。用戶可以通過跳線連接外圍設備或將開發板固定在麵包板上以構建應用程序。
下麵是ESP32 WROOM DevKitC v4 開發板的布局:
ESP32-DevKitC V4(板載 ESP32-WROOM-32)
ESP32 開發環境ESP32 可以通過很多種開發環境開發。Visual Studio Code、Arduino 以及樂(le) 鑫自己出的 IDF 等等。
對於(yu) 初學者來說,一個(ge) 簡單的入門方法是使用熟悉的 Arduino IDE。雖然這不一定是使用 ESP32 的最佳環境,但它的優(you) 勢在於(yu) 網上有大把的教程。
本文使用 Arduino IDE 進行實驗。
配置 Arduino IDE 的 ESP32 開發環境為(wei) 了能夠使用 Arduino IDE 開發 ESP32,您需要向 Arduino IDE 板管理器添加一個(ge) 額外的源,然後安裝 ESP32 板。
開發板管理器
為(wei) 了在開發板管理器中加入 ESP32 開發板,我們(men) 需要先添加 ESP32 開發板附加網址。
依次打開菜單-》文件-》首選項。把下麵網址粘貼到 *附加開發板管理網址 中:
“https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json”
添加附加開發板管理網址
再安裝 ESP32 開發板。依次打開菜單-》工具-》開發板-》開發板管理器:
開發板管理器入口
在開發板管理器中輸入 esp32 搜索出 esp32 開發板來,然後安裝之:
安裝 ESP32 開發板
正在下載
因為(wei) 下載的時候需要連接 github, 如果你等了半天也沒下載下來,你可能需要翻牆。
下載完成後,別忘了在Arduino IDE 中選擇 DOIT ESP32 DEVKIT V1 作為(wei) 開發板
實驗電路如下圖所示,搭建電路。請注意,ESP32 引腳由其 GPIO 名稱而不是引腳號指定,因為(wei) 不同的 ESP32 板將具有不同的引腳號。
ESP32 初體(ti) 驗電路圖
如果使用5mm或3mm直徑的直插 LED,對於(yu) 降壓電阻,150 到 470 歐姆之間的任何值都可以正常工作。
現在我們(men) 都連接好了,是時候嚐試我們(men) 的第一個(ge) 程序了。
ESP32 閃燈程序學習(xi) 一門新的編程語言時,一般都是用輸出 “Hello World" 作為(wei) 第一個(ge) 一個(ge) 程序。
閃燈程序就是硬件領域裏的 ”Hello World"。一般你學習(xi) 單片機或 MCU 的第一個(ge) 程序都是閃燈程序。
下麵是一個(ge) Arduino 編程環境下的閃燈程序:
/* ESP32 Blink esp32_blink.ino Rewrite of classic Blink sketch for ESP32 Use LED on GPIO2 */ // LED on GPIO2 int ledPin = 2; void setup() { // Set LED as output pinMode(ledPin, OUTPUT); // Serial monitor setup Serial.begin(115200); } void loop() { Serial.print("Hello"); digitalWrite(ledPin, HIGH); delay(500); Serial.println(" world!"); digitalWrite(ledPin, LOW); delay(500); }燒寫(xie) 程序
首先要做與(yu) Arduino 完全相同的事情——點擊上傳(chuan) 按鈕(帶有向右箭頭的按鈕)。 這將啟動編譯器。 你可能會(hui) 注意到編譯 ESP32 程序比編譯 Arduino 草圖需要更長的時間。
觀看 Arduino IDE 底部的狀態屏幕。編譯過程完成後,它將打印“Connecting”,然後是一串點:
上傳(chuan) 成功提示
運氣好的話,你會(hui) 看到 LED 開始閃爍了起來。全程不需要按下開發板上的 BOOT 或者 EN 按鈕。
有的開發板,需要你在看到 “Connecting...”提示後,按下 BOOT 按鈕(有時標記為(wei) IO0)並按住它,直到您看到上傳(chuan) 進度。
上傳(chuan) 成功後,程序會(hui) 自動啟動。有的開發板需要按 ENABLE 或 RESET 按鈕來啟動程序,我的開發板不需要此步驟。
一閃一閃亮晶晶,滿天都是小星星
總結今天我們(men) 學習(xi) 了如何用 Arduino IDE 開發 ESP32 程序,主要難點在於(yu) 在 Arduino IDE 中下載 ESP32 開發板上,程序倒是很簡單。