OLED SSD1306

Aus wiki
Version vom 26. Dezember 2021, 14:46 Uhr von Admin (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen
OLED Display

Ein OLED Display des Typs "SSD1306" kann an das arduclock Board angeschlossen bzw. angelötet werden. Hierfür muss die Firmware ggf. modifiziert werden. Um ein OLED Display hinzuzufügen, musst du die Zeile 206 (Zeile 325 in der Qlockwork mp3 Version) in der "Configuration.h" auskommentieren. Das OLED Display ist möglicherweise in der arduclock Firmware nicht voraktiviert. Es lassen sich in den Zeilen 208-221 (bzw. Zeile 327-340) einige Einstellungen vornehmen.


Hinweis: Das OLED Display wird von Firmware "plus" unterstützt.


Ein sehr kleines OLED Display, welches sich durch I2C mit dem arduclock Board verbinden läßt. Bei einer Auflösung von 128 x 64 Pixel zeigt es zusätzliche Informationen sehr scharf dar. So kann z.B. das Datum, die WLAN Signalstärke, die Raumtemperatur, das Wetter, die Uhrzeit (in Worten), Alarme oder die Uptime angezeigt werden. Die Textfarbe des OLED Displays ist weiss. Es gibt aber auch Displays mit einer blauen Darstellung.


Technische Daten:

   Schnittstelle: I2C Bus
   Auflösung: 128 x 64 Pixel
   Textfarbe: weiss/blau
   Bildschirmdiagonale: 0,96 Zoll / ca. 2,44 cm


Wichtig: Damit das Display funktioniert und erkannt wird, benötigst du die aktuellste arduclock OLED Firmware und zwingend diese angepasste Bibliothek:

Bibliothek ssd1306

Entpacke diese Datei und kopiere den Ordner dorthin, wo auch deine anderen Bibiliotheken abgelegt sind. Sollten beim Entpacken Dateien vorhanden sein die mit "._" beginnen, können diese gelöscht werden. Es handelt sich um Schattendateien bzw. um Indizierungsdateien die MacOS erstellt hat.



PCB Board

Jetzt zeigt deine Uhr über ein kleines Display zusätzliche Informationen dynamisch an. Eine kleine Auswahl der Betriebsmodi zeigt dir das folgende Bild. Individuell Anpassbar durch vier verschiedene Schriftgrößen. Auch Logos können integriert werden. Die letzte Anzeige wird im RAM gespeichert. So dass nach jedem Reboot der Uhr zur letzten Anzeige gewechselt wird. In der Funktion drawClock() können die Anzeigemodi bearbeitet werden.

Folgende Schriften stehen zur Verfügung:

   display.setFont(ArialMT_Plain_10);
   display.setFont(ArialMT_Plain_16);
   display.setFont(ArialMT_Plain_24);
   display.setFont(DejaVu_Sans_Mono_12);


Logos bzw. Bilder werden als xbm in der image.h Datei abgelegt. Drei Beispiele sind bereits integriert. Wie du deine eigenen Logos und Bilder speichern kannst, steht in diesem Link beschrieben:

http://blog.squix.org/2015/05/esp8266-nodemcu-how-to-create-xbm.html


Hier geht es zum Bild-Converter: https://www.online-utility.org/image_converter.jsp

(Select other output format xbm...)


Hinweis: Ich weiß nicht, ob sich Standbilder (Bilder/Logos) in das Display einbrennen. Bisher fehlt mir noch die Langzeiterfahrung. Aber so ein Display kostet wenige Euro und ist schnell ersetzt. EDIT: Bisher kein Einbrennen festgestellt.




Configuration.h

Zeile 206/325

#define USE_DISPLAY // Aktiviert das Display


Zeile 208/327

#define FLIP_DISPLAY true // Die Anzeige wird gedreht

Zeile 209/328

#define INVERT_DISPLAY false // true invertiert die Anzeige

Zeile 210/329

#define KONTRAST 255 // Einstellung des Kontrast/Helligkeit 0-255

Zeile 211/330

#define I2C_ADDR 0x3C // Hardware Adresse Standard

Zeile 212/331

#define USE_LDR true // Steuerung über LDR


Zeile 213/332

#define DISPLAY_BUTTON // Aktiviert einen mechanischen Schalter

Zeile 214/333

#define PIN_DISPLAY_BUTTON 00 // Falls ein freier PIN zur Verfügung steht


Hinweis: Ein Button für das Display muss nicht vorhanden sein. Gesteuert wird vorzugsweise über die Weboberfläche (siehe Bild: Web Oberfläche). 
Zusätzlich kann in der Configuration.h Datei die Display Anzeige konfiguriert werden:


Zeile 217/336

#define BME_DISPLAY(DHT_DISPLAY) // Innentemperatur + Luftfeuchtigkeit

Zeile 218/337

#define WEATHER_DISPLAY // Außentemperatur + Luftfeuchtigkeit + Wetter

Zeile 219/338

#define RSSI_DISPLAY // Signalstärke

Zeile 220/339

#define DATE_DISPLAY // Datum

Zeile 221/340

#define UPTIME_DISPLAY // Uptime



Weitere Anzeigemodi

Zeile 224/343

#define COINBASE // BITCOIN Ticker "api.coindesk.com"


Zeile 226/345

#define DAYCOUNTER // Tageszähler

#define DATE_UTC 1514674800 // Ein beliebiges Datum in UNIX Time eingeben.


Zeile 350

#define PARTICLE // Unterstützung für PM2,5 Sensor




Web Oberfläche

Durch die Aktivierung des Displays in der Configuration.h Datei mit #define USE_DISPLAYändert sich das Aussehen des "Time Buttons" in der Weboberfläche. Hiermit kann man durch das OLED Display schalten. Ausschalten lässt sich das Display zusammen mit den LEDs über die "Night off/Day on" Funktion oder über den Button zum Ein- Ausschalten der LEDs.
















PCB Board





























Der Anschluß des Displays erfolgt über vier Kabel. Die PINs werden an die Pads am arduclock Board angelötet. Tipp: Du kannst die PIN Pads auch auf der Rückseite des arduclock Boards verwenden. Nur das jüngste arduclock Board (Rev. R) besitzt Pads für den I2C Anschluß (SDA/SCL). Hier kannst du dir die Pinbelegung anschauen PCB Board.


Hier gehts zu den technischen Angaben zum SSD1306 Display: https://cdn-shop.adafruit.com/datasheets/SSD1306.pdf