SHT21 mit Raspberry Pi

Download (Python, ZIP) 

Mit dem Pythonskript sht21.py können Sie den SHT21 Temperatur und Luftfeuchtigkeitssensor in Ihre eigenen Projekte einbinden. Mit aktivem I2C-Treiber genügt es die vier Anschlüsse des Sensors mit dem Raspberry zu verbinden und das Skript aufzurufen:

pi@raspberrypi ~/sht21 $ ./sht21.py
SHT21 Demo by www.emsystech.de
Temperature: 22.9 °C  Humidity: 46.9 %
Temperature: 22.9 °C  Humidity: 46.9 %
Temperature: 22.9 °C  Humidity: 46.9 %
...

Für die Verbindung per I2C-Bus gibt es zwei Möglichkeiten. In der Software kann zwischen den beiden Varianten gewählt werden:

1. Interner I2C-Port des Raspberry Pi mit Treiber

+ Keine Rootrechte notwendig (sudo)
Nur ein Sensor verwendbar

(temp, humidity) = sht21.measure(1)      # I2C-1 Port
print("Temperature: %s °C  Humidity: %s %%" % (temp, humidity))

2. Emulation einer I2C Schnittstelle über GPIO-Pins

+ Mehrere Sensoren möglich
Pullupwiderstände an SCL und SDA notwendig (an GPIO2 und 3 sind diese bereits vorhanden und daher nicht notwendig)
Rootrechte für GPIO-Zugriff notwendig

(temp, humidity) = sht21.measure(None)   # No I2C-Port/Driver --> GPIO2, GPIO3
print("Temperature: %s °C  Humidity: %s %%" % (temp, humidity))

oder

(t0, rh0) = sht21.measure(None,25,8)  # Use GPIOs SCL=25, SDA=8
(t1, rh1) = sht21.measure(None,7,11)  # Use GPIOs SCL=7, SDA=11
print("%s°C\t%s%%\t%s°C\t%s%%" % (t0,rh0,t1,rh1))

Beispiel: sht21_csv.py und sht21_loop.py

Diese beiden Beispielskripte zeigen wie die Messdaten auf einfache Weise in einer Datei gespeichert werden können.

16.06.2015 13:40     24.2    44
16.06.2015 13:50     24.5    43
16.06.2015 13:00     24.5    43
16.06.2015 13:10     24.3    42

 

Beispiel: sht21_rrd.py

Diese Skript verwendet RRDTool zur Speicherung und Visualisierung der Messdaten. Neben dem Abrufen der Sensordaten und der Speicherung werden zyklisch mehrere Charts (PNG-Grafiken) und ein JSON Datensatz erzeugt. Diese können dann online zugänglich gemacht werden.

Der Screenshot zeigt das Logging in einem Outdoorgehäuse, mit Temperatur, Prozessortemperatur des Raspberrys und der Luftfeuchtigkeit im Gehäuse.

sht21-raspi-outdoor

 

 

 

2 Kommentare zu “SHT21 mit Raspberry Pi

  1. Hallo,

    wie ich sehe hast du zur Python-Portierung der C-Version gewechselt. Was waren deine Gründe, die dich zu diesem Schritt bewogen haben? Ist es einfach nur der Einfachheit geschuldet nun den gesamten Quellcode in einer Datei zu haben, die nicht kompiliert werden muss? Oder gab es noch andere Gründe?

    In der C-Version hast du noch flot (https://github.com/flot/flot) zur Visualisierung der Messdaten auf einer Webseite verwendet. Weshalb hast du in der aktuellen Version zum RRDTool gegriffen?

    Ich freue mich, wenn du auf meine Fragen eingehst und danke dir (nochmals) für dieses tolle Projekt.

    MfG
    Tronde

    • So ist für jeden etwas dabei 🙂 Für Projekte wie den SHT21 finde ich Python sehr gut geeignet. Das hängt aber auch immer von den persönlichen Vorlieben und Erfahrungen ab. Bekanntlich gibt es meistens viele Wege die ans Ziel führen können. Das RRDTool Beispiel soll den Einstieg in RRDTool erleichtern. RRDTool ist ein sehr mächtiges Werkzeug und auf jeden Fall einen Blick wert.

Kommentar verfassen