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); } } |