Sistema di Raffreddamento Solare con Arduino: Due Ventole Attivate dalla Temperatura

Introduzione

In questo progetto realizziamo un sistema di raffreddamento automatico alimentato da energia solare, in grado di attivare due ventole quando la temperatura supera determinate soglie. La soluzione è ideale per armadi elettrici, centraline elettroniche, serre, quadri di comando, box per apparecchiature e piccoli locali tecnici.

Il sistema utilizza un pannello solare da 12 V, un Arduino Nano e un sensore di temperatura DS18B20 per controllare automaticamente la ventilazione.

Principio di Funzionamento

Il pannello solare alimenta un convertitore DC-DC (buck converter) che genera una tensione stabile di 5 V per Arduino e per le ventole.

Arduino legge continuamente la temperatura tramite il sensore DS18B20 e gestisce due ventole secondo le seguenti soglie:

  • Ventola 1: accensione a 30 °C
  • Ventola 2: accensione a 35 °C
  • Spegnimento con isteresi di 2 °C

Questo evita continui cicli di accensione e spegnimento quando la temperatura oscilla attorno alla soglia.

Componenti Necessari

  • Arduino Nano
  • Sensore DS18B20 impermeabile
  • Modulo MOSFET Dual Trigger 5-36 V
  • Due ventole da 5 V
  • Pannello solare 12 V (consigliato 20 W)
  • Buck converter 12 V → 5 V
  • Resistenza da 4,7 kΩ
  • Condensatore da 2200 µF

Collegamenti

Sensore DS18B20

  • Rosso → 5V Arduino
  • Nero → GND Arduino
  • Giallo → D2 Arduino
  • Resistenza 4,7 kΩ tra DATA (giallo) e 5V

Modulo MOSFET

  • IN1 → D5 Arduino
  • IN2 → D6 Arduino
  • VCC → 5V
  • GND → GND

Ventole

  • Filo rosso → 5V
  • Filo nero ventola 1 → OUT1 MOSFET
  • Filo nero ventola 2 → OUT2 MOSFET

Schema di Alimentazione

Pannello Solare 12 V → Buck Converter → Arduino Nano + Modulo MOSFET + Ventole

Tutti i collegamenti di massa (GND) devono essere in comune.

Codice Arduino Completo

#include <OneWire.h>
#include <DallasTemperature.h>

#define PIN_DS18B20 2
#define FAN1_PIN 5
#define FAN2_PIN 6

OneWire oneWire(PIN_DS18B20);
DallasTemperature sensors(&oneWire);

const float TEMP_FAN1_ON = 30.0;
const float TEMP_FAN2_ON = 35.0;
const float ISTERESI = 2.0;

const int FAN_ON = HIGH;
const int FAN_OFF = LOW;

bool fan1State = false;
bool fan2State = false;

void setup() {

  Serial.begin(9600);

  pinMode(FAN1_PIN, OUTPUT);
  pinMode(FAN2_PIN, OUTPUT);

  digitalWrite(FAN1_PIN, FAN_OFF);
  digitalWrite(FAN2_PIN, FAN_OFF);

  sensors.begin();

  Serial.println("Sistema avviato");

  Serial.print("Sensori trovati: ");
  Serial.println(sensors.getDeviceCount());
}

void loop() {

  sensors.requestTemperatures();
  float temp = sensors.getTempCByIndex(0);

  Serial.print("Temperatura: ");
  Serial.println(temp);

  if (temp == DEVICE_DISCONNECTED_C || temp < -40 || temp > 125) {

    Serial.println("Errore sensore");

    digitalWrite(FAN1_PIN, FAN_OFF);
    digitalWrite(FAN2_PIN, FAN_OFF);

    fan1State = false;
    fan2State = false;

    delay(2000);
    return;
  }

  if (!fan1State && temp >= TEMP_FAN1_ON) {

    fan1State = true;
    digitalWrite(FAN1_PIN, FAN_ON);

    Serial.println("Ventola 1 ON");
  }

  if (fan1State && temp <= TEMP_FAN1_ON - ISTERESI) {

    fan1State = false;
    digitalWrite(FAN1_PIN, FAN_OFF);

    Serial.println("Ventola 1 OFF");
  }

  if (!fan2State && temp >= TEMP_FAN2_ON) {

    fan2State = true;
    digitalWrite(FAN2_PIN, FAN_ON);

    Serial.println("Ventola 2 ON");
  }

  if (fan2State && temp <= TEMP_FAN2_ON - ISTERESI) {

    fan2State = false;
    digitalWrite(FAN2_PIN, FAN_OFF);

    Serial.println("Ventola 2 OFF");
  }

  delay(2000);
}

Librerie Necessarie

Installare dall’Arduino IDE:

  • OneWire
  • DallasTemperature

Vantaggi del Sistema

  • Alimentazione completamente solare
  • Nessuna batteria da sostituire
  • Bassi consumi energetici
  • Ventilazione automatica intelligente
  • Componenti economici e facilmente reperibili
  • Possibilità di espansione con display LCD, Wi-Fi o monitoraggio remoto

Conclusioni

Questo progetto rappresenta una soluzione semplice ed efficace per il raffreddamento automatico di apparecchiature elettroniche e ambienti tecnici. Grazie all’utilizzo di Arduino e di un sensore digitale di temperatura, il sistema è facilmente personalizzabile e può essere adattato a numerose applicazioni professionali e hobbistiche.

L’alimentazione tramite pannello solare rende l’impianto ecologico, economico e particolarmente adatto a installazioni remote o prive di rete elettrica.