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

Kompakter DHT Temperatur- & Feuchtigkeits-Breakout für Raspberry Pi – ATtiny85 & DHT22/DHT11

Hardware-Komponenten: Atmel ATTiny85 × 1, DHT22 Temperatursensor × 1, DHT11 Temperatur- & Feuchtigkeitssensor × 1, SparkFun Tiny AVR Programmer × 1, Adafruit 4,7K Ω Widerstand × 3, Adafruit 10K Ω Widerstand × 1, Adafruit 100 Ω Widerstand × 1, Adafruit Diffused Blue 3mm LED × 1, Adafruit Tactile Button Switch × 1, Adafruit Break-away 0,1″ 36-pin Strip Male Header 1 Stück @ Länge 6, 1 Stück @ Länge 2 (gesamt 8 Pins) × 1, Generic Jumper (0,1″) × 1, Arduino UNO & Genuino UNO Optional – für Debugging und Testing. × 1

Software Apps und Online Services: Microsoft Visual Studio 2015, Microsoft Windows 10 IoT Core, Arduino IDE

STORY

Einführung

DHT11 und DHT22 sind beliebte Temperatur- und Feuchtigkeitssensoren aufgrund ihrer Genauigkeit bei sehr niedrigen Kosten. Ein Problem damit ist jedoch, dass sie über ein proprietäres One-Wire-Protokoll arbeiten, das präzises Timing erfordert. Diese Sensoren haben sich auf Boards mit Nicht-Echtzeit-Betriebssystemen als schwer auslesbar erwiesen.

Vor einiger Zeit habe ich einen Artikel mit dem Titel „DHT11/DHT22 Temperatursensor“ veröffentlicht, der demonstrierte, wie man den Microsoft C++ Beispielcode von C# nutzt, um diese Sensoren auszulesen. Die Library konnte einen Messwert erhalten, aber ich musste Retry-Logik hinzufügen, um sie zuverlässiger zu machen. Das war für die meisten erfolgreich, aber einige hatten Probleme, dies konsistent zum Laufen zu bringen.

Angesichts des Interesses an der Nutzung dieser Sensoren auf dem Raspberry Pi unter Windows 10 IoT Core entschied ich mich, eine zweite Option zu schaffen, die eine sehr zuverlässige Methode zum Auslesen dieser Sensoren bietet, während sie weiterhin kostengünstig bleibt.

Überblick

Der hier vorgestellte Ansatz besteht darin, den DHT-Sensor an einen kostengünstigen ATtiny85 anzuschließen und ihn als I2C-Slave-Gerät einzurichten. Dies wird mittels der TinyWireS Library und der Erstellung eines Registersatzes erreicht, der gelesen und geschrieben werden kann, um mit dem Gerät zu interagieren.

Das Gerät unterstützt folgende Funktionen:

Der Quellcode

Es gibt drei Codesets in diesem Projekt. Die Haupt-Firmware für das Board, ein Arduino Master Sketch zum Testen und Demonstrieren des Boards bei Verbindung mit einem Arduino Uno und die Windows 10 IoT Code Applikation, die demonstriert, wie man das Gerät vom Raspberry Pi nutzt. Der gesamte Code ist im verlinkten GitHub Repository verfügbar.

Das Gerät / Die Schaltung

Die Schaltung ist klein und nutzt nur wenige kostengünstige Komponenten. Der ATtiny85 kann von verschiedenen Händlern bezogen werden. Ich empfehle, ein paar davon zu besorgen, da sie viele nützliche Zwecke haben.

Die Schaltung hat einen Sechspin-Header, der es ermöglicht, sie entweder an eine andere Schaltung oder direkt an den Raspberry Pi anzuschließen. Die Pins sind wie folgt definiert:

Es gibt auch einen Zweipin-Header, wo ein Jumper hinzugefügt werden kann, um die On-Board-LED zu aktivieren, oder entfernt, um sie zu deaktivieren.

