Garagentor, dritte Iteration

on

Nachdem zur Steuerung meines Garagentors ein einfaches 433Mhz-basiertes Funksystem zu unsicher war und eines auf Arduino-Basis sich bzgl. des Senders nicht weit genug miniaturisieren ließ, ist aktuell die dritte Version der Torsteuerung aktiv. Aktuell ist es ein WeMos D1 Mini mit einem ESP8266/ESP-12E Chip darauf, der bereits ein WiFi-Modul integriert hat und bereits in mein häusliches WLAN eingebunden ist. Eine Übersicht über Varianten des ESP8266 Chips findet sich auf den Seiten von Stefan Frings.

Steuern lässt sich das kleine Modul per MQTT Protokoll, d.h. es war noch als MQTT-Broker ein Raspberry Pi mit dem Softwarepaket Mosquitto notwendig. Auf dem Raspberry wurde dabei die Server-Variante des Debian-Derivats Raspbian installiert (also ohne Oberfläche) und Zugriff per SSH aktiviert.

Den MQTT-Server Mosquitto sollte man auf verschlüsselte Kommunikation (eigenes Zertifikat, Port 8883) umstellen, eigene Benutzer/Passwort-Kombinationen erstellen und anonymen Zugriff deaktivieren. Eines der vielen Tutorials zu diesem Thema findet sich hier. Client-Zertifikate sind auf dem kleinen ESP12 wohl (noch) nicht so leicht zu realisieren bzw. sind dafür die entsprechenden Libraries noch nicht weit genug (Stand Januar 2019).

Zur Analyse des MQTT-Verkehrs eignet sich das Java-basierte Programm MQTT.fx recht gut.

Der WeMos D1 Mini lässt sich problemlos über die Arduino IDE installieren, sofern man die dafür notwendigen Schritte durchführt. Der Quelltext dazu findet sich hier auf GitHub.

Letztlich gesteuert wird das Garagentor dann über die App MQTT Dash (kostenlos, ohne Werbung) auf meinem Handy. In dieser kann man sich zügig Buttons, Fortschrittsbalken etc. als Kachel zusammenklicken. Drückt man auf dem Handy also z.B. auf “Tor auf”, schickt das Handy einen Befehl an den MQTT-Broker, dieser leitet den Befehl an die Garagentorsteuerung (ESP8266) weiter und diese öffnen dann entsprechend das Tor und schickt sekündlich den Fortschritt des Öffnens sowie eine Schlussmeldung an den Broker zurück. Die App auf dem Handy kann man so konfigurieren, dass sie diese Fortschritts- bzw. Schlussmeldungen dann ansprechend anzeigt.

Am Steuergerät in der Garage gibt es zusätzlich noch einen großen Knopf, mit dem man das Tor auch ohne Handy steuern kann. Das Licht in der Garage lässt sich sowohl über die App wie auch über einen langen Druck des Tasters (länger als eine Sekunde) am Steuergerät steuern. In der Programmierung war es nicht einfach, einen Tastendruck zuverlässig zu erkennen, aber dank diverser Debounce-Beispiele gelang es am Ende doch zuverlässig.

WeMos D1 Mini

Der Vorteil des WeMos D1 Mini ist klar der bereits vorhandene Micro-USB-Anschluss, über den das Gerät sowohl geflasht wie auch mit Strom versorgt werden kann. Da es dann auch einen 5V-Pin gibt, ist die Versorgung des Relais-Boards kein Problem. Allerdings hatte ich mit einem anderen, baugleichen Relais-Board Probleme: dort haben zwei Relais einfach nicht geschaltet, obwohl die entsprechende Kontroll-LED leuchtete. Evtl. brauche ich doch mal ein paar Leistungstransistoren, um mit dem recht schwachen 3.3V Signal des D1 Mini die Relais auf dem 5V-Board zu schalten. Theoretisch – wie auch praktisch mit dem ersten Relaisboard – funktioniert es bisher einwandfrei.

Die Steuerung selbst besteht also lediglich aus einem WeMos D1 Mini, einem 4-Kanal-Relais Modul, einem alten Micro-USB-Netzteil (min. 500mA/5V) und einem simplen Taster. Alles passt in eine mittelgroße Abzweigdose. Wer größere Entfernungen zum WiFi-Access-Point zu überwinden hat, sollte sich den WeMos D1 Mini Pro mit externer WiFi-Antenne anschauen.

Material-Liste/Kosten

  • Raspberry Pi 3 B – ca. 30€
  • Raspberry Pi 3 Gehäuse – ca. 6€
  • WeMos D1 Mini – ca. 5-7€, Alternativ WeMos D1 Mini Pro – ca. 10€
  • 4-Kanal Relais-Board – ca. 5-8€
  • Abzweigdose – 1€
  • Zusätzlich: ein Taster, einige Dupont-Kabel

Zwar klingt diese Lösung ein bisschen nach Overkill, doch war sie am einfachsten auf dem WeMos D1 Mini zu programmieren. Die Einrichtung des Raspberry Pis samt Mosquitto Server sowie dessen Absicherung war auch nicht schwer, da es hierfür viele Tutorials im Netz gibt. Da die Steuerung per Handy-App gelingt, entfällt auch ein dedizierter Sender – das wollte ich zwar anfangs vermeiden, aber in der zweiten Lösung (Arduino Pro Mini mit nRF24L01+ Transceiver) gelang es mir nicht, den Sender entsprechend zu miniaturisieren.

Alternativ könnte ich einen zweiten WeMos D1 Mini plus Ein-Button-Shield an meinem Motorrad anbringen und es per Zündungs-Plus mit Strom versorgen, so dass ich in Motorrad-Montur nicht am Handy herumfummeln muss. Mal sehen – mit dem Beginn der Motorrad-Saison ist so ein WLAN-Button auch schnell zusammengedengelt. :-)