Hallo,
ich baue gerade eine Art "Wetterstation" mit meinem Arduino dazu verwende ich zweimal den DHT22 um die Temperatur und Luftfeuchtigkeit innen und außen zu messen. Ich habe nun das Problem, dass ich einen Befehl (Fett gedruckt) nicht einfach doppelt verwenden kann. Was macht dieser Befehl ? Wie kann ich einfach beide Sensoren verwenden?
Danke im Voraus!
Code:
#include <SimpleDHT.h>
#include <LiquidCrystal.h>
int pinDHT22in = 8;
int pinDHT22out = 9;
int Sensorwert;
const uint8_t rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
SimpleDHT22 dht22(pinDHT22in);
void setup(){
Serial.begin(115200); // Damit unsere Werte später im seriellen Monitor angezeigt werden können, legen wir zuerst die Baudrate 9600 fest.
pinMode( 0 , INPUT); // Pin 0 dient nun als Input
lcd.begin(20, 4); //Im Setup wird angegeben, wie viele Zeichen und Zeilen verwendet werden. Hier: 16 Zeichen in 4 Zeilen.
lcd.clear();
}
void loop()
{
Sensorwert = analogRead(0); // Zuerst wird der Wert (gas) am Pin A0 ausgelesen...
Serial.print("Der erfasste Wert lautet : ");
Serial.println(Sensorwert, DEC); //... und anschließend im seriellen Monitor als Dezimalzahl ausgegeben.
Serial.println();
lcd.setCursor(0, 0);
lcd.print("Messwert (gas): ");
lcd.print(Sensorwert);
delay(1000);
float temperature = 0;
float humidity = 0;
int err = SimpleDHTErrSuccess;
if((err=dht22.read2(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess){
lcd.setCursor(0, 1);
lcd.print("Read DHT22 failed, err=");
lcd.print(err);
delay(2000);
return;
}
lcd.setCursor(0, 1);
lcd.print("Temp(in): ");
lcd.print((float)temperature);
lcd.print(" *C");
lcd.setCursor(0, 2);
lcd.print("Luftfeuchte: ");
lcd.print((float)humidity);
lcd.print("%");
delay(2500); // DHT22 sampling rate is 0.5HZ.
delay(1000);
}