Een iets groter OLED-display dan de SSD1306, eveneens via I2C, met dezelfde code bruikbaar op ESP8266 én ESP32.
Dit is een iets groter display (1.3"), eveneens eenvoudige aansluiting via dezelfde pinnen als I2C. In vergelijking met de SSD1306-code hierboven hebben we hier de gebruikte bibliotheek gewijzigd, en het interval voor tijdsynchronisatie weggelaten. Ook deze code kan zonder wijzigingen zowel op de ESP8266 als op de ESP32 gezet worden. Uiteraard moet SCL en SDA naar resp. D1 (GPIO5) en D2 (GPIO4) [ESP8266] of naar 22 en 21 [ESP32].
Verbindingen:
ESP32 ---> SDD1306 / SH1106
===========================
GND --------> GND
3V3 --------> VCC
G21 --------> SDA
G22 --------> SCL
===========================
ESP8266 -> SDD1306 / SH1106
===========================
GND --------> GND
3V3 --------> VCC
D2 --------> SDA
D1 --------> SCL
Sketch:
#include <WiFiManager.h> // https://github.com/tzapu/WiFiManager/
#include <Adafruit_SH110X.h> // https://github.com/adafruit/Adafruit_SH110X
#include <Fonts/FreeSansBold12pt7b.h>
#include <Fonts/FreeSansBold18pt7b.h>
WiFiManager myWiFi;
Adafruit_SH1106G display = Adafruit_SH1106G(128, 64, &Wire, -1); // GND -> GND, 3V3 -> VCC, esp32: G21 -> SDA, G22 -> SCL
struct tm tInfo; // https://cplusplus.com/reference/ctime/tm/ esp8266: D1 -> SCL, D2 -> SDA
void setup() {
Serial.begin(115200); // watch serial monitor in case of new WiFi-connection
display.begin(0x3C, true); // Address 0x3C default
display.setTextColor(1); // white = 1, black = 0
display.setFont(&FreeSansBold12pt7b);
myWiFi.autoConnect("SSD1306_ESP"); // connect ESP to new wifi via GSM or PC if new WiFi-connection
configTzTime("CET-1CEST,M3.5.0,M10.5.0/3", "be.pool.ntp.org");
}
void loop() {
getLocalTime(&tInfo); // sntp sync at startup & every hour from then on (esp8266) - every 3 hours (esp32)
display.clearDisplay();
display.drawRect(0, 0, 128, 40, 1);
display.setFont(&FreeSansBold18pt7b);
display.setCursor(4, 31);
display.printf("%02d:%02d", tInfo.tm_hour, tInfo.tm_min);
display.setFont(&FreeSansBold12pt7b);
display.printf(":%02d", tInfo.tm_sec);
display.setCursor(4, 63);
display.printf("%02d-%02d-%04d", tInfo.tm_mday, 1 + tInfo.tm_mon, 1900 + tInfo.tm_year);
display.display();
}
Benieuwd naar andere displays? Bekijk het volledige overzicht met o.a. TM1637, SSD1306, ST7735, ST7789, e-paper en geïntegreerde displays zoals de Lilygo T-Display en de Waveshare ESP32-S3.