DHTTOP 10 Temperatur- und Feuchtigkeitssensor mit OLED mit Arduino Nano

DHTTOP 10 Temperatur- und Feuchtigkeitssensor mit OLED mit Arduino Nano
Arduino Nano ist eine kleine, leistungsstarke Mikrocontroller -Platte, die mit einer Vielzahl von Sensoren und Geräten interagieren kann. Der DHT11 -Sensor ist ein häufig verwendeter Sensor für die Messung von Temperatur und Luftfeuchtigkeit und kann leicht an ein Arduino -Nano -Tafel mit Pulloverdrähten und einem Breadboard angeschlossen werden.

In diesem Projekt werden wir den Arduino Nano- und DHT11 -Sensor verwenden, um ein Temperatur- und Feuchtigkeitsüberwachungssystem zu erzeugen. Der Arduino -Nano liest Temperatur- und Feuchtigkeitswerte von DHT11 und zeigt OLED auf.

Dieses Tutorial deckt den folgenden Inhalt ab:

1: Einführung in den DHT11 -Sensor

2: DHT11 -Sensor -Pinout

2.1: 3 Pin DHT11 -Sensor

2.2: 4 Pin DHT11 -Sensor

3: OLED -Anzeigemodul mit Arduino Nano

4: Installation der erforderlichen Bibliotheken

4.1: Arduino -Bibliothek für DHT -Sensor

4.2: Arduino -Bibliothek für OLED -Anzeige

5: Überprüfen Sie die I2C -Adresse der OLED -Anzeige in Arduino Nano

6: Arduino -Nano mit DHT11 -Sensor und OLED angrenzten

6.1: Schema

6.2: Code

6.3: Ausgabe

1: Einführung in den DHT11 -Sensor

Der DHT11-Sensor ist ein kompaktes und kostengünstiges Gerät zur Messung von Temperatur und Luftfeuchtigkeit. Arduino Nano mit DHT11 wird zum Entwerfen tragbarer Wetterstationen, HLK -Systeme und Heimautomationssysteme verwendet.

Der DHT11. Der Sensor kann sowohl die relative Luftfeuchtigkeit als auch die Temperatur messen und diese Daten über ein digitales Signal an einen Mikrocontroller oder ein anderes Gerät übertragen.

Der DHT11 -Sensor kann mit dem Arduino -Code integriert und gesteuert werden. Es kann mit Jumper-Drähten und einem Störbrett mit einem Mikrocontroller oder einem Einzelbrett-Computer an einen Mikrocontroller oder ein Einbrettungsbetrieb angeschlossen werden.

Eine wichtige Spezifikation von DHT11:

  • Die Betriebsspannung beginnt ab 3.5 V bis 5.5v
  • Sensorstrom beim Messen der Werte beträgt 0.3ma und Standby -Strom sind 60UA
  • Ausgangswerte als digitales Signal
  • Die Temperatur beginnt von 0 ° C bis 50 ° C
  • Luftfeuchtigkeit gemessen von 20% bis 90%
  • Temperatur und Luftfeuchtigkeit sind 16-Bit
  • Genauigkeit von ± 1 ° C für die Temperaturmessung und ± 1% für relative Luftfeuchtigkeitswerte

Jetzt haben wir die Grundlagen des DHT11 -Sensors behandelt. Jetzt werden wir die DHT11 -Pinout besprechen.

2: DHT11 -Sensor -Pinout

DHT11 hat zwei Varianten, eine mit 4 Stiften und eine mit 3 Pins. Der einzige Unterschied hier ist, dass der 4 -Pin -DHT11 -Sensor einen zusätzlichen Stift ohne Verbindung hat. Dieser Stift ist als als bezeichnet als als NC und für keinen Zweck verwendet.

Die 3 Stifte von DHT11 sind:

  • Stromspannungsstift
  • GND Pin
  • Digitales Datensignalstift

2.1: 3 Pin DHT11 -Sensor

Die folgende Pinout beträgt 3 Stifte DHT11:

1 Daten Ausgangstemperaturwerte und Luftfeuchtigkeitswerte
2 VCC Eingangsspannung zwischen 3.5 V bis 5.5v
3 GND GND

2.2: 4 Pin DHT11 -Sensor

Unten finden Sie die 4 -Pin -DHT11 -Sensor -Pinout:

Diese 4 Stifte des DHT11 -Sensors umfassen:

1 VCC Eingabe 3.5 V bis 5.5v
2 Daten Ausgangstemperatur- und Luftfeuchtigkeitswerte
3 NC Kein Verbindungsstift
4 GND GND

