Im letzten Artikel wurde beschrieben, wie man Funksteckdosen mit dem Arduino ansteuern kann (
hier). Selbst wenn man dieses Projekt mit einem Display und einigen Tasten erweitern würde, so müsste man immer diese Fernbedienung mit durch die Wohnung / das Haus schleppen. Es wäre also praktischer, wenn man die Funksteckdosen über das Internet, beispielsweise mit einem Smartphone schalten könnte. Dazu benötigen wir das
Arduino Ethernet Shield, welches unter anderem bei
DFRobot erhältlich ist. Außerdem wird noch eine Micro-SD-Karte benötigt. Diese muss nicht besonders groß sein, auf ihr wird lediglich eine ca. 3 KB kleine HTML-Datei gespeichert.
Programmierung der Webseite
Da unser Arduino nun über einen LAN-Anschluss verfügt, kann er jetzt per Kabel mit dem WLAN-Router verbunden werden. Dort muss er sich mit seiner MAC-Adresse (diese ist auf der unterseite des Ethernet-Shields zu finden) und mit einer von uns definierten IP-Adresse anmelden. Auf einem Computer wird als nächstes eine Webseite programmiert, die der Arduino dann an einen Computer oder ein Smartphone schicken kann. Auf der Webseite ist eine Liste mit den verschiedenen Funksteckdosen zu sehen. Das wird in HTML gemacht, bei bedarf kann die Webseite mit Hilfe von CSS auch gerne noch verschönert werden. Neben dem Gerät, dass die jeweilige Funksteckdose schaltet, werden Links (möglicherweise in Form von Buttons) platziert, die den Titel "Ein", bzw. "Aus" tragen. Wenn später im Webbrowser auf so einen Link geklickt wird, merkt der Arduino das und kann dementsprechend handeln.
Programmierung des Arduino-Programms
Das fertige Arduino-Programm besteht aus mehreren Teilen. Am Anfang werden die Variablen und Arrays definiert. Dazu gehören auch die MAC-Adresse der Ethernet Shields und die IP-Adresse, die unser Arduino in unserem Netzwerk haben soll. Danach geht es mit dem setup-Teil weiter. Die SD-Karte sollte vom Arduino erkannt werden und im ersten Verzeichnis sollte sich eine Datei namens index.html befinden.
Um das Programm, welches unten zum download bereit steht, auf einen Arduino zu spielen, wird die Library
TextFinder benötigt. Diese hilft dabei den Quellcode der HTML-Datei Zeichen für Zeichen auszulesen, damit die einzelnen Zeichen dann an den Browser eines Computers gesendet werden können und als Webseite dargestellt werden.
Nun beginnt der loop-Teil! Dieser hat zwei Funktionen. Der erste Abschnitt reagiert auf Nutzer, die einen Button auf der Webseite gedrückt haben. In dem HTML-Code der Datei index.html wurde festgelegt, dass beim drücken auf einen Button ein Code wie „/?GerG1=1” an den Arduino übermittelt wird. In dem Arduino-Programm ist festgelegt, dass der Arduino auf genau solche Textstücke wartet. Sobald der Arduino das Kürzel „Ger” entdeckt, beginnt er die nachfolgenden Zeichen in Variablen einzuteilen. Das „G” kommt in eine Variable des Typs char. Die Zahlen vor und hinter dem Gleichheitszeichen werden in zwei Integer Variablen geschrieben. Danach werden diese gesammelten Informationen in die Methode „Schalten” eingesetzt, die im ersten Artikel zu den Funksteckdosen programmiert wurde. Diese Methode sorgt dann dafür, dass die richtige Funksteckdose die gewünschte Aktion durchführt.
In der zweiten Hälfte des loop-Teils wird immer ein Zeichen des Quellcodes der Webseite auf der SD-Karte ausgelesen und an den Computer übermittelt, der auf den Arduino-Server zugreifen will. Das kann man sich in etwa so vorstellen, wie den Serial Monitor: Der Arduion sendet einzelne Textstücke an den Computer. Dieser zeigt aber nicht nur die Zeichen an, die er empfangen hat, sondern er berücksichtigt auch die HTML Befehle und stellt die Webseite dementsprechend dar.
Downloads
Arduino Programme:
- Webserver:
hier
HTML Code:
- Webseite:
hier
Quellen
fluuux.de:
hier