Files
Arduino/Thermometer/Thermometer.ino
2025-06-11 15:37:32 +02:00

57 lines
1.1 KiB
C++

#include <LiquidCrystal.h>
#include <dht_nonblocking.h>
#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
}