ubuntuusers.de

Projektvorstellung: Raspi-SHT21

allgemein.png

Der Raspberry Pi ist ein kleiner und kostengünstiger Einplatinencomputer. Über seine frei programmierbare GPIO-Schnittstelle lassen sich LEDs, Displays, Sensoren und andere Geräte ansteuern. Raspi-SHT21 ist ein Projekt, mit dem sich der Pi in einen Sensor zur Messung von Luftfeuchtigkeit und Temperatur verwandeln lässt. Dieser Artikel gibt einen Überblick über die Idee zum Projekt, den Aufbau, die Konfiguration und die Einsatzmöglichkeiten des Raspi-SHT21.

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.

  1. einen Raspberry Pi Model B mit 512 MB RAM,

  2. eine SDHC SD-Karte mit mindestens 4 GB Speicherkapazität,

  3. ein Netzteil/Ladegerät für Micro USB mit 1,5 - 2A

  4. ein SHT21 Breakout Board

  5. 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.

raspi-sht21-Wasserzeichen.jpg raspi-sht21_verbinden.jpg
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.

sht21-muster.png
Ü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:

Um den E-Mail-Versand nutzen zu können, muss Postfix installiert und konfiguriert sein.

Ein Tutorial, wie man Postfix z.B. mit Gmail als Smarthost konfiguriert, findet man in diesem Artikel.

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.

sht21-data.png
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.

raspi-sht21-jquery.png
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

icinga-sensoren.png datasource-sensor.png datasource-sensor-2.png
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.

raspi-sht21-rack2.jpeg raspi-sht21-rack1.jpeg
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.


Ein großes Dankeschön an Tronde für den eingesandten Artikel!