ESP32是一系列低成本,低功耗的單片機(jī)微控制器,集成了Wi-Fi和雙模藍(lán)牙。 ESP32系列采用 Tensilica Xtensa LX6 微處理器,包括雙核心和單核版本,內(nèi)置天線開關(guān),RF變換器,功率放大器,低噪聲接收放大器,濾波器和電源管理模塊。
ESP32 由總部位于上海的本土芯片設(shè)計(jì)公司樂鑫信息科技創(chuàng)建和開發(fā),由臺(tái)積電采用 40 納米技術(shù)制造。它是 ESP8266 微控制器的后繼產(chǎn)品。
ESP8266 在2014年橫空出世后,迅速引起國外眾多電子創(chuàng)客的注意。最初的 ESP8266 是在一個(gè)名為 ESP-01 的模塊上引入的,它的英文文檔很少,所以它是當(dāng)時(shí)的能力在很大程度上是未知的。文檔被翻譯成英文后,許多實(shí)驗(yàn)者很快就意識(shí)到了 ESP8266 的強(qiáng)大功能,并很快變得非常流行。
ESP32 的其他特性包括:
- 多達(dá) 18 個(gè) 12 位模數(shù)轉(zhuǎn)換器。
- 兩個(gè) 8 位數(shù)模轉(zhuǎn)換器。
- 10 個(gè)電容式觸摸開關(guān)傳感器。
- 四個(gè) SPI 通道。
- 兩個(gè) I2C 接口。
- 兩個(gè) I2S 接口(用于數(shù)字音頻)。
- 三個(gè)用于通信的 UART。
- 多達(dá) 8 個(gè)通道的 IR 遙控器。
- 多達(dá) 16 個(gè) LED PWM(脈沖寬度調(diào)制)通道。
- 集成霍爾效應(yīng)傳感器。
- 超低功耗模擬前置放大器。
- 一個(gè)內(nèi)部低壓差穩(wěn)壓器。
ESP32 模塊有很多種,他們幾乎都適用本文的教程。
其中許多開發(fā)板上帶有 USB 連接器,插上 USB 線就能編程。有些板沒有此功能,需要外部 FTDI 適配器進(jìn)行編程。
這些模塊大都基于 ESP32-WROOM 芯片。
ESP32 DEV KIT 和 ESP32 NODEMCU 開發(fā)板是比較受歡迎的兩款開發(fā)板。
ESP32 WROOM DevKitC v4 開發(fā)板上帶有樂鑫的雙核 SoC 模塊 WROOM-32D 或者 WROOM-32U。該板具有工作頻率為 2.4 GHz 的 高達(dá) 150 Mb/s 的速度的 Wi-Fi 連接和 BLE 藍(lán)牙技術(shù)。ESP32 WROOM DevKitC v4 板載 MCU 的工作頻率高達(dá) 240MHz。電路板的 I/O 引腳與兩側(cè)的 2.54 插針相連。用戶可以通過跳線連接外圍設(shè)備或?qū)㈤_發(fā)板固定在面包板上以構(gòu)建應(yīng)用程序。
下面是ESP32 WROOM DevKitC v4 開發(fā)板的布局:
ESP32-DevKitC V4(板載 ESP32-WROOM-32)
ESP32 開發(fā)環(huán)境ESP32 可以通過很多種開發(fā)環(huán)境開發(fā)。Visual Studio Code、Arduino 以及樂鑫自己出的 IDF 等等。
對于初學(xué)者來說,一個(gè)簡單的入門方法是使用熟悉的 Arduino IDE。雖然這不一定是使用 ESP32 的最佳環(huán)境,但它的優(yōu)勢在于網(wǎng)上有大把的教程。
本文使用 Arduino IDE 進(jìn)行實(shí)驗(yàn)。
配置 Arduino IDE 的 ESP32 開發(fā)環(huán)境為了能夠使用 Arduino IDE 開發(fā) ESP32,您需要向 Arduino IDE 板管理器添加一個(gè)額外的源,然后安裝 ESP32 板。
開發(fā)板管理器
為了在開發(fā)板管理器中加入 ESP32 開發(fā)板,我們需要先添加 ESP32 開發(fā)板附加網(wǎng)址。
依次打開菜單-》文件-》首選項(xiàng)。把下面網(wǎng)址粘貼到 *附加開發(fā)板管理網(wǎng)址 中:
“https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json”
添加附加開發(fā)板管理網(wǎng)址
再安裝 ESP32 開發(fā)板。依次打開菜單-》工具-》開發(fā)板-》開發(fā)板管理器:
開發(fā)板管理器入口
在開發(fā)板管理器中輸入 esp32 搜索出 esp32 開發(fā)板來,然后安裝之:
安裝 ESP32 開發(fā)板
正在下載
因?yàn)橄螺d的時(shí)候需要連接 github, 如果你等了半天也沒下載下來,你可能需要翻墻。
下載完成后,別忘了在Arduino IDE 中選擇 DOIT ESP32 DEVKIT V1 作為開發(fā)板
實(shí)驗(yàn)電路如下圖所示,搭建電路。請注意,ESP32 引腳由其 GPIO 名稱而不是引腳號(hào)指定,因?yàn)椴煌?ESP32 板將具有不同的引腳號(hào)。
ESP32 初體驗(yàn)電路圖
如果使用5mm或3mm直徑的直插 LED,對于降壓電阻,150 到 470 歐姆之間的任何值都可以正常工作。
現(xiàn)在我們都連接好了,是時(shí)候嘗試我們的第一個(gè)程序了。
ESP32 閃燈程序學(xué)習(xí)一門新的編程語言時(shí),一般都是用輸出 “Hello World" 作為第一個(gè)一個(gè)程序。
閃燈程序就是硬件領(lǐng)域里的 ”Hello World"。一般你學(xué)習(xí)單片機(jī)或 MCU 的第一個(gè)程序都是閃燈程序。
下面是一個(gè) Arduino 編程環(huán)境下的閃燈程序:
/* 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); }燒寫程序
首先要做與 Arduino 完全相同的事情——點(diǎn)擊上傳按鈕(帶有向右箭頭的按鈕)。 這將啟動(dòng)編譯器。 你可能會(huì)注意到編譯 ESP32 程序比編譯 Arduino 草圖需要更長的時(shí)間。
觀看 Arduino IDE 底部的狀態(tài)屏幕。編譯過程完成后,它將打印“Connecting”,然后是一串點(diǎn):
上傳成功提示
運(yùn)氣好的話,你會(huì)看到 LED 開始閃爍了起來。全程不需要按下開發(fā)板上的 BOOT 或者 EN 按鈕。
有的開發(fā)板,需要你在看到 “Connecting...”提示后,按下 BOOT 按鈕(有時(shí)標(biāo)記為 IO0)并按住它,直到您看到上傳進(jìn)度。
上傳成功后,程序會(huì)自動(dòng)啟動(dòng)。有的開發(fā)板需要按 ENABLE 或 RESET 按鈕來啟動(dòng)程序,我的開發(fā)板不需要此步驟。
一閃一閃亮晶晶,滿天都是小星星
總結(jié)今天我們學(xué)習(xí)了如何用 Arduino IDE 開發(fā) ESP32 程序,主要難點(diǎn)在于在 Arduino IDE 中下載 ESP32 開發(fā)板上,程序倒是很簡單。