
- 物聯網ESP32教程
- 首頁
- 物聯網簡述
- ESP32介紹
- 在Arduino IDE中安裝ESP32開發板
- 設定RTOS進行雙核和多執行緒操作
- ESP32與MPU6050介面連線
- ESP32與模擬感測器介面連線
- ESP32引數設定
- ESP32 SPIFFS儲存(晶片內建迷你SD卡)
- ESP32與OLED顯示屏介面連線
- ESP32上的WiFi
- 使用HTTP透過WiFi傳輸資料
- 使用HTTPS透過WiFi傳輸資料
- 使用MQTT透過WiFi傳輸資料
- 透過藍牙傳輸資料
- 使用NTP客戶端獲取當前時間
- 執行ESP32韌體的(OTA)更新
- ESP32的應用
- 開發人員的後續步驟
- 物聯網ESP32實用資源
- 快速指南
- 實用資源
- 討論
ESP32與OLED顯示屏介面連線
OLED與ESP32的組合非常流行,有些ESP32開發板集成了OLED。但是,我們將假設您將使用獨立的OLED模組和您的ESP32開發板。如果您有一個OLED模組,它可能看起來像下面的圖片。

將OLED顯示模組連線到ESP32
與我們在前一章中討論的MPU6050模組一樣,OLED模組通常也使用I2C進行通訊。因此,連線方式將與MPU6050模組類似。您需要將SDA線連線到ESP32的21引腳,SCL線連線到22引腳,GND連線到GND,VCC連線到3V3引腳。

OLED顯示屏庫
有許多庫可用於將OLED顯示屏與ESP32連線。您可以隨意使用任何您覺得舒適的庫。在本例中,我們將使用ThingPulse和Fabrice Weinberg編寫的“ESP8266和ESP32 OLED驅動程式,用於SSD1306顯示屏”。您可以從工具->管理庫中安裝此庫。它也可以在GitHub上找到。

程式碼演練
由於我們剛剛安裝的庫,程式碼變得非常簡單。我們將執行一個計數器程式碼,它只會計算自上次復位以來的秒數並將它們列印在OLED模組上。程式碼可以在GitHub上找到。
我們首先包含SSD1306庫。
#include "SSD1306Wire.h"
接下來,我們定義OLED引腳及其I2C地址。請注意,有些OLED模組包含額外的復位引腳。一個很好的例子是ESP32 TTGO開發板,它帶有內建的OLED顯示屏。對於該開發板,16引腳是復位引腳。如果您將外部OLED模組連線到ESP32,則很可能不會使用復位引腳。0x3c的I2C地址通常對所有OLED模組都是通用的。
//OLED related variables #define OLED_ADDR 0x3c #define OLED_SDA 21//4 //TTGO board without SD Card has OLED SDA connected to pin 4 of ESP32 #define OLED_SCL 22//15 //TTGO board without SD Card has OLED SCL connected to pin 15 of ESP32 #define OLED_RST 16 //Optional, TTGO board contains OLED_RST connected to pin 16 of ESP32
接下來,我們建立OLED顯示物件和計數器變數。
SSD1306Wire display(OLED_ADDR, OLED_SDA, OLED_SCL); int counter = 0;
之後,我們定義兩個函式。一個用於初始化OLED顯示屏(如果您的OLED模組不包含復位引腳,則此函式是冗餘的),另一個用於在OLED顯示屏上列印文字訊息。showOLEDMessage()函式將OLED顯示區域分解為3行,並要求3個字串,每行一個。
void initOLED() { pinMode(OLED_RST, OUTPUT); //Give a low to high pulse to the OLED display to reset it //This is optional and not required for OLED modules not containing a reset pin digitalWrite(OLED_RST, LOW); delay(20); digitalWrite(OLED_RST, HIGH); } void showOLEDMessage(String line1, String line2, String line3) { display.init(); // clears screen display.setFont(ArialMT_Plain_16); display.drawString(0, 0, line1); // adds to buffer display.drawString(0, 20, line2); display.drawString(0, 40, line3); display.display(); // displays content in buffer }
最後,在setup中,我們只需初始化OLED顯示屏,在loop中,我們只需利用顯示屏的前兩行顯示計數器。
void setup() { // put your setup code here, to run once: initOLED(); } void loop() { // put your main code here, to run repeatedly showOLEDMessage("Num seconds is: ", String(counter), ""); delay(1000); counter = counter+1; }
就是這樣。恭喜您在OLED顯示屏上顯示了您的第一個文字語句。