Hier eines meiner ersten Programmierbeispiele für den Arduino.
Szenario
Ich habe mir folgendes Szenario vorgenommen:
- Temperatur, Luftfeuchte und Helligkeit sollen einmal jede Minute gemessen werden.
- Die gemessenen Daten werden auf einem Webserver in einer relationalen Datenbank abgelegt.
- Die Ablage erfolgt mit einem Zeitstempel, welcher von einer Echtzeituhr bereitgestellt wird.
- Die Abfrage der Messdaten erfolgt über einen Webserver. Die Anzeige soll tabellarisch oder grafisch erfolgen.
Hardware
Daraus ergeben sich folgende Anforderungen an die Hardware:
- Messung der Luftfeuchte und Temperatur mit einem HYGROSENS HYT321. Angebunden über I2C Bus.
- Messung der Helligkeit mit einem einfachen Fotowiderstand
- Arduino mit mindestens 32kByte Speicher. Ich habe einen Arduino Mega 256 gewählt.
- Ethernet-Shield für die Anbindung an mein lokales Ethernet-Netzwerk
- Bereitstellung des Zeitstempels über einen DS1307 Echtzeit-Uhrenchip. Angebunden über I2C Bus.
Informationen über die Zusatzplatine mit den Sensoren und dem Uhrenchip gibt es hier.
Software
Arduino
Für die Software auf Arduino Seite ergeben sich folgende Anforderungen:
- Entwicklungsumgebung V.0022 für den Arduino
- Ethernet-Bibliothek für den Arduino direkt von ARDUINO.CC
- Bibliothek für den Zugriff auf den I2C Bus ebenfalls von ARDUINO.CC
- Bibliothek für den Zugriff auf den Echtzeituhrenchip von JeeLabs
- Bibliothek für den Zugriff auf den HYT321 Sensor wurde mir erstellt
- Bibliothek für das Ablegen von Informationen (HTTP-GET-Request) auf meinem Web-Server von InteractiveMatter
- Sketch für die Anwendungssteuerung.
Webserver
Für den Webserver ergeben sich folgende Softwareanforderungen
- HTTP-Server mit Unterstützung der Programmiersprache PHP
- MYSQL Datenbank mit Anbindung über die Programmiersprache PHP. Zum Anlegen des Datenbanktabelle finden Sie das Script hier.
- PHP-Script für die Annahme der Messdaten und Abspeicherung in einer MYSQL Datenbank. Das Skript ist hier zu finden.
- PHP-Script für die tabellarische Anzeige von Messdaten. Das PHP-Script findet sich hier.
- PHP-Script zur grafischen Anzeige von Messdaten. Die beiden PHP-Scripts finden sich hier und hier. Dieses Script benötigt auch noch die Bibliothek JPGRAPH.
Klassisch werden die Anforderungen von einem LAMP-Server erfüllt. Meinen Server habe ich bei Alfahosting gemietet.
Details zu Installation sind hier beschrieben.
Live
Das Script zu grafischen Auswertung sieht Live so aus.
DasScript zu tabellarischen Auswertung sieht Live so aus.