Gestire dinamicamente una ventola tradizionale su Raspberry Pi via Home Assistant

5 minuti di lettura
SCOPI DEL PROGETTO:
  • Controllare una ventola tradizionale su Raspberry tramite Home Assistant
  • Livello di difficoltà: medio/basso
  • Costo: basso
CONCETTI AFFRONTATI:
  • Configurazione software
  • Assemblaggio hardware
COMPONENTI SOFTWARE UTILIZZATE:
COMPONENTI FISICI UTILIZZATI:
PROGETTO INDICATO PER:

home assistant -su raspberry pi

Note e disclaimer
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata ed realizzata SOLO da personale qualificato;
  • qualsiasi modifica attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno puro scopo didattico);
  • qualsiasi modifica attuata in proprio a un dispositivo ne fa decadere garanzia, omologazioni e certificazioni di qualità.
Revisione progetto: 1.0
Progetto ideato da: Paolo Bertolli
ATTENZIONE: Questa è una guida è adatta sia ad utenti Home Assistant Core che HASSIO (basta che sia in esecuzione su Raspberry Pi, ovviamente)

Abstract

Non è certo una novità che la dissipazione del calore dalle apparecchiature elettroniche sia, spesso, un grosso problema. Raspberry Pi, il mini computer più diffuso al mondo (comodo per tante diverse funzioni) non fa certo differenza, sebbene sia costruito talmente bene da riuscire, di per sé, a una discreta dissipazione passiva.

Ventola Raspberry Pi
una ventola per Raspberry Pi.

Il problema si pone quando si presentano dei picchi computazionali importanti (specialmente con il modello 4B), oppure quando, a prescindere, l’aria della stanza in cui è installato è calda, come per esempio capita d’estate. Per risolvere il problema è solitamente sufficiente collocare una piccola ventola di raffreddamento, la quale però solitamente presenta il problema di rimanere perennemente accesa, talvolta rumorosamente.

Una prima soluzione è stata quella di testare una ventola specifica, la nota Fan SHIM la quale, dotata di una micro board di controllo, consente – in abbinamento a una configurazione Home Assistant – di accendersi solo al raggiungimento di determinate temperature critiche, e spegnersi al di sotto di altre. A questa soluzione abbiamo dedicato una guida specifica per utenti Home Assistant.

Chi invece dispone di una ventola tradizionale non nativamente gestibile in modo dinamico (per esempio, molti case di protezione di Raspberry Pi ne montano una di questo tipo) può, tramite le tecniche spiegate in questo progetto, ottenere l’obiettivo di una regolazione automatica basata sulla temperatura interna di Raspberry Pi.

Ma la ventola serve davvero?

Si tratta di un tema molto dibattuto. Quello che si è capito è che a prescindere il Raspberry Pi, quando si surriscalda, riduce la sua frequenza di clock: diventa quindi più lento. Per esempio, il Raspberry Pi 3 B+ gira normalmente a 1.4 GHz. Quando raggiungere i 60 gradi centigradi riduce la sua velocità a 1,2 GHz, mentre quando raggiunge gli 80 scende a 1,1 GHz. Questo effetto è ancora più percepibile su Raspberry Pi 4 B che, come noto, scalda di più.

Inoltre è noto come il calore, a prescindere, tenda a rovinare l’elettronica, arrivando fino a guastarla. Un Raspberry Pi che rallenta e si rovina nel tempo? Ognun per sé: noi però preferiamo adottare la ventola.

Si parte

Approccio

Solitamente le ventole per Raspberry Pi si collegano ai PIN 12 e 13 (rispettivamente +5v e GRD) e rimangono, come detto, perennemente accese. Ciò che ci serve è quindi una sorta di “interruttore”: a tal scopo utilizzeremo un transistor a giunzione bipolare che, sostanzialmente, funge da vero e proprio interruttore logico. Nello specifico utilizzeremo, come indicato nei requisiti, un transistor NPN.

Un transistor NPN sul piano logico funziona così:

Transistor NPN - Schema logico

dove:

  • il polo E rappresenta l’emettitore (va collegato al polo positivo della ventola);
  • il polo B rappresenta la base (va collegato a un PIN GPIO del Raspberry, il 18);
  • il polo C rappresenta il collettore (va collegato alla massa, o GND, ovvero il PIN GPIO del Raspberry n. 13);

Lo schema di connessione del transistor è il seguente:

Transistor NPN - Schema connessioni

Lo schema di connessione Raspberry GPIO, invece, è sempre il solito:

Raspberry Pi GPIO PIN schema

Come detto, useremo i PIN 12, 13 e 18.

