Smarter Lichttaster
Implementierung eines intelligenten Lichtschalters, der von einem ESP-8266 gesteuert wird und mit mehreren Geräten verbunden werden kann.
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
Code | C++ |
---|---|
Platform | platformio |
data | EEPROM (Electrically Erasable Programmable Read-Only Memory) |