Temperatur und Luftfeuchtigkeit messen mit dem Arduino Teil I 1/2

Den ursprünglichen Sketch aus dem Artikel vom 24.12. habe ich so abgeändert, dass jetzt in der ersten Zeile die aktuelle Temperatur und Luftfeuchtigkeit gezeigt wird und in der zweiten Zeile die Min/Max Werte für die gemessene Temperatur.

// Beispielcode, um Temperatur/Luftfeuchtigkeit
// eines DHT22 auf einem Sparkfun SerialLCD auszugeben
 
#include "DHT.h"
#include <SoftwareSerial.h>
 
#define DHTPIN 2     // Pin für den DHT22
SoftwareSerial mySerial(4,3); // SoftwareSerial für das LCD
 
#define DHTTYPE DHT22   // DHT 22  (AM2302)
DHT dht(DHTPIN, DHTTYPE);
 
float maxtemp = 0.0;
float mintemp = 100.0;
 
 
void setup() {
  mySerial.begin(9600); // starte LCD Verbindung
  Serial.begin(9600); // starte zus. serielle Verbindung
  delay(500); // wait for display to boot up
 
  mySerial.write(254); // setze Cursor in die erste Zeile
  mySerial.write(128);
 
  mySerial.write("                "); // clear LCD
  mySerial.write("                ");
  delay(500);
  mySerial.write("  DHT22 Sensor");
 
  dht.begin();
}
 
char tempstring[10], humstring[10];
 
void loop() {
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  delay(5000); // lese alle 5 Sekunden ein
 
  // check if returns are valid, if they are NaN (not a number) then something went wrong!
  if (isnan(t) || isnan(h)) {
    mySerial.write(254); // move cursor to beginning of first line
    mySerial.write(128);
    mySerial.println("DHT22 nicht gefunden");
  } else {
    mySerial.write(254); // move cursor to beginning of first line
    mySerial.write(128);
    mySerial.write("                "); // clear display
    mySerial.write("                ");
    mySerial.write(254); // move cursor to beginning of first line
    mySerial.write(128); 
    mySerial.print(t);
    mySerial.print(" *C ");      
    mySerial.print(h);
    mySerial.print("%");
    mySerial.write(254); // move cursor to beginning of 2nd line
    mySerial.write(192);
    if (t<mintemp){mintemp = t;};
    if (t>maxtemp){maxtemp = t;};
    mySerial.print(mintemp);
    mySerial.print(" ");
    mySerial.print(maxtemp);
    Serial.println(t);
 
  }
}

Uwe

Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website