Idee zum Projekt¶
Die Idee zu diesem Projekt entstand im beruflichen Alltag. Tronde arbeitet als IT-Systemadministrator in einem mittelständischen Unternehmen, welches zwei Serverräume an seinem Standort betreibt.
Unzulässige Temperatur und Luftfeuchtigkeit können in diesen Räumen zu Betriebsstörungen führen. (BSI Grundschutz G 1.7) Um dieses Risiko zu minimieren, ist eine bedarfsgerechte Klimatisierung erforderlich. Um wiederum die Einhaltung der Grenzwerte von Lufttemperatur und -feuchte regelmäßig zu kontrollieren und zu dokumentieren, ist der Einsatz geeigneter Messinstrumente erforderlich. (BSI Grundschutz M1.27)
Die vorhandenen Sensoren erfüllten diese Aufgabe nur ungenügend. Sie unterlagen wiederholt Störungen oder fielen ganz aus. Daher sollte eine neue Lösung entwickelt werden, die folgende Anforderungen erfüllt:
Messung von Lufttemperatur und -feuchte
Darstellung der Messwerte in Form einer Grafik bzw. in einem Monitoringsystem
Dokumentation der Messwerte
Günstiger Preis
Darüber hinaus wurde eine Open-Source-Lösung angestrebt, um sich nicht erneut in die Abhängigkeit eines Herstellers und dessen Bereitschaft zur Softwarepflege zu begeben.
Die genannten Anforderungen führten nach einer kurzen Internetrecherche zum Raspi-SHT21, dessen Aufbau und Installation im Folgenden genauer beleuchtet wird. Doch auch wer keinen Serverraum betreibt, kann entspannt weiterlesen, da am Ende des Artikels noch weitere Einsatzmöglichkeiten für den Raspi-SHT21 genannt werden.
Der Aufbau¶
Der Aufbau des Projekts gliedert sich im Wesentlichen in die Vorbereitung des Raspberry Pi inklusive des SHT21-Sensors und die Konfiguration des Raspi-SHT21.
Hardwareaufbau und Betriebssystem¶
Für den Aufbau des Raspi-SHT21 benötigt man die folgenden Komponenten.
einen Raspberry Pi Model B mit 512 MB RAM,
eine SDHC SD-Karte mit mindestens 4 GB Speicherkapazität,
ein Netzteil/Ladegerät für Micro USB mit 1,5 - 2A
optional: ein Gehäuse für den Raspberry Pi
Als Betriebssystem für den Pi kommt Raspbian 🇬🇧 zum Einsatz, welches von der Projektseite oder von raspberrypi.org 🇬🇧 heruntergeladen werden kann.
Raspbian ist ein auf Debian basierendes Betriebssystem, welches für den Raspberry Pi optimiert wurde. Durch die enge Verwandtschaft sollten sich daher auch Anwender von Ubuntu schnell zurecht finden.
Um das SHT21-Breakout-Board mit dem Raspberry Pi zu verbinden werden vier Leitungen benötigt. Auf der Webseite emsystech.de von Martin Steppuhn gibt es eine tolle Anleitung, die beschreibt, wie man das SHT21-Breakout-Board über ein Flachbandkabel mit einem Stecker verbindet.
Der Stecker verbindet anschließend den Sensor mit den GPIO-Pins des Pi. Das rote Kabel zeigt dabei zum Pin 1 des Pi.
Verbindung SHT21 mit GPIO-Pins | Verbindung des SHT21 mit dem Pi im Gehäuse |
Konfiguration des Raspi-SHT21¶
Die Software des Raspi-SHT21 ist auf GitHub veröffentlicht. Es gibt zwei Wege die Software auf dem eigenen Pi bereitzustellen.
Möglichkeit 1: Download der Archiv-Datei¶
Die jeweils letzte veröffentlichte Version kann als Archiv heruntergeladen werden.
Das Archiv wird anschließend im Home-Verzeichnis des Pi entpackt.
$ wget https://github.com/Tronde/Raspi-SHT21/archive/NAME-DES-AKTUELLEN-RELEASE.tar.gz $ tar -xzf NAME-DES-AKTUELLEN-RELEASE.tar.gz -C Raspi-SHT21 $ cd Raspi-SHT21
Möglichkeit 2: Nutzung des Repository¶
Möchte man die jeweils aktuellste Entwicklerversion nutzen, so kann man diese auch direkt aus dem Repository herunterladen.
$ git clone https://github.com/Tronde/Raspi-SHT21.git $ cd Raspi-SHT21
Konfiguration der Parameter¶
Unabhängig davon, für welchen Weg man sich entschieden hat, wechselt man anschließend in das Verzeichnis ~/Raspi-SHT21. Hier gibt es die Datei sht21.muster, welche die Konfigurationsparameter enthält.
Übersicht der Konfigurationsparameter |
$ cp sht21.muster sht21.conf
Die Datei sht21.muster wird mit dem obigen Befehl kopiert. Anschließend können die Parameter, in der Datei sht21.conf, an die persönlichen Bedürfnisse angepasst werden. Mit dem ersten Parameter wird das Messintervall in Sekunden angegeben. Anschließend werden die obere und untere Grenze für Lufttemperatur und -feuchte definiert. Des Weiteren wird eine E-Mail-Adresse hinterlegt, an die Warnungen versendet werden, falls die definierten Grenzwerte über- bzw. unterschritten werden.
Hinweis:
Sind die Konfigurationsparameter den eigenen Wünschen angepasst, kann das Installationsskript ausgeführt werden.
$ sudo ./install.sh
Dieses Skript kümmert sich um die Installation der benötigten Pakete und die Einrichtung des Raspi-SHT21. Dabei werden der Webserver Lighttpd und PHP auf dem Raspberry Pi installiert und das i2c-Treibermodul aktiviert.
Achtung!
Das Installationsskript install.sh ist in der aktuellen Version (Release 1.2.0) für die Installation auf einem Raspberry Pi gedacht, auf dem noch kein Webserver läuft. Wer bereits einen Webserver auf seinem Pi betreibt, muss das Skript vor der Installation entsprechend anpassen, um zu verhindern, dass evtl. schon vorhandene Dateien auf dem Pi überschrieben werden.
Nach der Installation der benötigten Pakete legt das Skript die Datei sht21-data.csv an. In dieser Datei werden die Messwerte gespeichert.
Beispiel für den Inhalt der Datei sht21-data.csv |
Damit die CSV-Datei nicht unendlich anwächst, wird während der Installation die Datei /etc/logrotate.d/raspi-sht21 angelegt. Dabei handelt es sich um ein Skript, welches die CSV-Datei wöchentlich rotiert. Natürlich kann auch dieses Skript an die persönlichen Bedürfnisse angepasst werden.
Unter /etc/init.d/ wird ein Start-Stop-Skript erstellt, mit welchem der Raspi-SHT21-Dienst gesteuert werden kann.
$ service raspi-sht21.sh Usage: /etc/init.d/raspi-sht21 {start|stop|status|restart}
Damit ist die Konfiguration abgeschlossen und der Raspi-SHT21 ist einsatzbereit. Sind ausreichend Messwerte vorhanden (mindestens zwei), werden diese in einem Diagramm auf der Webseite des Raspi-SHT21 dargestellt.
Die Webseite erreicht man über den Aufruf der URL http://ip-adresse-des-pi
.
Browseransicht |
Integration in Nagios/Icinga¶
Der Raspi-SHT21 verfügt über ein in Python geschriebenes Plug-in für die Integration der Messwerte in Nagios bzw. Icinga.
Das Plug-in heißt check_raspi-sht21.py und befindet sich im Raspi-SHT21-Verzeichnis.
Der Check wird mit Hilfe des "Nagios Remote Plugin Executor (NRPE)" ausgeführt. Um das Plug-in zu nutzen, wird es z.B. wie folgt in die lokale NRPE-Konfiguration eingetragen:
command[check_sensor]=/home/pi/Raspi-SHT21/check_raspi-sht21.py -t -20 -T 38 -l 28 -L 70 -d "/home/pi/Raspi-SHT21/sht21-data.csv"
check_sensor
ist dabei der Name des Checks, welcher vom Nagios-/Icinga-Server genutzt wird, um den Check via NRPE auszuführen. Dem Check werden dabei die folgenden Parameter zur Überprüfung mitgegeben.
Parameter für den Check | |
Parameter | Bedeutung |
-t | Definiert den unteren Grenzwert für die Lufttemperatur |
-T | Definiert den oberen Grenzwert für die Lufttemperatur |
-l | Definiert den unteren Grenzwert für die Luftfeuchtigkeit |
-L | Definiert den oberen Grenzwert für die Luftfeuchtigkeit |
-d | Gibt den Pfad zur CSV-Datei mit den Messwerten des Sensors an |
Messwerte in der Oberfläche des Monitoringsystems | Icinga Classic - Verlauf der Messwerte Sensor |
Erfahrungswerte¶
Wie zu Anfang bereits geschrieben kam die Idee zu diesem Projekt während der Arbeit. Und genau dort lag auch der erste Einsatzort des Raspi-SHT21.
In beiden Serverräumen wurde je ein Raspi-SHT21 installiert. Dazu wurde der Pi einfach mittels Kabelbinder im Rack befestigt. Die Sensoren befinden sich in diesem Fall an der Rückseite des Racks, wo die warme Abluft der Geräte austritt.
Beispiel eines im Rack montierten Pi | Beispiel eines im Rack montierten Sensors |
Die beiden Sensoren befinden sich seit Anfang 2014 im Einsatz. Ihr Betrieb verläuft bisher störungsfrei. Mit Hilfe der Sensoren konnte ein regelmäßiges Überschreiten des oberen Grenzwerts für Luftfeuchtigkeit in einem der beiden Serverräume festgestellt werden. Nachdem das Problem bekannt war, konnte mit einem Luftentfeuchter entgegengewirkt werden.
Zu Anfang wurde nur die E-Mail-Alarmierung verwendet. Das Nagios-/Icinga-Plug-in wurde erst später entwickelt, um alle wichtigen Daten im Monitoringsystem zu vereinen.
Weitere Einsatzmöglichkeiten¶
Doch nicht nur in Serverräumen oder Rechenzentren vermag der Raspi-SHT21 treue Dienste zu leisten. Er eignet sich zum Beispiel ebenso für den Einsatz in Kühlräumen/-häusern, Terrarien, Gewächshäusern oder einer Wetterstation.
Der Raspi-SHT21 macht sowohl im Hobby, wie auch im professionellen Bereich eine gute Figur.
Quellen und weiterführende Links¶
Ein großes Dankeschön an Tronde für den eingesandten Artikel!