#include <DHT.h>
#include <LiquidCrystal.h>
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
const int rs = 10, en = 9, d4 = 5, d5 = 4, d6 = 3, d7 = 8;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
float temperatureSum = 0.0;
int numReadings = 0;
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
dht.begin();
}
void loop() {
float temperature = readTemperature();
if (!isnan(temperature)) {
temperatureSum += temperature;
numReadings++;
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(temperature);
lcd.print("C");
if (numReadings == 10) {
float averageTemperature = temperatureSum / numReadings;
lcd.setCursor(0, 1);
lcd.print("Avg Temp: ");
lcd.print(averageTemperature);
lcd.print("C");
temperatureSum = 0.0;
numReadings = 0;
}
delay(2000);
} else {
lcd.clear();
lcd.print("Failed to read");
delay(2000);
}
}
float readTemperature() {
delay(2000);
float temperature = dht.readTemperature();
return temperature;
}