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

Aus Flipdot

< Spaceprojekte
Version vom 10:28, 23. Apr. 2011 bei Helmut (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
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 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. Sowie der Arduino seine Variablen übergeben hat, baut das connect-Script die settings.txt in die Antwort des Webservers an den Arduino ein.

Der Arduino sendet die Antwort des Webservers über die serielle Schnittstelle. Um universelle Benutzbarkeit der seriellen Arduino-Webinterfaces zu erhalten, ist der Arduino mit einem Bluetooth-Modul ausgestattet. Über die BT-Schnittstelle kommuniziert ein weiterer AVR-Controller mit dem Arduino. Dieser baut die GET - Anfrage zusammen und wertet 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.