Spaceprojekte/A.W.E.S.O.M.E.

Aus Flipdot

Wechseln zu: Navigation, Suche

Automatic WEb "Space Open" Messaging Entity

Sobald der Hackerspace geöffnet ist, soll dies auf der Website zu sehen sein.

Lösung: Ein Arduino mit Webshield arbeitet als "seriell nach Web Interface" - ein über die serielle Schnittstelle eintreffender String wird ohne weiteres an eine feste URL als GET-Anfrage angehängt, die GET Parameter sind der Öffnungsstatus des Hackerspaces sowie diverse Messwerte.

Auf dem Webserver läuft ein PHP-Script (connect.php), das aus den per GET übergebenen Parametern eine Webseite aufbaut und in eine feste HTML-Seite (index.html) schreibt. Auf dieser Seite können z.B. Status-Icons in Abhängigkeit von den Parametern gesetzt werden.

Als Rückkanal vom Web in den Hackerspace dient ein Webformular (cange.php). In dieses Formular können mehrere Zeilen Shell-Kommandos eingegeben werden, die von diesem Script in einer Datei (settings.txt) gespeichert werden. Beim nächsten Aufruf des connect-Sripts durch den Arduino baut das Script die settings.txt in die Antwort des Webservers an den Arduino ein.


Datei:Schematic.png


Der Arduino leitet die Antwort des Webservers zu seiner seriellen Schnittstelle. Für die universelle Benutzbarkeit des seriellen Arduino-Webinterfaces ist der Arduino mit einem Bluetooth-Modul ausgestattet. Über die BT-Schnittstelle können im Haus verteile AVR-Controller mit dem Arduino kommunizieren. Der lokale Controller baut die aus seinen Sensorgrößen und Variablen wie z.B. Uhrzeit die GET - Anfrage für die Senderichtung zu Server zusammen und wertet in der Gegenrichtung die Server-Antwort mit einem Parser aus, der AT-Kommandos wie ein Modem annimmt, und damit Portleitungen, PWM-Tastgrade usw. steuern kann.

Über BT können sich nacheinander verschiedene Controller mit dem Webinterface verbinden und ihre Daten ins Netz bringen. Damit es zu einer geringen Anzahl von fehlschlagenden Verbindungsanforderungen infolge belegter BT-Schnittstelle gibt, sendet jeder Controller in einem gewissen Minutenabstand. Die Minutenabstände sind Primzalen.