Schlagwort-Archive: RaspPi

Visualisierung von Umweltdaten

In dieser Fortsetzung des Artikels „Überwachung von Temperatur und Luftfeuchtigkeit mit dem SHT21“ kümmern wir uns um die Visualisierung der gemessenen Daten.

Um die Messdaten auf dem Pi in einem Webbrowser anzeigen zu können, muss zuerst ein Webserver auf dem Pi installiert werden. Ich habe mich für lighttpd[1. http://www.lighttpd.net/] entschieden, da dieser besonders wenig Systemressourcen benötigt. Außer dem Webserver selbst installiere ich noch PHP und aktiviere FastCGI.

sudo apt-get install lighttpd php5-cgi
sudo adduser pi www-data
sudo chown -R www-data:www-data /var/www
sudo chmod -R 775 /var/www
sudo lighty-enable-mod fastcgi
sudo /etc/init.d/lighttpd force-reload

Das DocumentRoot des Lighttpd ist /var/www. Mit obigen Code haben wir auch gleich die Benutzerrechte korrekt gesetzt.

An das Ende der Datei /etc/lighttpd/lighttpd.conf müssen wir noch den folgenden Code einfügen:

# enable PHP and FastCGI
fastcgi.server = (".php" => ((
        "bin-path" => "/usr/bin/php-cgi",
        "socket" => "/tmp/php.socket"
        )))

Im Anschluss muss der Webserver einmal neugestartet werden.

sudo service lighttpd restart

Jetzt kopieren wir den Inhalt des Ordners Raspi-SHT21-V3_0_0/www in das DocumentRoot /var/www/. Zur grafischen Darstellung unserer Messdaten entpacken wir noch die Javascript Libary[2. https://github.com/flot/flot/archive/v0.7.zip] von www.flotcharts.org[3. http://www.flotcharts.org/] in das Verzeichnis /var/www/js/. Wichtig: Nehmt die Version 0.7 von GitHub. Mit der Version 0.8.1 werden die Graphen nicht angezeigt.

Damit unsere Webanwendung die Daten aus unserer Datei sht21-data.csv auslesen kann, muss der Pfad zu dieser Datei noch in der index.php angepasst werden. Es geht aber auch noch etwas einfacher. Ich habe statt dessen einfach einen Symlink im DocumentRoot erstellt, welcher auf die Datei zeigt.

ln -s ~/Raspi-SHT21-V3_0_0/sht21-data.csv sht21-data.csv

Damit haben wir alles was wir brauchen und können unsere Umweltdaten im Browser betrachten.

raspi webapplication

Browseransicht

Alle Ziele dieses kleinen Weekend-Projects wurden erreicht und wir können nun Temperatur und Luftfeuchtigkeit im Serverraum überwachen. Mein Kollege freut sich bestimmt schon, sich noch ein paar Gedanken zur Integration in Icinga zu machen.[4. http://www.icinga.org/] ;-)

Viel Spaß beim Nachbau.

Überwachung von Temperatur und Luftfeuchtigkeit mit dem SHT21

Im Artikel „Konzept zur Überwachung von Temperatur und Luftfeuchtigkeit“ habe ich Überlegungen angestellt, um die Temperatur und die Luftfeuchtigkeit in einem Serverraum mit Hilfe des Raspberry Pi zu überwachen. In diesem Artikel geht es nun zur Sache.

Voraussetzung für das weitere Vorgehen ist ein RaspPi, welcher in das Netzwerk integriert ist und auf den wir mittels SSH zugreifen können.

Im Vorfeld habe ich in einigen Internetforen recherchiert, um einen geeigneten Sensor für den Pi zu finden. Mir ist wichtig, dass ich nur einen Sensor benötige, um sowohl die Temperatur als auch die Luftfeuchtigkeit messen zu können. Schließlich habe ich mich für den SHT21 entschieden, welchen es bereits konfektioniert z.B. im Online-Shop von emsystech gibt.

Beim Anschluss des SHT21 wird der I2C-Bus des Sensors mit dem PIN 1 des Pi verbunden.

Die Software, um den Sensor auszulesen kann von der Seite des Herstellers heruntergeladen werden. Die in diesem Tutorial verwendete Version kann am Ende dieses Artikels heruntergeladen werden. Inzwischen wird die Software auf GitHub gepflegt. In der dortigen README.md sind die nötigen Informationen enthalten, um die Software zu installieren und den Raspi-SHT21 in Betrieb zu nehmen.

Die Informationen im weiteren Verlauf dieses Artikels sind veraltet und sollten nicht mehr für neue Installationen genutzt werden. Ich lasse sie online, um bereits bestehende, ältere Installationen nachvollziehen zu können.

Das Archiv wird im Home-Verzeichnis des Pi platziert und dort entpackt.

pi@jk-raspberrypi ~ $ ls -lh
insgesamt 44K
drwxr-xr-x 2 pi pi 4,0K Nov 13 21:41 Desktop
-rw-r--r-- 1 pi pi 5,7K Feb  3  2013 ocr_pi.png
drwxrwxr-x 2 pi pi 4,0K Mär 10  2013 python_games
-rw-r--r-- 1 pi pi  26K Jul  5 09:24 Raspi-SHT21-V3_0_0.zip
pi@jk-raspberrypi ~ $ unzip Raspi-SHT21-V3_0_0.zip 
Archive:  Raspi-SHT21-V3_0_0.zip
   creating: Raspi-SHT21-V3_0_0/
  inflating: Raspi-SHT21-V3_0_0/function-cosm-push.sh  
  inflating: Raspi-SHT21-V3_0_0/function-ftp-upload.sh  
  inflating: Raspi-SHT21-V3_0_0/sht21  
  inflating: Raspi-SHT21-V3_0_0/sht21.sh  
   creating: Raspi-SHT21-V3_0_0/source/
  inflating: Raspi-SHT21-V3_0_0/source/buildrun.sh  
  inflating: Raspi-SHT21-V3_0_0/source/i2c.c  
  inflating: Raspi-SHT21-V3_0_0/source/i2c.h  
  inflating: Raspi-SHT21-V3_0_0/source/main.c  
  inflating: Raspi-SHT21-V3_0_0/source/makefile  
  inflating: Raspi-SHT21-V3_0_0/source/raspi.c  
  inflating: Raspi-SHT21-V3_0_0/source/raspi.h  
  inflating: Raspi-SHT21-V3_0_0/source/sht21  
  inflating: Raspi-SHT21-V3_0_0/source/sht21.c  
  inflating: Raspi-SHT21-V3_0_0/source/sht21.h  
  inflating: Raspi-SHT21-V3_0_0/source/std_c.h  
  inflating: Raspi-SHT21-V3_0_0/start-sht21-service.sh  
  inflating: Raspi-SHT21-V3_0_0/stop-sht21-service.sh  
   creating: Raspi-SHT21-V3_0_0/www/
  inflating: Raspi-SHT21-V3_0_0/www/index.php  
   creating: Raspi-SHT21-V3_0_0/www/js/
  inflating: Raspi-SHT21-V3_0_0/www/layout.css  
pi@jk-raspberrypi ~ $

Die Dateien sht21 und sht21.sh müssen noch ausführbar gemacht werden. Z.B. sudo chmod 755 sht21.

Bevor das Programm ausgeführt werden kann, muss noch der I2C-Treiber aktiviert werden. Hierzu befolgen wir diese 5-Schritt-Anleitung.

Nach dem Neustart können wir die Sensorwerte mit dem Programm sht21 abfragen. Je nachdem mit welchem Parameter man das Programm aufruft wird die Ausgabe unterschiedlich formatiert:

pi@jk-raspberrypi ~/Raspi-SHT21-V3_0_0 $ ./sht21 S
21.5	43
pi@jk-raspberrypi ~/Raspi-SHT21-V3_0_0 $ ./sht21 L
temperature=21.5
humidity=43
pi@jk-raspberrypi ~/Raspi-SHT21-V3_0_0 $ ./sht21 C
Temperature,21.5
Humidity,43
pi@jk-raspberrypi ~/Raspi-SHT21-V3_0_0 $ ./sht21
Raspi-SHT21 V3.0.0 by Martin Steppuhn (www.emsystech.de) [Nov 19 2012 23:35:05]
Options:
   S : [20.0 99]
   L : [temperature=20.0][humidity=99]
   C : [Temperature,20,0][Humidity,99]
RaspberryHwRevision=2
0	21.5	43
1	21.5	43
2	21.5	43
3	21.5	43
4	21.5	43

Damit haben wir zwei weitere Ziele unseres kleinen Projekts erreicht.

Dank des RaspberryPi können wir nun die Temperatur und die Luftfeuchtigkeit überwachen und das unabhängig von vorhandener Hardware.

Ich möchte an dieser Stelle dem Team von emsystech.de danken. Dank des tollen Sensors, des Sourcecodes und der Tipps auf ihrer Website war der Aufbau der Überwachung ein Kinderspiel.

Aktuell schreiben wir die Messwerte alle 10 Minuten in eine CSV-Datei. Wie wir diese Messwerte in einem Webbrowser visualisieren können, beschreibe ich in einem folgenden Artikel.