Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

DHT11 & DHT22 Temperatur- & Feuchtigkeitssensor Kit für Raspberry Pi & Arduino

Komponenten und Zubehör

DHT11 & DHT22 Temperatur- & Feuchtigkeitssensor Kit für Raspberry Pi & Arduino
DHT11 Temperatur- & Feuchtigkeitssensor (4 Pins)
× 1
DHT11 & DHT22 Temperatur- & Feuchtigkeitssensor Kit für Raspberry Pi & Arduino
Raspberry Pi 2 Model B
× 1
DHT11 & DHT22 Temperatur- & Feuchtigkeitssensor Kit für Raspberry Pi & Arduino
Arduino UNO
× 1
Male-to-Male Jumperkabel
× 3
DHT11 & DHT22 Temperatur- & Feuchtigkeitssensor Kit für Raspberry Pi & Arduino
Steckbrett (allgemein)
× 1
4,7 kOhm Widerstand
× 1
Cobbler Breakout Kit
× 1

Apps und Online-Dienste

DHT11 & DHT22 Temperatur- & Feuchtigkeitssensor Kit für Raspberry Pi & Arduino
Microsoft Windows 10 IoT Core
DHT11 & DHT22 Temperatur- & Feuchtigkeitssensor Kit für Raspberry Pi & Arduino
Arduino IDE
DHT11 & DHT22 Temperatur- & Feuchtigkeitssensor Kit für Raspberry Pi & Arduino
Raspberry Pi Raspbian
DHT11 & DHT22 Temperatur- & Feuchtigkeitssensor Kit für Raspberry Pi & Arduino
Microsoft Visual Studio 2015
WinSCP
PuTTY

Über dieses Projekt

Einführung

Hintergrund

Der DHT11 ist ein 4-Pin-Sensor (ein Pin ungenutzt) für Temperatur und Luftfeuchtigkeit, der 20 % – 90 % relative Feuchtigkeit und 0 bis 50 °C messen kann. Der Sensor arbeitet mit 3 bis 5,5 V Gleichstrom und kommuniziert über sein proprietäres OneWire-Protokoll. Dieses Protokoll erfordert extrem präzises Timing, um Daten vom Sensor zu erhalten. LOW- und HIGH-Bits werden durch die Dauer des HIGH-Signals kodiert. Die Gesamtzeit für eine Messung beträgt maximal 23,4 ms. Dazu gehören eine 18 ms Wartezeit zum Starten der Datenübertragung und ein Fenster von bis zu 5,4 ms für die Daten. Einzelsignale können so kurz wie 20 µs und so lang wie 80 µs sein.

Als Windows 10 IoT Core verfügbar wurde, griff ich zu meinem Raspberry Pi 2 und DHT11-Sensor und probierte es in C# aus. Ich stellte schnell fest, dass es nicht funktionieren würde. Das Problem mit C# in Windows 10 IoT Core ist, dass es schlicht nicht schnell genug ist (zumindest derzeit nicht).

Ich postete im Microsoft-Forum und tauschte mich mit anderen Entwicklern aus, die das gleiche Problem hatten. Schließlich fand ich eine Microsoft-Antwort zum OneWire-Protokoll in Windows 10 IoT Core, die lautete:

Später erhielt ich eine Antwort auf meinen Beitrag, die besagte:

Nun, das wird großartig und ich bin wirklich begeistert von der kommenden Fähigkeit, aber wer kann schon warten? Ich sah kürzlich, dass Microsoft ein Beispiel veröffentlichte, wie man das OneWire-Protokoll mit dem DHT11 als Beispielsensor und C++ unter Windows 10 IoT Core unterstützt. Ich sah darin die Chance, dies nach C# zu portieren.

Dieses Projekt dreht sich darum, dieses Beispiel in eine Bibliothek zu verwandeln, die in C# genutzt werden kann. Ich bin dankbar für die Person, die die Bibliothek schrieb, um diesen populären Sensor unter Windows 10 IoT Core nutzbar zu machen, und hoffe, dass er mit dieser Bibliothek noch nützlicher wird.

