#include #include #define DHT_SENSOR_TYPE DHT_TYPE_11 static const int DHT_SENSOR_PIN = 2; DHT_nonblocking dht_sensor(DHT_SENSOR_PIN, DHT_SENSOR_TYPE); // LCD: RS E D4 D5 D6 D7 LiquidCrystal lcd(7, 8, 9, 10, 11, 12); // Funzione di misura static bool measure_environment(float *temperature, float *humidity) { static unsigned long measurement_timestamp = 0; // Ogni 3 secondi (3000ms) if (millis() - measurement_timestamp > 3000ul) { if (dht_sensor.measure(temperature, humidity) == true) { measurement_timestamp = millis(); return true; } } return false; } void setup() { lcd.begin(16, 2); lcd.print("Avvio..."); } void loop() { float temperature; float humidity; if (measure_environment(&temperature, &humidity)) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("Temp: "); lcd.print(temperature, 1); lcd.print((char)223); // Simbolo ° (gradi) lcd.print("C"); lcd.setCursor(0, 1); lcd.print("Umid: "); lcd.print(humidity, 1); lcd.print("%"); } // Nessun delay! Lascia il loop girare veloce }