PROGETTI ARDUINO

  • HOME
  • 200 Progetti
  • PROGETTI E TUTORIAL
  • PROGETTI E TUTORIAL 2
  • ELETTRONICA
  • RECENSIONI
  • MANUALE
  • CONTATTI
  • HOME
  • 200 Progetti
  • PROGETTI E TUTORIAL
  • PROGETTI E TUTORIAL 2
  • ELETTRONICA
  • RECENSIONI
  • MANUALE
  • CONTATTI

Progetto 97
​Sistema controllo temperatura avanzato

🧠 Introduzione

Dopo aver realizzato diversi progetti di monitoraggio ambientale, in questo progetto facciamo un passo in avanti costruendo un sistema completo di controllo della temperatura.

L’obiettivo non è più soltanto leggere un valore, ma gestire attivamente l’ambiente attraverso un sistema intelligente capace di attivare automaticamente dispositivi di raffreddamento o riscaldamento.

Utilizzeremo il sensore DHT11 per rilevare la temperatura e un display LCD per visualizzare i dati in tempo reale. In base alle soglie impostate, Arduino attiverà una ventola oppure un sistema di riscaldamento.

A differenza dei progetti più semplici, qui introduciamo anche il concetto di isteresi, fondamentale nei sistemi reali per evitare accensioni e spegnimenti continui dei dispositivi.
​
Questo progetto rappresenta una base concreta per applicazioni come:
  • controllo climatico domestico
  • gestione ambientale di serre
  • sistemi di raffreddamento elettronico
  • automazione intelligente

🧰 Materiale necessario
​
  • Arduino UNO
  • Sensore DHT11
  • Display LCD 16x2 con I2C
  • Modulo relè (o LED per simulazione)
  • Breadboard
  • Cavi jumper
🛒 Componenti e risorse consigliate

👉 Kit Arduino consigliato: https://amzn.to/41fmFNK
💡 Con un solo kit puoi realizzare la maggior parte dei progetti presenti nel sito.

📚 I miei libri consigliati
​

👉 Arduino per tutti – Volume 1: https://amzn.to/4rGNxB9
👉 Arduino per tutti – Volume 2: https://amzn.to/4bkfaey
👉 Arduino per tutti – Volume 3: https://amzn.to/4bogjAg

🔌 Schema di collegamento

Sensore DHT11
  • VCC → 5V Arduino
  • GND → GND Arduino
  • DATA → Pin 2 Arduino

Display LCD (I2C)
  • VCC → 5V Arduino
  • GND → GND Arduino
  • SDA → Pin A4 Arduino
  • SCL → Pin A5 Arduino

Attuatori
  • Ventola / relè raffreddamento → Pin 7
  • Riscaldamento / relè → Pin 8

⚠️ Tutti i GND devono essere collegati insieme.
Foto

📚 Librerie necessarie
​
  • DHT.h
  • LiquidCrystal_I2C
Installabili dal gestore librerie dell’IDE Arduino.

​💻 Codice Arduino
​// ============================================
// Progetto 97 - Controllo temperatura avanzato
// Raffreddamento + riscaldamento + isteresi
// ============================================

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>

// Inizializzazione display LCD
LiquidCrystal_I2C lcd(0x27, 16, 2);

// Configurazione sensore DHT11
#define DHTPIN 2
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

// Attuatori
int ventola = 7;
int riscaldamento = 8;

// Soglie temperatura
float tempMax = 28;
float tempMin = 20;

void setup() {
  lcd.init();          // Avvia display
  lcd.backlight();     // Attiva retroilluminazione

  dht.begin();         // Avvia sensore

  pinMode(ventola, OUTPUT);
  pinMode(riscaldamento, OUTPUT);

  Serial.begin(9600);
}

void loop() {

  // Lettura temperatura
  float temperatura = dht.readTemperature();

  // Controllo errore sensore
  if (isnan(temperatura)) {
    lcd.clear();
    lcd.print("Errore sensore");
    return;
  }

  // Visualizzazione su LCD
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Temp: ");
  lcd.print(temperatura);
  lcd.print(" C");

  // Logica di controllo con isteresi
  if (temperatura > tempMax) {
    // Attiva raffreddamento
    digitalWrite(ventola, HIGH);
    digitalWrite(riscaldamento, LOW);

    lcd.setCursor(0, 1);
    lcd.print("Raffreddamento");
  }
  else if (temperatura < tempMin) {
    // Attiva riscaldamento
    digitalWrite(ventola, LOW);
    digitalWrite(riscaldamento, HIGH);

    lcd.setCursor(0, 1);
    lcd.print("Riscaldamento");
  }
  else {
    // Zona stabile
    digitalWrite(ventola, LOW);
    digitalWrite(riscaldamento, LOW);

    lcd.setCursor(0, 1);
    lcd.print("Temperatura OK");
  }

  delay(2000); // aggiornamento ogni 2 secondi
}

⚙️ Come funziona

Arduino legge continuamente la temperatura dal sensore DHT11 e la visualizza sul display LCD.

Se la temperatura supera la soglia massima, viene attivato il sistema di raffreddamento. Se invece scende sotto la soglia minima, viene attivato il riscaldamento.
​
Tra le due soglie, il sistema rimane stabile e non attiva nessun dispositivo. Questo comportamento evita continui cicli di accensione e spegnimento, rendendo il sistema più efficiente e realistico.

🔁 Varianti possibili
​
  • Sensore DHT22 (più preciso)
  • Controllo anche dell’umidità
  • Aggiunta buzzer di allarme
  • Sistema completamente automatico domotico

Foto

© ProgettiArduino.com 2026 - Fancello Salvatore
​ Layout, immagini e testi sono di esclusiva proprietà di www.progettiarduino.com 
Privacy Policy