Bibliothek

Die von erstellte Bibliothek ist eine einfache Umstrukturierung des ursprünglich von Microsoft geposteten Codes, daher beanspruche ich kein Credit für die Arbeit, die nötig war, um den Sensor auszulesen.

Die Bibliothek stellt eine einfache Klasse namens Dht11 im Namespace Sensors.Dht bereit. Das Erstellen eines neuen Objekts in C# ist einfach:

Zuerst den GPIO-Pin öffnen, an dem der DHT11-Sensor angeschlossen ist:

using Sensors.Dht;
GpioPin pin = GpioController.GetDefault().OpenPin(4, GpioSharingMode.Exclusive);

Dann diesen Pin an den Konstruktor der Dht11-Klasse übergeben und den GPIO Pin Drive Mode angeben. Damit entscheiden Sie, ob Sie Ihren eigenen Pull-Up-Widerstand hinzufügen.

Dht11 dht11 = new Dht11(_pin, GpioPinDriveMode.Input);

Um eine Messung vom Gerät zu erhalten, die Methode GetReadingAsync verwenden:

DhtReading reading = await dht11.GetReadingAsync().AsTask();

Es gibt eine Überladung, die den maximalen Wiederholungswert festlegen lässt. Der Standardwert ist 20. Das legt fest, wie viele Versuche unternommen werden, den Sensor zu lesen, bevor aufgegeben und eine fehlgeschlagene Messung zurückgegeben wird.

Die DhtReading-Struktur ist definiert als:

public value struct DhtReading {
    bool TimedOut;
    bool IsValid;
    double Temperature;
    double Humidity;
    int RetryCount;
};

Beobachtungen

Auch wenn der Sensor in C++ funktioniert, liefert er nicht bei jedem Versuch eine Messung. Daher die Notwendigkeit einer Wiederholungsoption in der Klasse (dies ist tatsächlich Teil des Microsoft-Beispiels). Ich fand es am besten, dies mit anderen Plattformen zu vergleichen, um die Leistung zu sehen. Ich testete Code auf dem Raspberry Pi 2 unter Raspbian sowie auf einem Arduino Uno. Der Code für beide Plattformen ist im GitHub-Repository enthalten.

Das in diesem Projekt enthaltene Video demonstriert und vergleicht die Ausgabe jeder dieser Plattformen.

Erste Schritte

Schaltung für den Raspberry Pi 2 aufbauen

Nutzen Sie diese Anleitung zum Aufbau der Schaltung, wobei das Diagramm am Seitenende als Orientierung dient (die Kabelfarben sind optional und wurden gewählt, um die Schaltung beim Aufbau leichter nachvollziehbar zu machen).

Schaltung für den Arduino aufbauen

Nutzen Sie diese Anleitung zum Aufbau der Schaltung, wobei das Diagramm am Seitenende als Orientierung dient (die Kabelfarben sind optional und wurden gewählt, um die Schaltung beim Aufbau leichter nachvollziehbar zu machen).

Unten sind Fotos der von mir aufgebauten Schaltungen.

DHT11 & DHT22 Temperatur- & Feuchtigkeitssensor Kit für Raspberry Pi & Arduino
DHT11 & DHT22 Temperatur- & Feuchtigkeitssensor Kit für Raspberry Pi & Arduino
DHT11 & DHT22 Temperatur- & Feuchtigkeitssensor Kit für Raspberry Pi & Arduino
DHT11 & DHT22 Temperatur- & Feuchtigkeitssensor Kit für Raspberry Pi & Arduino
DHT11 & DHT22 Temperatur- & Feuchtigkeitssensor Kit für Raspberry Pi & Arduino
DHT11 & DHT22 Temperatur- & Feuchtigkeitssensor Kit für Raspberry Pi & Arduino
DHT11 & DHT22 Temperatur- & Feuchtigkeitssensor Kit für Raspberry Pi & Arduino
DHT11 & DHT22 Temperatur- & Feuchtigkeitssensor Kit für Raspberry Pi & Arduino
DHT11 & DHT22 Temperatur- & Feuchtigkeitssensor Kit für Raspberry Pi & Arduino

