Zugzielanzeiger für die Modellbahn: vier OLED-Displays am ESP32

Kurz gesagt: Ein ESP32-S3 steuert bis zu vier kleine OLED-Displays
(SSD1306, 128×32 Pixel) – genug für die Zugzielanzeiger eines Bahnhofs. Jedes
Display hängt an einem eigenen I²C-Bus. Deshalb dürfen alle dieselbe Adresse
behalten, und du musst nirgends einen Jumper löten. Steckbrett und Netzteil
brauchst du nicht: Das USB-Kabel versorgt das Modul. Den Fahrplan rechnet die
kostenlose App SceneFX und schickt die Zeilen per WLAN aufs Display.

Neu hier? Aus RailFX ist SceneFX geworden. Den
RailFX-Zugzielanzeiger mit Live-Daten der Deutschen Bahn
gibt es weiterhin. Das SceneFX-Modul geht einen anderen Weg: Es bekommt seine
Firmware aus der App und zeigt einen Fahrplan, der zu deiner Anlage passt –
programmieren musst du nichts.

Warum vier getrennte Busse?

Die günstigen 0,91-Zoll-OLEDs mit SSD1306 haben fast immer die feste Adresse
0x3C, oft ohne Jumper zum Umstellen. Zwei identische Displays an einem I²C-Bus
kommen sich deshalb in die Quere. Die übliche Lösung ist ein Multiplexer wie der
TCA9548A – ein Bauteil mehr, eine Fehlerquelle mehr.


Sieh dir jetzt meinen neuen Arduino-Videokurs an: Jetzt ansehen!


Das Anzeige-Modul macht es einfacher: Der ESP32-S3 legt für jedes Display einen
eigenen Bus auf eigene Pins. Der erste läuft über die I²C-Hardware des Chips,
die anderen drei per Software-I²C. Für zwei Zeilen Text auf 128×32 Pixeln ist
das schnell genug. Ein angenehmer Nebeneffekt: Weil an jedem Bus nur ein Display
hängt, gibt es keine parallel geschalteten Pull-up-Widerstände.

Bauteile

Die Teile bekommst du bei den üblichen Elektronik-Händlern (Bezugsquellen:
Bauteile für Arduino – hier bekommst du Nachschub).

Teil Menge Hinweis
Waveshare ESP32-S3 Mini 1 Stiftleisten anlöten
USB-C-Datenkabel 1 muss Daten übertragen – und versorgt das Modul auch im Betrieb
Steckbrücken weiblich-weiblich einige Displays und ESP32 haben beide Stiftleisten, dazwischen kommt kein Steckbrett
OLED-Display SSD1306 128×32, I²C 1–4 die vierpolige Ausführung (GND, VCC, SCL, SDA), Adresse 0x3C

Schaltung und Aufbau

1. Der ESP32, sonst nichts

Löte die Stiftleisten an das Waveshare ESP32-S3 Mini. Ein Steckbrett brauchst
du hier nicht, auch kein Netzteil: Vier Displays ziehen zusammen weniger Strom
als eine einzige LED, und das USB-C-Kabel versorgt das Board im Betrieb gleich
mit. Leg den ESP32 mit dem USB-Anschluss nach links vor dich – die Displays
kommen rechts daneben.

Das Waveshare ESP32-S3 Mini, mit dem USB-Anschluss nach links
Das Waveshare ESP32-S3 Mini, mit dem USB-Anschluss nach links

2. Erstes Display

Jedes Display hat vier Stifte: GND, VCC, SCL und SDA. Das erste hängt am
Hardware-Bus des ESP32:

Display ESP32-S3 Mini Farbe
GND GND schwarz
VCC 3V3 rot
SCL GP6 gelb
SDA GP5 grün

In der App ist das Anzeige 1.

Das erste OLED-Display an GP5 (SDA) und GP6 (SCL)
Das erste OLED-Display an GP5 (SDA) und GP6 (SCL)

3. Zweites Display

Dasselbe eine Reihe weiter: SDA an GP3, SCL an GP4. GND und VCC teilen sich alle
Displays – führ sie vom ersten Display weiter oder nimm einen zweiten GND-Pin
des ESP32.

Die Merkregel für alle vier: SDA liegt immer auf dem niedrigeren Pin, SCL auf
dem höheren.

Das zweite Display an GP3 (SDA) und GP4 (SCL)
Das zweite Display an GP3 (SDA) und GP4 (SCL)

4. Drittes Display

SDA an GP7, SCL an GP8 – diese Pins liegen auf der anderen Seite des ESP32.
Strom wieder von GND und 3V3.

Das dritte Display an GP7 (SDA) und GP8 (SCL)
Das dritte Display an GP7 (SDA) und GP8 (SCL)

5. Viertes Display

SDA an GP9, SCL an GP10. Damit ist das Modul voll: vier Displays, acht
Signalleitungen, kein einziges Bauteil dazwischen.

Anzeige SDA SCL
1 GP5 GP6
2 GP3 GP4
3 GP7 GP8
4 GP9 GP10

Du musst nicht alle vier bestücken. Das Modul findet beim Start selbst heraus,
welche Displays antworten; ein Platz, an dem nichts hängt, bleibt einfach still.

Alle vier Displays am ESP32
Alle vier Displays am ESP32

Firmware und erste Zeilen

Die Firmware musst du nicht selbst schreiben oder kompilieren. Lade
SceneFX
herunter (kostenlos, Mac und Windows), steck das Board per USB an und füge in
der App ein Modul vom Typ Anzeige hinzu. Die App spielt die Firmware auf und
richtet das WLAN ein (2,4 GHz).

Nach dem Einschalten begrüßt sich jedes angeschlossene Display selbst mit
„SceneFX bereit". So siehst du sofort, welche Displays richtig verdrahtet sind.