3: OLED -Anzeigemodul mit Arduino Nano

Das OLED -Display wird hauptsächlich mit zwei verschiedenen Kommunikationsprotokollen ausgestattet. Diese beiden sind I2C und SPI. Das SPI -Protokoll ist im Vergleich zu I2C schneller, aber I2C ist bevorzugt und hat den Vorteil gegenüber SPI aufgrund weniger erforderlich.

Das folgende Bild zeigt ein Arduino -Nano -Verbindungsdiagramm mit 128 × 64 Pixel (0.96 ") OLED -Anzeige.

Die folgende Tabelle anzeigen Pinout -Konfiguration von OLED mit Nano:

Da wir Arduino Nano mit einer OLED -Anzeige miteinander verbunden haben. Um Daten auf einem OLED -Bildschirm anzuzeigen, müssen wir zuerst einige erforderliche Bibliotheken installieren.

4: Installation der erforderlichen Bibliotheken

Wir trinken zwei Sensoren; Einer ist ein OLED -Display und der andere ist ein DHT11 -Sensor. Beide Sensoren benötigten separate Bibliotheken für die Funktionsweise. Jetzt installieren wir separate Bibliotheken für DHT11- und OLED -Bildschirme.

4.1: Arduino -Bibliothek für DHT -Sensor

Offene Ide, gehen Sie zu: Skizze> Bibliothek einschließen> Bibliotheken verwalten:

Man kann auch den Arduino Library Manager zur Installation von Bibliotheken verwenden. Suchen Sie die DHT11 -Sensorbibliothek und installieren Sie die aktualisierte Version. Diese Bibliothek liest Daten aus dem DHT11 -Sensor.

Jetzt werden wir die installieren Einheitliche Sensorbibliothek.

DHT11 -Sensorbibliotheken werden installiert. Als nächstes müssen die OLED -Bibliotheken installiert werden.

4.2: Arduino -Bibliothek für OLED -Anzeige

In IDE stehen eine Reihe von Bibliotheken für OLED -Anzeigen zur Verfügung. Wir werden die Adafruit GFX und die SSD1306 -Bibliothek für die OLED -Anzeige verwenden.

Öffnen Sie die IDE und durchsuchen Sie die SSD1306 -Bibliothek im Bibliotheksmanager:

Installieren Sie nach der Installation der SSD1306 -Bibliothek die GFX Bibliothek von Adafruit:

Wir haben Bibliotheken für beide Sensoren installiert und können jetzt Code in Arduino Nano hochladen. Aber davor ist es notwendig, die OLED I2C -Adresse zu überprüfen.

5: Überprüfen Sie die I2C -Adresse der OLED -Anzeige in Arduino Nano

I2C ermöglicht es, mehrere Geräte angeschlossen zu werden und über eine Zwei-Draht-Schnittstelle miteinander zu kommunizieren. Jedes I2C -Gerät muss eine eindeutige Adresse im Bereich von 0 bis 127 haben, um sicherzustellen, dass es auf der i2c -Linie identifiziert und kommuniziert werden kann. Mehrere Geräte mit derselben Adresse können nicht mit demselben i2C -Bus angeschlossen werden.

Verbinden Sie das OLED -Display mit Arduino Nano und nach Auswahl der Karte und Port in Arduino IDE den Code, den in Artikel Scan i2C -Geräten in Arduino angegeben ist. Nach dem Hochladen von Code erhalten wir die i2c -Adresse des OLED -Displays, die in unserem Fall ist 0x3c:

Wir werden diese I2C -Adresse im Arduino -Code definieren.

6: Arduino -Nano mit DHT11 -Sensor und OLED angrenzten

Für die Schnittstellen von Arduino Nano mit DHT11 wird ein digitaler Pin des Nano -Boards zum Datenwert verwendet. Den DHT11 mit Strom versorgen 5v Nano Board Pin wird miteinander verbunden.

Für OLED -Bildschirm I2C -Stifte SDA Und Scl bei A4 Und A5 Stecknadeln von Arduino Nano werden verwendet. Für die Leistung eines OLED -5 -V -Stifts Arduino Nano wird verwendet.

6.1: Schema

Unten ist das schematische Diagramm von Arduino -Nano mit DHT11 -Sensor und zum Anzeigen von Lesewerten Ein OLED -Bildschirm wird verwendet. Dieses schematische Bild besteht aus 3 Pin DHT11 -Sensor. 10 kΩ Pull -Up -Widerstand ist bei DHT11 -Ausgang integriert.

In ähnlicher Weise ist ein 4 -Pin -DHT11 -Sensor mit einem Nano -Board verbunden. Das OLED -Display ist mit der I2C -Kommunikation mit A4- und A5 -GPIO -Stiften von Nano verbunden. DHT11 -Pin 2 ist die Datenausgabe. Der 4 -Pin -DHT11 hat 1 Pin Extra, was nicht nützlich ist.

6.2: Code

Schließen Sie Arduino Nano an und laden Sie den angegebenen Code hoch:

#include /*Drahtkommunikationsbibliothek* /
#enthalten
#include /*OLED Adafruit Library* /
#enthalten
#include /*DHT -Sensorbibliothek* /
#define screen_width 128 /*128 Breite OLED in Pixel* /
#define screen_height 64 /*64 Höhe OLED in Pixel* /
Adafruit_ssd1306 display (screen_width, screen_height & draht, -1); /*I2c Anzeige Initialisierung*/
#Define dhtpin 4 /*DHT11 Signal Pin* /
#define dhttype dht11
//#DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 Definieren
//#DHTTYPE DHT21 Definieren // DHT 21 (AM2301)
DHT DHT (DHTPIN, DHTTYPE);
void setup ()
Serie.Beginnen Sie (9600);
DHT.Start();
Wenn(!Anzeige.begin (ssd1306_switchcapvcc, 0x3c)) /*OLED I2C -Adresse* /
Serie.println (f ("SSD1306 -Allokation fehlgeschlagen");
für(;;);

Verzögerung (2000);
Anzeige.ClearDisplay ();
Anzeige.setTextColor (weiß); /*Textfarbe*/

void Loop ()
Verzögerung (5000);
float t = DHT.ReadTemperature (); /*Temp*/////
float h = dht.lesheuchtigkeits (); /*Feuchtigkeit lesen*/
if (isnan (h) || isnan (t))
Serie.println ("konnte nicht vom DHT -Sensor gelesen werden!");

Anzeige.ClearDisplay (); /*Anzeige löschen*/
Anzeige.setTextSize (1); /*OLED -Schriftgröße*//
Anzeige.setCursor (0,0);
Anzeige.print ("Temperatur:");
Anzeige.setTextSize (2);
Anzeige.setCursor (0,10);
Anzeige.print (t); /*Temperatur in Celsius*//drucken
Anzeige.drucken(" ");
Anzeige.setTextSize (1);
Anzeige.cp437 (wahr);
Anzeige.schreiben (167);
Anzeige.setTextSize (2);
Anzeige.print ("c");
Anzeige.setTextSize (1);
Anzeige.setCursor (0, 35);
Anzeige.print ("Feuchtigkeit:");
Anzeige.setTextSize (2);
Anzeige.setCursor (0, 45);
Anzeige.Druck (h); /*druckt Feuchtigkeitsprozentsatz*//
Anzeige.drucken(" %");
Anzeige.Anzeige();

Zu Beginn des Code haben wir die OLED- und DHT -Sensorbibliotheken eingeschlossen. Die nächste OLED -Bildschirmgröße ist in Pixel definiert. Danach wird DHT -Sensortyp initialisiert. Wenn Sie einen anderen Typ von DHT11 verwenden, wenden Sie sich an den Sensoramen entsprechend im Code.

Als nächstes in Code haben wir DHT und OLED -Sensor initialisiert. Die OLED ist unter 0x3c I2C -Adresse verbunden. Die I2C -Adresse kann mit dem Code in diesem Artikel überprüft werden.

Die beiden Schwimmervariablen T Und H speichert die Temperatur- und Luftfeuchtigkeitswerte. Lasty in Code werden alle Werte mit den OLED -GFX -Bibliotheksfunktionen auf einem OLED -Bildschirm angezeigt.

6.3: Ausgabe

Die Ausgabe zeigt Temperatur- und Feuchtigkeitswerte in Echtzeit, die auf dem OLED -Bildschirm angezeigt werden:

Wir haben die Schnittstelle des OLED- und DHT11 -Sensors mit dem Arduino Nano Board abgeschlossen.

Abschluss

Arduino Nano kann in mehrere Sensoren integriert werden. Dieser Artikel umfasst die OLED- und DHT11 -Sensor -Schnittstelle mit Arduino Nano. Mit dem DHT11 haben wir die Temperatur und Feuchtigkeit gemessen, die auf OLED angezeigt werden. Mit dem angegebenen Code kann ein Arduino -Nano so programmiert werden.