Anwendung auf dem Raspberry Pi starten

Debug-Konfiguration, ARM und Remote Machine wählen. Rechtsklick auf das Projekt, Properties, dann Debug-Tab. Die IP-Adresse des Raspberry Pi 2 im Feld „Remote machine“ eintragen und „Use authentication“ deaktivieren.

F5 drücken. Die Anwendung wird auf das Gerät deployt, was beim ersten Mal einige Minuten dauern kann.

Anwendung auf dem Arduino starten

Der Sketch für dieses Projekt ist auf GitHub in der Datei Dht11_Speed verfügbar. Arduino IDE starten, Sketch öffnen, auf den Arduino hochladen (Strg+U) und dann den Serial Monitor starten (Strg+Umschalt+M).

Falls Sie unsicher sind oder neu in dieser Umgebung, zeigt das untenstehende Video, wie es geht.

Anwendung unter Raspbian starten

Der C-Code für den Raspberry Pi ist auf GitHub für dieses Projekt in der Datei Dht11.c verfügbar. Der Quellcode muss auf den Raspberry Pi kopiert und dort kompiliert werden. Ich nutze gerne WinSCP zum Kopieren. Falls Sie diese Anwendung nicht haben, empfehle ich, sie herunterzuladen und zu installieren. Der Quellcode nutzt wiringPi, das vor dem Kompilieren installiert sein muss.

Kompilierbefehl auf dem Raspberry Pi:

gcc -o Dht11_Speed Dht11_Speed.c -L/usr/local/lib -lwiringPi -std=c99 -lm

Zum Ausführen der Anwendung:

sudo ./Dht11_Speed 1000 10

Wobei 1000 eine Verzögerung von 1000 ms (1 Sekunde) und 10 die Anzahl der zu lesenden Samples angibt.

Das Video demonstriert detaillierter, wie man den Code kopiert und auf dem Raspberry Pi unter Raspbian kompiliert. Um zu erfahren, wie man Raspbian auf dem Raspberry Pi installiert, besuchen Sie https://www.raspberrypi.org/downloads/raspbian/.

Video

Das folgende Video demonstriert die Anwendung:

Für beste Qualität das Video auf YouTube im Theater-Modus ansehen.

Code

Visual Studio 2015 C#/C++ Quellcode

https://github.com/porrey/dht.git

Schaltpläne

Dht11_RPi2.fzz
DHT11 & DHT22 Temperatur- & Feuchtigkeitssensor Kit für Raspberry Pi & Arduino DHT11 & DHT22 Temperatur- & Feuchtigkeitssensor Kit für Raspberry Pi & Arduino Dht11_Arduino.fzz
DHT11 & DHT22 Temperatur- & Feuchtigkeitssensor Kit für Raspberry Pi & Arduino DHT11 & DHT22 Temperatur- & Feuchtigkeitssensor Kit für Raspberry Pi & Arduino

Herstellungsprozess

  1. Raspberry Pi Temperaturlogger mit 5 $ I2C Sensor bauen
  2. TMP006 Infrarot-Temperatursensor mit Raspberry Pi: Python Library & Setup Guide
  3. Fern-Temperatursensor mit Raspberry Pi & Python bauen – Schritt-für-Schritt-Anleitung
  4. DS1820 One-Wire Temperatursensor an Raspberry Pi GPIO anschließen
  5. DS18B20 1-Wire Digitalthermometer an Raspberry Pi anschließen – Schritt-für-Schritt-Anleitung
  6. Multi-Sensor Temperatur- & Licht-Überwachung mit Raspberry Pi & DS18B20
  7. Raspberry Pi Heimtemperaturmonitor mit MCP9808, InfluxDB & Grafana bauen
  8. Raspberry Pi 3 mit DHT11 verbinden und Daten an ThingsIo.ai Cloud hochladen
  9. Präziser Lagertemperatursensor: Genaues Erkennen & Überwachen
  10. Präzise Infrarot-Temperaturmessung für farbempfindliche Prozesse