Der Fahrplan kommt aus der App

Das Modul holt keine Daten aus dem Internet und rechnet keinen Fahrplan. Es
zeichnet nur, was die App ihm schickt: zwei Zeilen Text je Display, per MQTT
über das WLAN.

In der App ist ein Zugzielanzeiger eine Anzeige in deiner Welt. Die
Erweiterung „Bahnhof" bringt einen mit. Er zeigt einen simulierten Fahrplan, der
zur Uhrzeit deiner Anlage läuft: die nächsten zwei Züge mit Zeit, Ziel und
Gleis, manchmal mit Verspätung. Wie an einem echten Bahnsteig wechselt die
Anzeige, wenn ein Zug tatsächlich abfährt – nicht schon zur geplanten Zeit.

Über Fahrplan justieren… stellst du ihn ein oder trägst eigene Zeilen ein:
deine Ziele, deine Zeiten. Was du festlegst, bleibt jeden Tag gleich. Die 14:02
fährt also täglich um 14:02. Das ist praktisch, wenn Abfahrtsglocke oder
Ansage-Gong genau dazu passen sollen.

Verbunden wird die Anzeige mit einem Display wie jedes andere Motiv: Menü öffnen
(Regler-Symbol oder Rechtsklick) und das Display wählen. Kurz zeigen
schreibt „● Hier! ●" auf das echte Display, damit du es zuordnen kannst.

Und weil die App den letzten Inhalt auf dem Broker liegen lässt, zeigt ein
Display nach einem Neustart sofort wieder, was zuletzt dort stand.

Warum keine Live-Daten der Bahn?

Der alte RailFX-Zugzielanzeiger holte echte Abfahrten der Deutschen Bahn. Für
SceneFX habe ich das bewusst nicht übernommen. Die Schnittstellen der Bahn haben
sich geändert, und die Nachfolger werden von Freiwilligen gepflegt und brechen
bei jeder Änderung. Außerdem passen Züge von heute schlecht auf einen Bahnhof aus
der Epoche III. Ein Fahrplan, den du selbst einstellen kannst, läuft dagegen
jahrelang – und gehört zu deiner Anlage.

Die eine Stelle zum Vertun

Bleibt ein Display dunkel, sind fast immer SDA und SCL vertauscht. Die beiden
Leitungen sind die einzige Stelle, an der man sich bei diesem Modul vertun kann.
Denk an die Merkregel: SDA auf den niedrigeren Pin.

Ein Datenkabel, kein Ladekabel. Viele USB-C-Kabel laden nur. Wenn der
Computer das Board nicht findet, ist das die häufigste Ursache.

Häufige Fragen

Welche Displays passen?
OLEDs mit dem Chip SSD1306, 128×32 Pixel, in der vierpoligen I²C-Ausführung
(GND, VCC, SCL, SDA) mit der Adresse 0x3C.

Brauche ich einen I²C-Multiplexer?
Nein. Jedes Display hat seinen eigenen Bus auf eigenen Pins des ESP32. Deshalb
dürfen alle die Adresse 0x3C behalten.

Brauche ich ein Netzteil?
Nein. Das Modul läuft am USB-Kabel – vier Displays brauchen weniger Strom als
eine einzige LED.

Zeigt das Modul echte Abfahrten der Deutschen Bahn?
Nein. Die App zeigt einen simulierten Fahrplan, den du selbst einstellen kannst.
Er hängt nicht von einer fremden Schnittstelle ab.

Muss ich alle vier Displays anschließen?
Nein. Das Modul erkennt beim Start, welche Displays antworten. Freie Plätze
bleiben still.

Muss der Computer laufen?
Ja. Das Modul zeichnet nur, was ankommt. Fahrplan und Uhrzeit laufen in der App.


Die App, die Firmware und die bebilderte Werkstatt zu jedem Modul gibt es
kostenlos auf scenefx.de.
Licht und Bewegung sind noch Beta: Die Module funktionieren, aber nicht jedes
Heimnetz ist gleich.


Aus RailFX ist SceneFX geworden

Dein nächstes RailFX-Modul ist eine App

In den RailFX-Tutorials bekommt jeder Effekt sein eigenes Modul: hier eine Kirche mit DFPlayer, dort ein Blaulicht mit Nano. Was fehlt, ist der Tag, der alles zusammenhält. Den gibt SceneFX deiner Anlage.

  • Klang zuerst. Zwei Lautsprecher, App starten: Die Kirche schlägt zur vollen Stunde, im Gasthaus wird es abends laut, und manchmal zieht ein Gewitter auf.
  • Szenen statt Sketche. Kleine Abläufe mit Rollen – „Letzte Runde in der Kneipe“, „Das Dorf geht schlafen“ –, die du mit deinen Motiven besetzt.
  • Und fürs Löten: Licht und Bewegung laufen über WLAN-Module mit ESP32, die du selbst aufbaust. Noch in der Beta.

Kostenlos für macOS (Apple Silicon) und Windows 10/11 · Erweiterung „Dorf“ inklusive · weitere Erweiterungen je 39,90 €

SceneFX kostenlos laden

Wenn dir das Projekt gefallen hat und du von weiteren interessanten Projekten inspiriert werden willst, sieh dir doch mal mein neues E-Book »Arduino Projekte Volume 1« an!

  • Die beliebtesten Arduino-Projekte von StartHardware
  • Inklusive Schaltplan, Beschreibung und Code
  • Arduino-Schnellstart-Kapitel
  • Kompakter Programmierkurs


0 0 votes
Article Rating
Abonnieren
Benachrichtige mich bei
0 Comments
Newest
Oldest Most Voted
0
Ich würde mich über deine Meinung freuen.x