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

DHT Tiny Breakout für den Raspberry Pi

Hardwarekomponenten: Atmel ATTiny85×1DHT22 Temperatursensor×1DHT11 Temperatur- und Feuchtigkeitssensor×1SparkFun Tiny AVR Programmer×1Adafruit 4,7K Ω Widerstand×3Adafruit 10K Ω Widerstand×1Adafruit 100 Ω Widerstand×1Adafruit Diffuse blaue 3mm LED×1Adafruit taktile Tasterschalter ×1 .da ″ 36-polige Stiftleiste 1 Stück @ Länge 6, 1 Stück @ Länge 2 (insgesamt 8 Pins)×1Generic Jumper (0,1″)×1Arduino UNO &Genuino UNOOptional – wird zum Debuggen und Testen verwendet.×1Software-Apps und Online-Dienste: Microsoft Visual Studio 2015Microsoft Windows 10 IoT CoreArduino IDE

GESCHICHTE

Einführung

Der DHT11 und DHT22 sind aufgrund ihrer Genauigkeit bei sehr geringen Kosten beliebte Temperatur- und Feuchtigkeitssensoren. Ein Problem bei ihnen ist jedoch, dass sie über ein proprietäres Ein-Wire-Protokoll arbeiten, das ein genaues Timing erfordert. Diese Sensoren haben sich auf Boards mit Nicht-Echtzeit-Betriebssystemen als schwierig zu lesen erwiesen.

Vor einiger Zeit habe ich einen Artikel mit dem Titel „DHT11 /DHT22 Temperatursensor . gepostet ” zeigt, wie Sie den Microsoft C++-Beispielcode aus C# verwenden, um diese Sensoren zu lesen. Die Bibliothek konnte einen Messwert abrufen, aber ich musste eine Wiederholungslogik hinzufügen, um sie zuverlässiger zu machen. Dies erwies sich für die meisten als erfolgreich, aber einige Leute hatten Probleme, dies durchgängig zum Laufen zu bringen.

Angesichts des großen Interesses, diese Sensoren auf dem Raspberry Pi zu verwenden, während Windows 10 IoT Core ausgeführt wird, habe ich mich entschieden, eine zweite Option zu entwickeln, die eine sehr zuverlässige Methode zum Lesen dieser Sensoren bei gleichzeitig niedrigen Kosten bietet.

Übersicht

Der hier vorgestellte Ansatz besteht darin, den DHT-Sensor an einem preiswerten ATtiny85 zu befestigen und als I2C-Slave-Gerät einzurichten. Dies wird mit der TinyWireS-Bibliothek und dem Erstellen eines Satzes von Registern erreicht, die gelesen und geschrieben werden können, um mit dem Gerät zu interagieren.

Das Gerät unterstützt folgende Funktionen:

Der Quellcode

Es gibt drei Codesätze in diesem Projekt. Die Hauptfirmware für das Board, eine Arduino-Masterskizze, die zum Testen und Demonstrieren des Boards verwendet wird, während es mit einem Arduino Uno verbunden ist, und die Window 10 IoT Code-Anwendung, die die Verwendung des Geräts vom Raspberry Pi demonstriert. Der gesamte Code ist im verlinkten GitHub-Repository verfügbar.

Das Gerät/die Schaltung

Die Schaltung ist klein und verwendet nur wenige kostengünstige Komponenten. Der ATtiny85 kann von mehreren Anbietern erworben werden. Ich empfehle, ein paar davon mitzunehmen, da sie viele nützliche Zwecke haben.

Die Schaltung hat einen sechspoligen Header, mit dem sie mit einer anderen Schaltung oder direkt mit dem Raspberry Pi verbunden werden kann. Die Pins sind wie folgt definiert:

Es gibt auch einen zweipoligen Header, an dem ein Jumper hinzugefügt oder entfernt werden kann, um die integrierte LED zu deaktivieren.

Wenn Sie dies in einem größeren Projekt verwenden, kann die Schaltung für den DHT Tiny zusammengeführt oder in die bestehende Schaltung des Projekts eingebettet werden. In diesem Fall sind die Header-Pins und die LED optional.

Die Schaltung kann auch auf einer separaten Platine aufgebaut und mit ein paar Drähten oder einem Verbindungskabel an deinen Raspberry Pi angeschlossen werden.

Programmieren des ATtiny85

Laden Sie die Skizze mit dem Namen DHT_Tiny_Breakout.ino auf den ATtiny85 mit Ihrem AVR-Programmierer. Wenn Sie keinen Programmierer haben, können Sie ein Arduino Uno (oder ein ähnliches Board) verwenden. Sehen Sie sich einen oder mehrere der unten aufgeführten Artikel an, um Hilfe zu erhalten.

Ich verwende den SparkFun Tiny AVR Programmer, um meinen ATtiny85 zu laden.

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

Bei Verwendung des ATtiny85 erfordert die Slave-Skizze die TinyWireS Bibliothek, die in Ihrem Bibliotheksordner installiert werden soll. Diese Bibliothek kann von https://github.com/rambo/TinyWire heruntergeladen werden.

Breadboard the Circuit

Der erste Schritt besteht darin, das DHT Tiny auf einem Steckbrett zum Laufen zu bringen. Verwenden Sie ein Steckbrett halber Größe, um die Schaltung aufzubauen, indem Sie den im Projekt enthaltenen Schaltplänen und Steckbrettdiagrammen folgen.

Hier sind ein paar Tipps, um es einfacher zu machen:

Unten sind einige Bilder der Steckbrettversion meines DHT Tiny.

Anschließen des Arduino Uno

Wenn Sie an einem schnellen Test oder einer Demonstration interessiert sind oder Probleme haben, dies mit Ihrem Raspberry Pi zum Laufen zu bringen, können Sie das DHT Tiny mit einem Arduino Uno (oder einem ähnlichen Gerät) verbinden.

