INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
mehrere DHT11 / DHT22 und LCD HD44780
21.02.2016, 16:05 (Dieser Beitrag wurde zuletzt bearbeitet: 21.02.2016 18:15 von MKnet83.)
Beitrag #1
Photo mehrere DHT11 / DHT22 und LCD HD44780
Da ich mehrere DHT11 (Luftfeuchtigkeits- und Temperatursensoren) auslesen wollte und nicht viel dazu auf deutschen Seiten zu finden war - entweder nur 1 Sensor oder der Code hat bei mir nicht funktioniert - möchte ich das als kleines Anfängertutorial hier reinstellen.
Ich habe den Schaltplan und den Code für 3 Sensoren (kann leicht erweitert werden) des Typs DHT11 (kann im Code auch auf DHT22 geändert werden) ausgelegt.
An der Schaltung hängt noch ein 16x2 LCD Display mit HD44780 Chip.
Es wird nacheinander Sensor 1 ausgelesen und Temperatur und Luftfeuchtigkeit auf dem Display angezeigt, danach das selbe mit Sensor 2 und danach mit Sensor 3.
Der Code kann aber auch abgeändert werden, um alles über den seriellen Monitor anzuzeigen, oder man verwendet ein größeres oder mehrere Displays um alles gleichzeitig anzeigen zu lassen.

[Bild: 24660291pz.jpg]

Code:
#include <DHT.h>                        // DHT-Bibliothek einbinden
#include <LiquidCrystal.h>            // LCD-Bibliothek einbinden

#define DHT1_Pin 5                     // Datenpin des DHT11(1) ist Pin 5
#define DHT2_Pin 6                     // Datenpin des DHT11(2) ist Pin 6
#define DHT3_Pin 7                     // Datenpin des DHT11(3) ist Pin 7

// Je nachdem, ob Sensoren vom Typ DHT11 oder DHT 22 benutzt werden die entsprechende "DHT_Typ"-Zeile benutzen
// Hier wird der DHT11 benutzt 

#define DHT_Typ DHT11                    // DHT 11 als Sensortyp festlegen
//#define DHT_Typ DHT22                 // DHT 22 als Sensortyp festlegen

DHT dht1(DHT1_Pin, DHT_Typ);         // Sensor 1 initialisieren
DHT dht2(DHT2_Pin, DHT_Typ);         // Sensor 2 initialisieren
DHT dht3(DHT3_Pin, DHT_Typ);         // Sensor 3 initialisieren

LiquidCrystal lcd(13,12,11,10,9,8);       // Display initialisieren
                                                        // Pins LCD->Arduino: RS->13, E->12, D4->11, D5->10, D6->9, D7->8  

void setup() {

  dht1.begin();                                   // Sensor 1 starten
  dht2.begin();                                   // Sensor 2 starten
  dht3.begin();                                   // Sensor 3 starten
  
  lcd.begin(16,2);                               // Display starten
  
}

void loop() {

  // Da das Display nur 2 Zeilen hat, werden die 3 Sensoren nacheinander ausgelesen und angezeigt
  
  float h1 = dht1.readHumidity();          // Auslesen der Luftfeuchtigkeit (Sensor 1)
  float t1 = dht1.readTemperature();    // Auslesen der Temperatur (Sensor 2)

  lcd.setCursor(0,0);                           // 1. Zeichen, 1. Zeile
  lcd.print("T1: ");                              // Temp.: anzeigen
  lcd.print(t1);                                    // Temperaturwert anzeigen
  lcd.print(" C");                                 // C anzeigen
  lcd.setCursor(0,1);                          // 1. Zeichen, 2. Zeile
  lcd.print("F1: ");                             // Feuchte: anzeigen
  lcd.print(h1);                                 // Feuchtigkeitswert anzeigen
  lcd.print(" %");                             // % anzeigen
  delay(5000);                                 // 5 Sekunden Pause bis zur nächsten Messung
  
  float h2 = dht2.readHumidity();       // Auslesen der Luftfeuchtigkeit (Sensor 2)
  float t2 = dht2.readTemperature(); // Auslesen der Temperatur (Sensor 2)

  lcd.setCursor(0,0);                        // 1. Zeichen, 1. Zeile
  lcd.print("T2: ");                           // Temp.: anzeigen
  lcd.print(t2);                                // Temperaturwert anzeigen
  lcd.print(" C");                             // C anzeigen
  lcd.setCursor(0,1);                      // 1. Zeichen, 2. Zeile
  lcd.print("F2: ");                         // Feuchte: anzeigen
  lcd.print(h2);                              // Feuchtigkeitswert anzeigen
  lcd.print(" %");                          // % anzeigen
  delay(5000);                             // 5 Sekunden Pause bis zur nächsten Messung
  
  float h3 = dht3.readHumidity();       // Auslesen der Luftfeuchtigkeit (Sensor 2)
  float t3 = dht3.readTemperature(); // Auslesen der Temperatur (Sensor 2)

  lcd.setCursor(0,0);                        // 1. Zeichen, 1. Zeile
  lcd.print("T3: ");                           // Temp.: anzeigen
  lcd.print(t3);                                // Temperaturwert anzeigen
  lcd.print(" C");                             // C anzeigen
  lcd.setCursor(0,1);                      // 1. Zeichen, 2. Zeile
  lcd.print("F3: ");                         // Feuchte: anzeigen
  lcd.print(h3);                              // Feuchtigkeitswert anzeigen
  lcd.print(" %");                           // % anzeigen
  delay(5000);                             // 5 Sekunden Pause bis zur nächsten Messung

}


.ino  DHT11_Mehrere.ino (Größe: 3,42 KB / Downloads: 82)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.02.2016, 18:13
Beitrag #2
RE: mehrere DHT11 / DHT22 und LCD HD44780
Sehr gut, ist eine interessante Anregung und spornt mich an, auch mal etwas mit dem DHT11/DHT22 zu machen.

Kleine Anmerkung zu den Code-Tags: der Anfangs-Tag "[code]" fehlt, setze den bitte noch rein, danke.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.02.2016, 18:16
Beitrag #3
RE: mehrere DHT11 / DHT22 und LCD HD44780
(21.02.2016 18:13)hotsystems schrieb:  Sehr gut, ist eine interessante Anregung und spornt mich an, auch mal etwas mit dem DHT11/DHT22 zu machen.

Kleine Anmerkung zu den Code-Tags: der Anfangs-Tag "[code]" fehlt, setze den bitte noch rein, danke.

Danke, das habe ich übersehen. Ich habe mich schon gewundert, dass mein eingefügter Code so komisch aussieht und bei den anderen immer so gutBig Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste