Skip to main content

Smarter Lichttaster

Implementierung eines intelligenten Lichtschalters, der von einem ESP-8266 gesteuert wird und mit mehreren Geräten verbunden werden kann.

  • C++ Development
  • Microcontroller
  • platformio
The Slice web application showing a selected user annotation.

Grundidee

Grundsätzlich war die Idee eine Plattform zu schaffen, bei dem im Haushalt viele Mikrocontroller mit den verschiedenen Aktoren und Sensoren (wie Lichter, Schalter, Temperatursensoren, etc.) verknüpft werden. Daher ist jeder Mikrocontroller mit derselben Software ausgestattet, die per OTA (Over The Air) Updates aktualisiert werden kann. Vorteil dieses Ansatzes ist der einfache Verwaltungsaufwand, während ein Nachteil die Komplexität der Implementierung darstellt.

Komponenten

WEMOS d1 mini (esp8266)
WS2812 B 5mm LED
Breadboard
Kabel
kommerziell erwerbbare Lichttaster
(optional) alle möglichen Sensoren oder Aktoren

Implementierung

Eine große Schwierigkeit bei der Implementierung ist die Sicherheit der Kommunikation. Mikrocontroller sind häufig Ziel eines Cyber-Angriffs, da diese nicht selten schlecht programmiert werden. Diesem Problem bin ich mit einer Sicherheitsstrategie begegnet, sodass zum Beispiel WLAN Login Daten erst nach Verbau des Mikrocontrollers verschlüsselt übermittelt werden. Daneben ist jeder Prozessor komplett erweiterbar, da die Konfiguration einfach abgeändert werden kann. So können einfach neue Lichter zuhause eingerichtet werden ohne das Herzstück neu flashen zu müssen.

Für die Kommunikation wird MQTT (Message Queuing Telemetry Transport) verwendet, da es schlank und nahezu latenz- und bandbreitenunabhängig ist.

Was daran interessant ist

Mit der Basis sind jetzt einfache Erweiterungen des Systems möglich. Es können einerseits PWM-Dimmer verwendet werden um alle Arten von LEDs zu dimmen, andererseits können z.B.: NEOPIXEL Led-Strips angesteuert werden und personalisierte Profile abgerufen werden. Des Weiteren können Taster effizienter genutzt werden, da es auch die Option für Mehrfachklicks gibt. So sind die Lichter in meinem Arbeitszimmer mit nur einem Taster steuerbar. Die Möglichkeiten mit der Plattform sind grenzenlos.

Architektur und Technologien

CodeC++
Platformplatformio
dataEEPROM (Electrically Erasable Programmable Read-Only Memory)