Arduino:ESP32 + I2C SSD1306 OLED 之 Hello World

看到不少ESP32的介紹文章,看中了其wifi和藍牙支持,並且還能使用Arduino IDE開發,於是手癢,從某寶上入了一塊ESP-WROOM-32開發板玩玩。

Arduino環境搭建全程參考了這位兄弟的文章,在此表示感謝:https://blog.csdn.net/wowocpp/article/details/81428228

總結幾個關鍵點:
1、除了較新版的Arduino IDE外,還要安裝python2.7(壞消息:Python 2.7 will reach the end of its life on January 1st, 2020. )。尚未嘗試3.x是否可以。
2、C:\Program Files (x86)\Arduino\hardware\下新建目錄espressif\esp32;
3、從 https://github.com/espressif/arduino-esp32,下載zip,將其內容解壓到C:\Program Files (x86)\Arduino\hardware\espressif\esp32\下;
4、必須以管理員身份運行C:\Program Files (x86)\Arduino\hardware\espressif\esp32\tools\get.exe
5、類似於UNO的13號PIN連接板載LED,我的這款ESP32開發板LED是2號PIN。所以刷blinker演示程序時可以把內建LED改成2。另外ESP32示例下,有一個AnalogOut的LEDSoftwareFade呼吸燈效果也很有意思,可以作爲測試程序。同樣要將LED_PIN改爲2。

==========

接下來就可以實驗I2C OLED了。

接線:Vcc和GND就不多說了,一個3.3V一個GND。D21對應SDA;D22對應SCL。
驅動:庫管理,搜索關鍵字 ssd1306 esp32

參考示例代碼:

#include "SSD1306.h"

SSD1306 display(0x3c, 21, 22);

void setup() {
  display.init();

  display.setFont(ArialMT_Plain_24);
  display.drawString(0, 0, "Hello World");
  display.display();
}

void loop() {
 
}

參考資料:
https://techtutorialsx.com/2017/12/02/esp32-arduino-interacting-with-a-ssd1306-oled-display/