#include <LiquidCrystal_I2C.h>
#include "DHTesp.h"
const int DHT_PIN = 15;
const int NUM_READINGS = 10; // Number of readings to average
DHTesp dhtSensor;
LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 16, 2);
float tempReadings[NUM_READINGS];
float humidityReadings[NUM_READINGS];
int currentIndex = 0;
void setup() {
Serial.begin(115200);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
lcd.init();
lcd.backlight();
}
void loop() {
// Generate random temperature and humidity values
float randomTemp = random(0, 50); // Random temperature between 0°C and 50°C
float randomHumidity = random(0, 100); // Random humidity between 0% and 100%
// Store readings
tempReadings[currentIndex] = randomTemp;
humidityReadings[currentIndex] = randomHumidity;
currentIndex = (currentIndex + 1) % NUM_READINGS;
// Calculate average
float avgTemp = 0;
float avgHumidity = 0;
for (int i = 0; i < NUM_READINGS; i++) {
avgTemp += tempReadings[i];
avgHumidity += humidityReadings[i];
}
avgTemp /= NUM_READINGS;
avgHumidity /= NUM_READINGS;
// Print average values
Serial.println("Average Temp: " + String(avgTemp, 2) + "°C");
Serial.println("Average Humidity: " + String(avgHumidity, 1) + "%");
Serial.println("---");
lcd.setCursor(0, 0);
lcd.print(" Temp: " + String(avgTemp, 2) + "\xDF" + "C");
lcd.setCursor(0, 1);
lcd.print(" Humidity: " + String(avgHumidity, 2) + "%");
delay(2000); // Wait for next iteration
}