Hallo zusammen,
im Zuge meiner Experimente mit dem ESP8266 hatte ich mir in den Kopf gesetzt folgendes 2.2" TFT Display anzusteuern:
Dabei handelt es sich um ein QVGA Farb-Display mit 240x320 Pixeln Auflösung.
Ich bin da anfangs in ein paar kleinere Fallen getappt, was ich Euch gerne ersparen würde.
Damit das Zusammenspiel zwischen Display und ESP reibungslos klappt ist nämlich eine speziell angepassten ILI9340-Bibliothek nötig (siehe: https://github.com/glennirwin/Adafruit_ILI9340 ).
Also, was wird benötigt?
- die aktuelle Arduino-IDE mit ESP8266-Unterstützung
- die Libraries "Adafruit_GFX.h" und "Adafruit_ILI9340.h"
- ein ESP8266-12
- ein 2.2" TFT-Display
Wenn wir schon so ein schickes Display verbauen, dann sollten wir das auch im Rahmen eines einigermassen sinnvollen Klein-Projektes machen.
Ich habe mir dazu einen Status-Monitor überlegt, der die aktuellen "Lebensdaten" eines Raspi per WLAN übermittelt bekommt und sie optisch einigermassen ansprechend darstellt.
Die Anzeige soll folgende Werte umfassen:
- Datum
- Wochentag
- Uhrzeit
- CPU-Temperatur
- System-Load
- IP-Adresse des Raspi
- freier RAM in MB
- freier Platz auf der SD-Karte in MB
Tja, dann verdrahten wir das ESP-Modul mal mit dem TFT Display.
Die Verbindungen müssen wie folgt hergestellt werden (siehe auch Schaltplan im Anhang):
TFT_DC -> ESP-D5
TFT_CS -> ESP-D4
TFT_MOSI -> ESP-D13
TFT_CLK -> ESP-D14
TFT_RST -> ESP-D16
TFT_MISO -> ESP-D12
TFT_LED -> ESP-D2
TFT_VCC -> ESP-VCC
TFT_GND -> ESP-GND
Und das war's dann auch schon. Überprüft die Verbindungen sicherheitshalber noch einmal.
Im Anhang findet ihr zwei sketches: ESP8266_22TFT_DUMMY.zip und ESP8266_22TFT_NET.zip.
ESP8266_22TFT_DUMMY.zip ist ein Demoprogramm, das die Daten nur simuliert.
ESP8266_22TFT_NET.zip ist der sketch mit Netzwerk-Unterstützung.
Tipp zur Datenanzeige:
Die Refresh-Funktionen können mit einem Parameter für die Vordergrund-Farbe aufgerufen werden:
z.B. tft_TempRefresh( 1000, ILI9340_GREEN, ILI9340_BLACK, ...
Ihr könnt z.B. abhängig von der CPU-Temperatur auch
tft_TempRefresh( 1000, ILI9340_YELLOW, ILI9340_BLACK, ...
oder
tft_TempRefresh( 1000, ILI9340_RED, ILI9340_BLACK, ...
aufrufen und damit die Temeratur auch optisch als kritisch oder zu hoch darzustellen.
Es gibt ESP-Module, bei denen sind GPIO4 und GPIO5 vertauscht!
Falls das bei Euch also nicht klappt, und ihr nur grau-weisses Gegrissel auf dem Display angezeigt bekommt, dann habt ihr eventuell auch ein solches Modul erwischt. Dann einfach die Verbindungen von GPIO4 und GPIO5 tauschen.
[an=History]History:[/an]
19.05.2016: Erste Version fertiggestellt
22.05.2016: Netzwerk-Version fertiggestellt
22.05.2016: Server daemon dazugepackt
25.05.2016: Hinweis auf die vert. GPIOs eingefügt
Na dann wünsche ich Euch mal viel Spass beim Nachbauen,
-ds-