Bei Nutzung in einem größeren Projekt kann die Schaltung für den DHT Tiny in das bestehende Projekt-Schaltbild integriert oder eingebettet werden. In diesem Fall sind Header-Pins und LED optional.

Die Schaltung kann auch auf einem separaten Board aufgebaut und mit wenigen Drähten oder einem Verbindungskabel an Ihren Raspberry Pi angeschlossen werden.

ATtiny85 programmieren

Sketch DHT_Tiny_Breakout.ino auf den ATtiny85 laden mit Ihrem AVR-Programmer. Falls Sie keinen Programmer haben, können Sie einen Arduino Uno (oder ähnliches Board) nutzen. Schauen Sie sich einen oder mehrere der unten aufgelisteten Artikel an für Hilfe.

Ich nutze den SparkFun Tiny AVR Programmer für meine ATtiny85.

Ich betreibe meinen Chip mit 16 MHz. Siehe meinen Artikel „ATtiny @ 16MHz“ für Anweisungen dazu.

Bei Nutzung des ATtiny85 benötigt der Slave-Sketch die TinyWireS Library in Ihrem Libraries-Ordner. Diese Library kann von https://github.com/rambo/TinyWire heruntergeladen werden.

Schaltung auf Breadboard aufbauen

Der erste Schritt ist, den DHT Tiny auf einem Breadboard zum Laufen zu bringen. Mit einem Halbgrößen-Breadboard die Schaltung gemäß Schaltplan und Breadboard-Diagrammen im Projekt aufbauen.

Ein paar Tipps zur Erleichterung:

Unten sind einige Bilder der Breadboard-Version meines DHT Tiny.

Arduino Uno anschließen

Falls Sie an einem schnellen Test, einer Demonstration interessiert sind oder Probleme haben, das mit Ihrem Raspberry Pi zum Laufen zu bringen, können Sie den DHT Tiny an einen Arduino Uno (oder ähnliches Gerät) anschließen.

Sketch DHT_Tiny_Master.ino laden und ausführen. Dieser Sketch zeigt Ausgabe im Serial Monitor.

Beim Verbinden des I2C zwischen den beiden Boards ist es wichtig, Pull-Up-Widerstände an den SDA und SCL Leitungen zu haben. In dieser Schaltung sind zwei 4,7K Ω zwischen den Pins und 5V verbunden.

Unten sind einige Bilder des DHT Tiny Breadboards, verbunden mit dem Arduino Uno.

Mit Raspberry Pi verbinden

Falls Sie an einem schnellen Test, einer Demonstration interessiert sind oder Probleme haben, das mit Ihrem Raspberry Pi zum Laufen zu bringen, können Sie den DHT Tiny an einen Arduino Uno (oder ähnliches Gerät) anschließen.

Beim Verbinden des I2C zwischen den beiden Boards ist es wichtig, Pull-Up-Widerstände an den SDA und SCL Leitungen zu haben. In dieser Schaltung sind zwei 4,7K Ω zwischen den Pins und 3V3 verbunden.

SEHR WICHTIG! Das DHT Tiny Board wird vom 5V Pin des Raspberry Pi gespeist, aber die Pull-Up-Widerstände müssen an den 3V3 Pin des Raspberry Pi angeschlossen sein (3V3 liegt an Pins 1 und 17).

Unten sind einige Bilder des DHT Tiny Breadboards, verbunden mit dem Raspberry Pi 3.

Windows 10 Applikation ausführen

Code vom GitHub Repository Link am Projektende holen und auf Ihrem Computer entpacken. Universal Application Source Code in Visual Studio 2015 öffnen und entweder auf dem Raspberry Pi deployen und von der Admin-Konsole starten oder im Debug-Modus aus Visual Studio heraus ausführen.

Falls dies das erste Mal ist, dass Sie Code aus Visual Studio für eine Windows 10 IoT Core Applikation ausführen, schauen Sie sich diese Microsoft-Artikel an:

Schauen Sie sich die Video-Demonstration unten an, um die Applikation auf einem Raspberry Pi 3 laufen zu sehen, verbunden mit dem DHT Tiny.