Laden Sie die Skizze mit dem Namen DHT_Tiny_Master.ino . und führen Sie sie aus . Diese Skizze zeigt die Ausgabe im Serienmonitor . an .

Beim Anschließen des I2C zwischen den beiden Boards ist es wichtig, Pull-Up-Widerstände auf den SDA- und SCL-Leitungen zu haben. In dieser Schaltung sind zwei 4,7K zwischen den Pins und 5V angeschlossen.

Unten sind einige Bilder des DHT Tiny Steckbretts, das mit dem Arduino Uno verbunden ist.

Verbindung zum Raspberry Pi

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

Beim Anschließen des I2C zwischen den beiden Boards ist es wichtig, Pull-Up-Widerstände auf den SDA- und SCL-Leitungen zu haben. In dieser Schaltung sind zwei 4,7K zwischen den Pins und 3V3 angeschlossen.

SEHR WICHTIG! Das DHT Tiny Board wird vom 5V-Pin des Raspberry Pi mit Strom versorgt, aber die Pull-up-Widerstände müssen mit dem 3V3-Pin des Raspberry Pi verbunden werden (3V3 liegt an den Pins 1 und 17).

Unten sind einige Bilder des DHT Tiny Steckbretts, das mit dem Raspberry Pi 3 verbunden ist.

Ausführen der Windows 10-Anwendung

Holen Sie sich den Code aus dem GitHub-Repository-Link am Ende des Projekts und entpacken Sie ihn auf Ihrem Computer. Öffnen Sie den Universal Application-Quellcode in Visual Studio 2015 und stellen Sie ihn entweder auf dem Raspberry Pi bereit und starten Sie ihn über die Admin-Konsole oder führen Sie ihn im Debug-Modus von Visual Studio aus.

Wenn Sie zum ersten Mal Code aus Visual Studio für eine Windows 10 IoT Core-Anwendung ausführen, sehen Sie sich diese Artikel von Microsoft an:

Sehen Sie sich die Videodemonstration unten an, um zu sehen, wie die Anwendung auf einem Raspberry Pi 3 läuft, während sie mit dem DHT Tiny verbunden ist.

Anwendungshighlights

Die Windows 10 UWP-Anwendung ist eine Demonstrationsanwendung, die alle Funktionen des DHT Tiny vorführt. Der Code zeigt die aktuelle Temperatur, Luftfeuchtigkeit und andere Registerwerte des Geräts an. Die Benutzeroberfläche bietet auch die Möglichkeit, die Konfiguration des Geräts einschließlich der Geräteadresse zu ändern.

DHT Tiny Library

Der Beispielcode verwendet eine Bibliothek, die für die Interaktion mit dem DHT Tiny geschrieben wurde. Diese Bibliothek ist sofort einsatzbereit und kann direkt in alle Ihre Anwendungen eingebunden werden.

Holen Sie sich die Bibliothek von NuGet

Wenn Sie das Projekt nicht direkt in Ihre Anwendung einbinden möchten, laden Sie einfach die DHT Tiny-Bibliothek von NuGet mit dem unten gezeigten Befehl herunter. Öffnen Sie die Paket-Manager-Konsole in Visual Studio und geben Sie den Befehl ein.

PM> Installationspaket IoT.DhtTiny 

Scannen des i2c-Busses nach dem Gerät

Die DHT Tiny-Bibliothek enthält eine Methode, die den i2c-Bus nach DHT Tiny-Geräten durchsucht und eine Liste von Adressen zurückgibt. Diese Liste kann verwendet werden, um eines oder mehrere der gefundenen Geräte zu initialisieren. Dies ist besonders praktisch, wenn Sie die Adresse des Geräts geändert haben, sich aber nicht mehr erinnern können, auf was Sie die Adresse eingestellt haben. Beachten Sie, dass die Rückrufmethode optional ist.

// ***// *** Zählen Sie die DHT Tiny-Geräte auf dem i2c-Bus auf.// ***IEnumerable address =wait DhtTiny.FindAllDhtTinyAsync(this. FindAllDhtTinyCallback);// ***// *** Rückrufmethode// ***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());}  

Schema von DHT Tiny Breakout für den Raspberry Pi

Software-Demonstration

Dieses Video zeigt, wie die Universalanwendung auf einem Raspberry Pi 3 läuft, der mit dem DHT Tiny auf einem Steckbrett verbunden ist.

[VIDEO DEMNÄCHST]

Erstellen des letzten Geräts

Der einfachste und kostengünstigste Weg, das Board zu erstellen, besteht darin, ein PCB-Prototyp-Board wie das Perma-Proto Quarter-Size Breadboard PCB von Adafruit zu verwenden. Das Bild unten zeigt den Breakout mit diesem Prototyp-Board. Beachten Sie, dass ich einen Dremel verwendet habe, um die Stromschienenabschnitte des Boards zu entfernen.

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


Herstellungsprozess

  1. Temperaturüberwachung auf dem Raspberry Pi
  2. Raspberry Pi 2 Wetterstation
  3. Analoge Sensoren ohne analoge Eingänge auf dem Raspberry Pi
  4. HC-SR04 Ultraschall-Reichweitensensor auf dem Raspberry Pi
  5. Das beste Zubehör für Ihren Raspberry Pi
  6. Analoge Sensoren auf dem Raspberry Pi mit einem MCP3008
  7. SICHT:Für Blinde
  8. Anleitung zum Anschluss von Qwiic HAT für Raspberry Pi
  9. Windows 10 IoT Core für Raspberry Pi 3 Model B+
  10. Bau des MonkMakes Raspberry Pi Robot Kit