Donnerstag, 11. Juni 2015

LED am Arduino über Website steuern

In diesem Tutorial geht es darum, wie man eine LED, angeschlossen an den Arduino, über eine Website steuern kann. Du musst dafür keinerlei zusätzliche Hardware kaufen, da der PC die Funktion des Webservers übernimmt.

Die allgemeine Funktionsweise

Wenn ein Benutzer die Website aufruft, die auf einem Apache Webserver auf dem PC gehostet ist, und einen Status auswählt, so wird 1 für an oder 0 für aus in eine Textdatei geschrieben. Ein kleiner Processing Sketch liest dann laufend den Inhalt der Textdatei aus, und sendet diesen dann über die serielle Verbindung an den Arduino. Dieser schaltet dann dementsprechend die LED. 

Der Arduino Sketch

Im Arduino Sketch wird die serielle Verbindung gestartet und der digitalPin, an dem die LED angschlossen ist, als OUTPUT definiert. Dann wird im loop() Teil laufend überprüft, ob die Zahl die über die serielle Verbindung empfangen wird 1 oder 0 ist und die LED entsprechend geschaltet.
Die LED muss dann mit dem kurzen Bein an der Ground(Minuspol) und dem langen  Bein an den gewählten digitalPin angeschlossen werden.

Der Processing Sketch

Im Processing Sketch muss die serielle Verbindung gestartet werden. Wer sich damit nicht auskennt sollte meinen Post dazu hier anschauen. Der einzig neue Befehl ist loadStrings(). Mit diesem Befehl kann man eine Textdatei Zeile für Zeile auslesen. Diese werden in einen Array, der vom Typ String sein muss, gespeichert. Erklärung Array im Lexikon. Danach wird die erste Zeile in eine Zahl umgewandelt, da sie ja nur 0 oder 1 enthält. Insgesamt sieht der Sketch so aus:

Die Website

Ich habe die Website und das Speichern in die Textdatei in PHP gemacht. PHP ist eine Webprogrammiersprache. Damit diese Website auch im Webbrowser aufgerufen werden kann braucht man einen Webserver, quasi den Lieferanten der Website. Ich verwende Apache. Hier ist ein gutes Tutorial zur Installation unter Windows. Hinweis: Es reicht der Apache Webserver und PHP.
Nun müsst ihr nur noch das unten stehende PHP Programm in den htdocs Folder eures XAMPP Verzeichnisses kopieren.
Das PHP Programm erklären würde hier zu lange dauern, wobei es bei genauerer Betrachtung logisch ist und es viele Tutorials zum Thema PHP und schreiben in eine Textdatei im Web gibt.

Das Ergebnis

Nun könnt ihr die Website aufrufen, indem ihr auf euerem PC localhost/namederdatei.php eintippt. Wenn ihr auf einem anderen Gerät in eurem WLAN Netzwerk seid müsst ihr IPdesPC/namederdatei.php eintippen. Wie ihr die IP Adresse eures PC herausfindet seht ihr am Ende von diesem Artikel. Diese Website kann nur von Geräten in eurem LAN/WLAN Netzwerk aufgerufen werden. Wenn ihr das auch über das Internet machen wollt, googlt nach Port Forwarding, wobei es dabei natürlich einige Risiken gibt. Wenn man nun die Website aufruft sieht das so aus:
Insgesamt ist das eine interessante Möglichkeit über Processing und PHP über das Internet eine LED am Arduino zu steuern. Wenn ihr mehr über Processing mit dem Arduino erfahren wollt, schaut euch auch die anderen Post auf diesem Blog dazu an.
Bis zum nächsten Mal!

Keine Kommentare:

Kommentar veröffentlichen