Connessioni

Le connessioni che andranno quindi realizzate (qui rappresentate per semplicità con una basetta millefori, quando in realtà andremo a realizzare il tutto senza che ce ne sia bisogno) saranno le seguenti:

Schema connessione ventola Raspberry Pi con transistor NPN

Andremo quindi ad assemblare il tutto utilizzando un piccolo saldatore e della guaina termorestringente. Copriremo anche il transistor con la guaina allo scopo di proteggerlo da eventuali contatti non voluti sulla board del Raspberry; infine, collegheremo il tutto all’unità.

Primo cablaggio

Immagine 1 di 3

Ventola Raspberry Pi con Transistor - 1

Home Assistant

Terminato l’assemblaggio e il montaggio della ventola, siamo pronti a installare il package fornito da noi proposto per la definizione di tre entità:

  • un sensore che fornisca a Home Assistant la lettura della temperatura della CPU del Raspberry;
  • uno switch che consenta di accendere/spegnere la ventola;
  • un termostato virtuale che, in base alla temperatura del sensore di cui sopra e della temperatura desiderata dall’utente provveda ad accedere/spegnere la ventola.

Per installare questo progetto utilizzeremo per l’appunto i package, una funzione di Home Assistant che permette di definire uno o più file di configurazione specifici, raggruppando così tutte le sue configurazioni in un solo posto. Per capire come utilizzare questo componente e installato è utile leggere questa scheda.

Nella cartella scelta per i packages (solitamente “packages” all’interno della cartella che contiene i file di configurazione di Home Assistant), copiare il file chiamato “fan_shim_home_assistant.yaml” contenuto nel repository che potete trovare QUI.

Infine salvare e uscire. Recarsi alla voce di menu “Configurazione” > “Gestione del server” e cliccare su “CONTROLLA LA CONFIGURAZIONE“: se – e solo se – la configurazione risulta corretta, provvedere a un riavvio di Home Assistant (voce “RIAVVIARE” a fondo pagina).

Dopo un necessario riavvio, (svariate) nuove entità di diversa natura saranno apparse presso Home Assistant.

Vediamo da cos’è composto il nostro semplice package:

sensor:
  - platform: command_line
    name: Temperatura CPU
    command: "cat /sys/class/thermal/thermal_zone0/temp"
    unit_of_measurement: "°C"
    value_template: '{{ value | multiply(0.001) | round(1) }}'
    scan_interval: 10
switch:
  - platform: rpi_gpio
    ports:
      18: Fan SHIM
climate:
  - platform: generic_thermostat
    name: Fan SHIM
    heater: switch.fan_shim
    target_sensor: sensor.temperatura_cpu
    min_temp: 40
    max_temp: 80
    ac_mode: true
    target_temp: 50
    cold_tolerance: 0.5
    hot_tolerance: 0.5
    min_cycle_duration:
      seconds: 120
    keep_alive:
      minutes: 5
    initial_hvac_mode: "cool"

Il primo blocco definisce il sensore (“sensor.temperatura_cpu“) che censisce appunto la temperatura della CPU; il secondo lo switch (“switch.fan_shim“) che controlla il piedino 18 del Raspberry Pi (ovvero l’alimentazione della ventola; in ultimo, il blocco finale definisce il termostato (“climate.fan_shim“) che controllerà, come detto, la temperatura (proponiamo una configurazione di quest’ultimo “di massima”, liberamente modificabile dall’utente).

Recarsi dunque alla voce di menu “Configurazione” > “Gestione del server” e cliccare su “CONTROLLA LA CONFIGURAZIONE“: se – e solo se – la configurazione risulta corretta, provvedere a un riavvio di Home Assistant (voce “RIAVVIARE” a fondo pagina).

Dopo il necessario riavvio, le tre nuove entità di diversa natura saranno apparse presso Home Assistant:

Home Assistant - Climate Fan SHIM
il termostato virtuale.
Home Assistant - Climate Fan SHIM - Dettagli
il dettaglio del termostato virtuale.

Uso

A questo punto il termostato provvederà ad accendere la ventola quando la temperatura della CPU del Raspberry Pi supererà la temperatura target impostata sul termostato stesso, temperatura di default impostata a 40 gradi.

Ringraziamenti

Si ringrazia Paolo Bertolli per l’ottima realizzazione fattiva del progetto.


Home Assistant Official Logo ATTENZIONE: ricorda che sul nostro community FORUM c'è una sezione ad hoc dedica a Home Assistant, per qualsiasi dubbio, domanda, informazione nel merito specifico di queste componenti.


Telegram News Channel