Inhaltsverzeichnis:

Raspberry Pi / DHT11 - Feuchtigkeit und Temperatur messen - Gunook
Raspberry Pi / DHT11 - Feuchtigkeit und Temperatur messen - Gunook

Video: Raspberry Pi / DHT11 - Feuchtigkeit und Temperatur messen - Gunook

Video: Raspberry Pi / DHT11 - Feuchtigkeit und Temperatur messen - Gunook
Video: [Tutorial] Raspberry Pi - Temperatur & Luftfeuchtigkeit messen (DHT22) 2024, Juli
Anonim
Raspberry Pi / DHT11 - Feuchtigkeit und Temperatur messen
Raspberry Pi / DHT11 - Feuchtigkeit und Temperatur messen

Ich wollte mit meinem Raspberry Pi Temperatur und Luftfeuchtigkeit messen. Ich habe mich für einen DHT11-Sensor entschieden, weil er robust und günstig ist. Die Konfiguration ist ebenfalls gut dokumentiert, aber es gibt eine Reihe von Fallstricken auf dem Weg, auf die ich mich konzentrieren möchte.

Der DHT11 hat 4 Pins. Der linke ist für den Vcc oder positiven (+) Pin, der mit dem Raspberry Pi 3.3V Pin verbunden ist. Der nächste Pin ist der Datenpin, der mit einem GPIO-Pin auf dem Raspberry Pi verbunden werden muss. Diese beiden Pins müssen mit einem 4,7K-Widerstand verbunden werden.

Der 3. Pin von links wird nicht verwendet. Der ganz rechte und vierte Pin ist der Masse- oder Minus-Pin, der mit einem der Masse-Pins des Raspberry Pi verbunden werden muss.

Schritt 1: Erforderliche Komponenten

Erforderliche Komponenten
Erforderliche Komponenten

1. Himbeer-Pi

2. DHT11

3. 4.7k Widerstand

4. Verschiedene Steckbrettdrähte

5. Steckbrett

Schritt 2: Dinge verbinden

Dinge verbinden
Dinge verbinden
Dinge verbinden
Dinge verbinden

Verbinden Sie Raspberry Pi und DHT11 wie folgt:

DHT11 (+-Pin) RaspberryPi (3,3V-Pin)

DHT11 (Daten-Pin) RaspberryPi (GPIO-Pin - ich habe GPIO22 verwendet)

DHT11 (3. Pin) Keine Verbindung

DHT11 (-Pin) ------ Raspberry Pi (Gnd-Pin)

Schritt 3: Installieren der Software

Gehen Sie von der RaspberryPi-Befehlszeile aus wie folgt vor: (HINWEIS, SUDO nicht auslassen)

sudo git-klon

Sie sollten sehen - Klonen in 'Adafruit_Python_DHT'… remote: Objekte zählen: 249, fertig. Remote: Gesamt 249 (Delta 0), wiederverwendet 0 (Delta 0), Pack-wiederverwendet 249 Empfangsobjekte: 100% (249/249), 77,01 KiB, fertig. Deltas auflösen: 100 % (142/142), fertig.

cd Adafruit_Python_DHT/

sudo apt-get update sudo apt-get install build-essential python-dev python-openssl

ls

Sie sollten sehen - Adafruit_DHT Beispiele ez_setup.py LIZENZ README.md setup.py source

cd Adafruit_DHT/

Sie sollten sehen -Beaglebone_Black.py common.py _init_.py platform_detect.py Raspberry_Pi_2.py Raspberry_Pi.py Test.py

sudo python setup.py installieren

(Beachten Sie, wenn Sie diesen Schritt umgehen, wird möglicherweise ein Begegnungsfehler angezeigt - Traceback (letzter Anruf zuletzt):

Datei "./AdafruitDHT.py", Zeile 24, im Import Adafruit_DHT ImportError: Kein Modul namens Adafruit_DHT)

CD-Beispiele

sudo./AdafruitDHT.py 11 22 (11 = DHT11 und 22=GPIO22, die Sie zuvor ausgewählt haben)

Sie sollten Temp=18.0* Humidity=46,0% sehen (d.h. die Temperatur und Luftfeuchtigkeit für Ihre Umgebung)

Schritt 4: Was ist mit der Ausgabe zu tun?

Wie wir gesehen haben, ist die Ausgabe "Temp=18.0* Humidity=46,0%".

Es gibt eine Reihe von Möglichkeiten, wie Sie diese Ausgabe nutzen können, zum Beispiel mit dieser Test-PHP-Datei, test_dht11.php-Datei

Zuerst habe ich das Skript AdafruitDHT.py nach /var/www/ verschoben.

Um das PHP-Skript zu testen und auszuführen, wechseln Sie zu /var/www und dann zu sudo php test_dht11.php

Die Ausgabe zeigt zwei Zahlen für Temperatur und Luftfeuchtigkeit. Diese Zahlen können in eine Datenbank geschrieben oder mit Warngrenzen verglichen und eine Warnung gesendet werden usw

//<? php // kommentieren Sie die obige Zeile - instructables mag den PHP-Startbefehl nicht //test_dht11.php

// führt Python-Datei aus, um den DHT11-Temperatursensor zu lesen

//und extrahiert die Temperatur- und Feuchtigkeitswerte $temperature=0; $Luftfeuchtigkeit=0; $meine_pos=0; $exec_msg="sudo /var/www/AdafruitDHT.py 11 22 2>&1"; $test = shell_exec($exec_msg); //extrahiert die Temperatur $my_pos = strpos($test, "Temp=", 0); $temperatur = substr($test, $my_pos+5, 4); echo "\n ".$temperatur; // entzieht Feuchtigkeit $my_pos = strpos($test, "Humidity=", $my_pos); $Luftfeuchtigkeit = substr($test, $my_pos+9, 4); echo "\n ".$Luftfeuchtigkeit; ?>

Empfohlen: