Vor einiger Zeit erhielten wir eine Anfrage zur Umrüstung einer Stretchlimousine. Unser Kunde war mit der bisherigen Steuerung für die Beleuchtungseffekte, Klimaanlage, Heizung und Trennscheibe für den Fahrer unzufrieden. Die alte Steuerung war teilweise unzuverlässig, hatte eine schwer verständliche Bedienung und sah auch nicht unbedingt schick aus. Hinzu kam, dass der Fahrer nur wenige Funktionen im Innenraum über Kippschalter steuern konnte. Außerdem wünschte sich unser Kunde für die Zukunft eine zusätzliche Fernsteuerung über sein Mobiltelefon. Aus diesen Wünschen ergaben sich für uns folgende Anforderungen:
Bei der Erarbeitung einer geeigneten Lösung fiel unsere Wahl auf die bekannten ESP8266 Module - in unserem Fall Wemos D1 mini - für die Hauptkomponenten der Steuerung. Diese Module sind sehr einfach und robust aufgebaut, benötigen praktisch keine Bootzeit, sind preiswert und werden durch eine große Community unterstützt. Die Programmierung erfolgte über die bekannte Arduino IDE. Die vorhandenen Relaisboards der alten Steuerung wurden übernommen. Lediglich die eigentliche Steuerung wurde ersetzt:
Für den Touch griffen wir auf die Panels der Firma Nextion zurück, da diese sehr einfach in Verbindung mit Mikrocontrollern oder anderen embedded Systemen betrieben werden können. Der Nextion-Touch speichert selbst alle grafischen Elemente sowie Verknüpfungen, Befehle usw. und kommuniziert mit dem angeschlossenen System über eine UART.
Die beiden Touchscreens kommunizieren über die angeschlossenen Leiterplatten via UDP mit dem Controlboard der eigentlichen Steuerung. Das Controlboard sendet zyklisch via UDP z.B. Werte für die gemessene Temperatur, den Status des Lüfters und den Status der verschiedenen Schaltfunktionen - so werden bei Touchscreens (und später auch die Apps) synchronisiert.
Die verschiedenen Lichteffekte im Fahrzeug werden von LED-Controllern erzeugt, an die LED-Streifen angeschlossen sind. Das Controlboard erzeugt die entsprechenden IR-Kommandos zur Ansteuerung der Controller. Außerdem ist ein spezieller Controller für den Sternenhimmel verbaut, der über eine Funkfernsteuerung, die auf das Controlboard integriert wurde, angesteuert wird.