commit f28c0a586a3ab766272b7a4221ad99225b5913d2 Author: Cd16d Date: Wed Jun 11 15:37:32 2025 +0200 add Thermometer diff --git a/Thermometer/DHT.zip b/Thermometer/DHT.zip new file mode 100644 index 0000000..8ccc1a7 Binary files /dev/null and b/Thermometer/DHT.zip differ diff --git a/Thermometer/Thermometer.ino b/Thermometer/Thermometer.ino new file mode 100644 index 0000000..9f6f45a --- /dev/null +++ b/Thermometer/Thermometer.ino @@ -0,0 +1,56 @@ +#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 +}