arduino_ale

mail@pastecode.io avatar
unknown
c_cpp
3 years ago
1.3 kB
0
Indexable
Never
#include <LiquidCrystal_I2C.h>
#include <DHT.h>

float hum; // Variabile per l'umidità
float temp; // Temperatura
float prevTemp;

#define POMPA_MOTORE 2
#define SENS_TEMP 7
#define SENS_UMID A3
#define DHTTYPE DHT22

LiquidCrystal_I2C lcd(0x27, 16, 2);

DHT dht(SENS_TEMP, DHTTYPE);
void setup()
{
    pinMode(SENS_UMID, INPUT);     // Sensore umidità
    pinMode(POMPA_MOTORE, OUTPUT); // Motore pompa
    pinMode(SENS_TEMP, INPUT);
    Serial.begin(9600);            // Inizializzazione dela board con 9600
    lcd.begin(); // Inizializziamo l'LCD
    
    lcd.print("Loading...");
    dht.begin(); // Inizializziamo il sensore di temperatura
}

void loop()
{
    delay(500);
    prevTemp = temp;
    hum = analogRead(SENS_UMID); // Porta Analogica per il sensore di umidità
    temp = dht.readTemperature(); // Lettura temperatura
    
    lcd.clear(); // Clear del contenuto dell'LCD
    if(!isnan(temp))
    {
      lcd.print(temp); // Stampa la temperatura
    } else {
      lcd.print("Calculating..."); // Altrimenti aspettiamo che "calcoli" hehe
    }

    // Se il valore dell'umidità è superiore a 600 attiva pompa altrimenti disattivala
    if (hum > 600)
    {
        digitalWrite(POMPA_MOTORE, HIGH); // Pompa attivata
    }
    else
    {
        digitalWrite(POMPA_MOTORE, LOW); // Pompa disattivata
    }
}