Smart Home Lösungen sind derzeit in aller Munde und eines der Top-Themen auf der CeBIT 2016. Man bekommt Lösungen von Anbietern wie Homematic oder Telekom, Stromanbietern wie RWE oder Vattenfall und sogar Routerhersteller AVM steigt mit der Fritz!Box in das Thema ein. Doch alle haben eines gemeinsam: Wenn auch die Schaltzentrale häufig günstig ist, so kosten meist die Steckdosen eine Menge Geld.
Mit Hilfe der IoT-Prototyping-Platform Particle Photon und einem 433 MHz Sender lässt sich für wenig Geld eine kleine IoT Zentrale bauen, welche mit einfachen Baumarktsteckdosen für wenige Euros zusammenarbeitet. Per iPhone oder Androidhandy schaltet ihr dann in Kürze eure Lampen an und aus. Programmierkenntnisse sind dazu kaum notwendig! Wer also einige Einblicke in die Welt des Internet der Dinge haben möchte und vor ein wenig Bastelarbeit nicht zurückschreckt, dem sei dieser Artikel gewidmet.
Einkaufsliste
Für den Nachbau benötigt Ihr:
- Particle Photon
- 433 MHz Modul
- eine 433 MHz Antenne oder ein Stück Draht
- USB-Netzteil (oder ein altes Handyladegerät)
- evtl. ein Jumperkabel (insg. 3 Adern)
- Funksteckdosen Typ Elro (andere sollten auch funktionieren, benötigen aber möglicherweise die Anpassung des Quellcodes)
- Lötkolben und Zinn zur
Schritt 1: Einrichtung eures Photons und Flashen der Firmware OTA
Nachdem ihr den Photon erhalten habt müsst ihr zunächst die Particle App auf eurem Handy installieren und den Photon per USB mit Strom versorgen. Die App führt euch Schritt für Schritt durch die Einrichtung des IoT-Modules in eurem WLAN. Wenn euer Particle beginnt blau zu pulsieren, dann habt ihr es geschafft und könnt den Nächsten Schritt im Aufbau eurer eigenen Smart Home Zentrale beginnen: Dem Aufspielen der passenden Firmware via OTA (Over-the-Air-Update).
Die nachfolgend abgebildete Firmware fügt dem Photon zwei Funktionen hinzu, die über die Particle Cloud von überall in der Welt ausgeführt werden können und später von IFTTT benutzt werden können. Die Funktionen lauten SwitchOn und SwitchOff – Eine zum Anschalten einer Steckdose, eine zum Ausschalten einer Steckdose. Den Funktionen übergeben wir später den Hauscode der Steckdose, den man vor dem Einsatz der Steckdose eingestellt hat.
Dieser Schritt ist möglicherweise der technisch komplizierteste Schritt, aber dennoch nicht besonders schwierig:
- Navigiert zu build.particle.io und meldet euch an
- Sucht unter Libraries > Community Libraries nach der Library „RCSwitch“ und bindet diese via Klick auf „Fork this app“ in ein neues Projekt ein
- Wechselt zur Code Ansicht und dort in euren Projektcode
- Ersetzt den Inhalt durch nachfolgendes Skript
- Klickt auf Speichern
- Klickt auf Verifizieren
- Klickt auf Flashen
Euer Photon sollte innerhalb kürzester Zeit beginnen, pink zu blinken. Danach seht ihr ein grünes Blinklicht bevor euer Particle wider beginnt blau zu blinken. Danach wurde die Eben entwickelte Firmware erfolgreich auf euer Particle Photon geladen. Gratulation, das war euer erstes OTA-Firmware-Update!
include "RCSwitch/RCSwitch.h" RCSwitch mySwitch = RCSwitch(); int switchOn(String command) { int positionOfSeparator = command.indexOf(' '); String houseCode = command.substring(0, positionOfSeparator); int switchCode = command.substring(++positionOfSeparator).toInt(); char houseCodeChars[houseCode.length() + 1]; houseCode.toCharArray(houseCodeChars, houseCode.length() + 1); houseCodeChars[houseCode.length()] = '\0'; mySwitch.switchOn(houseCodeChars, switchCode); return 200; } int switchOff(String command) { int positionOfSeparator = command.indexOf(' '); String houseCode = command.substring(0, positionOfSeparator); int switchCode = command.substring(++positionOfSeparator).toInt(); char houseCodeChars[houseCode.length() + 1]; houseCode.toCharArray(houseCodeChars, houseCode.length() + 1); houseCodeChars[houseCode.length()] = '\0'; mySwitch.switchOff(houseCodeChars, switchCode); return 200; } void setup() { // Transmitter is connected to Spark Core Pin D0 mySwitch.enableTransmit(D0); //mySwitch.setPulseLength(320); // Register function Spark.function("switchOn", switchOn); Spark.function("switchOff", switchOff); } void loop() { }
Schritt 2: Zusammenbau der Smart Home Zentrale
Nach dem Flashen der Firmware müsst ihr lediglich noch euren Photon mit dem Funksender verbinden. Dann ist eure Smart Home Zentrale Einsatzbereit und ihr habt euer erstes IoT-Device geschaffen!
- Nehmt dazu zunächst euren Photon vom Netz!
- Zur Verkabelung benötigt ihr drei Adern eines Jumperkabels. Diese steckt ihr beim Photon an Masse (GND), 3,3V (3V3) und an den Port D0.
- Euren 433 MHz Sender verkabelt ihr parallel dazu (3,3V an VCC, GND an GND und D0 an den Signalpin)
- Vergesst nicht euren Sender am Antennenanschluss mit einer passenden Antenne auszustatten. Falls ihr keine kaufen wollt, funktioniert auch ein Stück Draht mit einer Länge von 17 cm (Berechnung: Wellenlänge/4)
Ihr könnt nun wieder euren Photon mit dem USB-Kabel verbinden. Der Photon startet und wird schließlich wieder blau pulsieren. Das bedeutet: Eure Steuerungseinheit ist erfolgreich mit der Cloud verbunden und wartet auf erste Anweisungen!
Schritt 3: Einrichtung der Fernsteuerung auf dem Smartphone mit IFTTT Do
Nun habt ihr eine fertige IoT-Zentrale, die auf eure ersten Befehle wartet. Doch wie könnt ihr diese versenden? Am einfachsten baut ihr eure Fernbedienung mit IFTTT Do Buttons auf. IFTTT (If This Then That) stellt hier ein einfaches System zur Erstellung von Buttons bereit:
- Nach der Installation von DO Button erstellt ihr ein neues Rezept
- Sucht nach Particle
- Möglicherweise müsst ihr per Passworteingabe euer Particle Konto mit IFTTT verknüpfen
- Wählt die SwitchOn, bzw. SwitchOff Funktion eures Photons aus
- Als Wert übergebt ihr den Hauscode und die Adresse eurer Steckdose wie nachfolgend beschrieben
Die Hauscodes an den Steckdosen werden in unserem Beispiel über einen zehnstelligen Dipschalter übergeben. Die ersten 5 Dips stellen den Hauscode eurer Steckdose dar und können wie ein Binärcode geschaltet werden (z.B. 01011). Die nächsten fünf Schalter geben die Adresse eurer Steckdose an und sind von A-E nummeriert. Hier kann immer nur ein einziger Dip pro Steckdose angeschaltet werden. Beispielsweise für Nummer A = 10000, C = 00100.
Der Wert, den wir nun bei DO Button eingeben wäre also für Schalter A und dem Hauscode 01011 beispielsweise: 01011 1, für Schalter C 01011 3. Wichtig ist, zwischen beiden Codes ein Leerzeichen einzufügen. Die Zahl am Schluss gibt die Position des eingeschalteten Schalters bei der Steckdosenadresse an.
Nun habt ihr eure Fernsteuerung fertiggestellt. Viel Spass beim Nachbauen und erweitern.