Wiener Linien Echtzeitmonitor mit E-Paper Display

March 15, 2019 Thomas Tippold

Wiener Linien Echtzeitmonitor mit E-Paper Display

Idee

Ziel des Projekts war es, einen Echtzeitmonitor für eine beliebige Haltestelle der Wiener Linien zu realisieren. Der Benutzer soll mit einem Blick die nächste Abfahrtszeit und die verbleibenden Minuten ablesen können.
Durch Betätigung eines Buttons soll der Modus gewechselt und die Wetterdaten von zwei zuvor ausgewählten Orten angezeigt werden.
Die Umsetzung sollte mittels eines E-Paper Displays erfolgen, um eine spätere Weiterentwicklung zu einem eigenständigen Gerät mit Batteriebetrieb zu ermöglichen.

Benutzung

Sobald der ESP32 mit einer Stromquelle verbunden wird, verbindet das Board sich mit dem eingestellten WLAN, ruft die Echtzeitdaten der Wiener Linien ab und gibt diese am E-Paper Display aus.

Wenn der Benutzer den Button am Steckbrett drückt, wechselt das Gerät in den Wettermodus, wo die momentane Temperatur und Wetterlage (z.B. sonnig, regnerisch, etc. ) von zwei ausgewählten Städten angezeigt wird.

Die Daten der Wiener Linien bzw. Wetterdaten werden automatisch alle 10 Sekunden oder bei Moduswechsel aktualisiert.

Außerdem wird nach erfolgreicher Verbindung mit dem WLAN, die lokale IP-Adresse des ESP32 auf dem eingebauten OLED Display angezeigt. Navigiert der Benutzer über einen Browser zu dieser Adresse, so kann er dort über eine Webmaske eine neue Plattform-Nummer (RBL) angeben und somit die angezeigte Öffi-Station bzw. Linie wechseln.

Hardware & APIs

Als Microcontroller wird ein ESP32 Board mit eingebautem OLED Display verwendet. Die Serverfunktion wird mittels der “ESPAsyncWebServer” Library eingerichtet, um Einstellungen vornehmen zu können. Die Weboberfläche ist als lokale HTML-Datei im SPIFFS Dateisystem des ESP32 gespeichert.

Zur Anzeige der Echtzeitdaten kommt ein 4.2″ E-Paper Display der Marke Waveshare zum Einsatz, welches mit der Library “GxEPD2” angesteuert wird. Diese verwendet Fonts der “Adafruit GFX” Library.

Die Echtzeitdaten der Wiener Linien werden über eine API als JSON-Objekt zur Verfügung gestellt. Die Nummer der Haltestelle bzw. Plattform (RBL Nummer) muss hierfür im Vorfeld ermittelt und beim JSON-Request mitgesendet werden. Weiters wird ein API Key benötigt, welcher über die Website der Wiener Linien beantragt werden muss.
Die Wetterdaten werden ebenfalls im JSON-Format von OpenWeatherMap bezogen. Die Echtzeitdaten werden mithilfe der “ArduinoJSON” Library geparsed.

Der ESP32 wird auf einem Steckbrett mit einem Button (zum wechseln der Modi) installiert.

Komplette Hardwareliste

  • ESP32 Board (mit integriertem OLED Display)
  • Waveshare 4.2″ E-Paper Display (schwarz/weiß)
  • Kabel für Steckbrett
  • 1 Hardwarebutton
  • Steckbrett

APIs

  • Wiener Linien Echtzeitdaten API
  • OpenWeatherMap API

Wichtige Libraries

  • ArduinoJSON
  • GxEPD2
  • Adafruit GFX Fonts
  • ESPAsyncWebServer
  • SPIFFS

Dieses Projekt wurde im Wintersemester 2018/2019 für die Lehrveranstaltung Tangible User Interfaces realisiert.

, , , , , , , , electronics, interaction, interactive