Applikation Highlights

Die Windows 10 UWP Applikation ist eine Demonstrationsapplikation, die alle Features des DHT Tiny zeigt. Der Code zeigt aktuelle Temperatur, Feuchtigkeit und andere Registerwerte vom Gerät. Die UI bietet auch Möglichkeit, die Gerätekonfiguration inklusive Geräteadresse zu ändern.

DHT Tiny Library

Der Beispielcode nutzt eine Library, geschrieben für die Interaktion mit dem DHT Tiny. Diese Library ist einsatzbereit und kann direkt in all Ihren Applikationen inkludiert werden.

Library von NuGet holen

Falls Sie das Projekt nicht direkt in Ihre Applikation inkludieren wollen, einfach die DHT Tiny Library von NuGet herunterladen mit dem unten gezeigten Befehl. Package Manager Console in Visual Studio öffnen und Befehl eingeben.

PM> Install-Package IoT.DhtTiny

I2C-Bus nach Gerät scannen

Die DHT Tiny Library beinhaltet eine Methode, die den I2C-Bus nach DHT Tiny Geräten durchsucht und eine Liste von Adressen zurückgibt. Diese Liste kann genutzt werden, um eines oder mehrere der gefundenen Geräte zu initialisieren. Besonders nützlich, wenn Sie die Adresse des Geräts geändert haben, aber sich nicht erinnern, was Sie eingestellt haben. Die Callback-Methode ist optional.

// ***
// *** DHT Tiny Geräte auf dem i2c Bus enumerieren.
// ***
IEnumerable<byte> address = await DhtTiny.FindAllDhtTinyAsync(this.FindAllDhtTinyCallback);
// ***
// *** Callback Methode
// ***
private void FindAllDhtTinyCallback(I2cScanEventArgs e) {
    int percentComplete = (int)((double)e.CurrentIndex / (double)e.Total * 100.0d);
    this.Status = string.Format("Locating devices [0x{0:X2}] [{1}%] [Found = {2:##0}]...", e.CurrentAddress, percentComplete, e.Items.Count());
}

Schaltplan des DHT Tiny Breakout für den Raspberry Pi

Software-Demonstration

Dieses Video demonstriert sowohl die Universal Application, die auf einem Raspberry Pi 3 läuft und mit dem DHT Tiny auf einem Breadboard verbunden ist.

[VIDEO COMING SOON]

Finales Gerät erstellen

Der einfachste und kosteneffektivste Weg, das Board zu erstellen, ist die Nutzung eines PCB-Prototyp-Boards wie dem Perma-Proto Quarter-sized Breadboard PCB von Adafruit. Das Bild unten zeigt den Breakout mit diesem Prototyp-Board. Ich nutzte einen Dremel, um die Stromschienen-Sektionen des Boards zu entfernen.

Mehr sehen: DHT Tiny Breakout für den Raspberry Pi

Herstellungsprozess

  1. Professionelle Temperaturüberwachung mit Raspberry Pi und DS18B20
  2. Outdoor-Wetterstation mit Raspberry Pi 2 & ADS-WS1 bauen
  3. Analoge Sensoren am Raspberry Pi ohne nativen ADC auslesen – Step-Response Methode
  4. HC-SR04 Ultraschallsensor an Raspberry Pi anschließen – Praktischer Leitfaden
  5. Top-Zubehör, um das volle Potenzial Ihres Raspberry Pi auszuschöpfen
  6. MCP3008 ADC zum Auslesen analoger Sensoren mit Raspberry Pi nutzen
  7. SIGHT: Smarte Brille für Blinde – Raspberry Pi & TensorFlow
  8. SparkFun Qwiic HAT für Raspberry Pi – Kompletter Anschlussleitfaden
  9. Windows 10 IoT Core auf Raspberry Pi 3 Model B+ installieren – Schritt-für-Schritt
  10. Eigenen Raspberry Pi Roboter mit MonkMakes RRB2 Kit bauen – Detaillierte Anleitung