L’SHT45 è uno dei sensori più economici e semplici da programmare nel mercato, ideale per monitorare temperatura e umidità ambientali con Home Assistant
Il sensore SHT45 è uno dei modelli più avanzati della serie SHT4x, sviluppata da Sensirion per la misurazione precisa di temperatura e umidità relativa. Rispetto ai suoi predecessori, l’SHT45 si distingue per la sua elevata precisione, la stabilità a lungo termine e il basso consumo energetico, rendendolo una soluzione ideale per applicazioni di monitoraggio ambientale in ambiti come domotica, elettronica indossabile, dispositivi IoT e stazioni meteo compatte.
- Acquistalo su Aliexpress: https://s.click.aliexpress.com/e/_oFokETH
Specifiche tecniche
Il sensore SHT45 è un sensore digitale di temperatura e umidità che offre un’accuratezza superiore grazie alla tecnologia CMOSens® proprietaria. Questo dispositivo è in grado di misurare la temperatura con una precisione tipica di ±0.1 °C e l’umidità relativa con una precisione tipica di ±1.0 % RH, in condizioni standard (25°C e 45% RH).
Il range di misurazione della temperatura va da -40 °C a +125 °C, mentre quello dell’umidità relativa si estende dallo 0% al 100%. Il sensore supporta diverse modalità operative che bilanciano tra precisione e consumo energetico, permettendo una lettura rapida o una maggiore stabilità a seconda delle esigenze. Ad esempio, in modalità ad alta precisione, il tempo di lettura è di circa 9.3 ms, ma può essere ridotto a meno di 2 ms in modalità a bassa precisione.
L’SHT45 comunica tramite interfaccia I²C e supporta un indirizzo I2C fisso (0x44), con la possibilità di connettere più sensori su un bus I2C con multiplexer o altre tecniche. La tensione di alimentazione supportata va da 1.08 V a 3.6 V, rendendolo compatibile con dispositivi alimentati a 3.3 V come l’ESP32.
Il package del sensore è estremamente compatto (2.5 × 2.5 mm con spessore di 0.9 mm), rendendolo adatto anche a progetti con spazio limitato. Inoltre, il sensore presenta un rivestimento protettivo optional (Sensirion’s Protective Cover), che lo protegge da polveri e condensa, utile per installazioni in ambienti critici.
Collegamenti
Per utilizzare l’SHT45 con una scheda ESP32, è necessario collegare correttamente i pin I²C e alimentare il sensore in modo adeguato. L’ESP32 è dotato di interfacce I²C configurabili via software, e per questo esempio useremo GPIO4 per SDA (linea dati) e GPIO0 per SCL (linea di clock).
Codice
Andiamo a creare un nuovo device su ESPHome e chiamiamolo SHT45. Saltiamo per il momento la connessione e selezioniamo la scheda che dobbiamo programmare (ESP32).
Una volta creato, clicchiamo su EDIT per modificare il codice.
Questo è il codice per configurare una ESP32 per leggere i dati da un sensore SHT45 e inviarli a Home Assistant tramite ESPHome. Il dispositivo sarà accessibile in rete tramite Wi-Fi e potrà essere aggiornato via OTA (Over-The-Air) senza bisogno di connessione fisica. Potete scaricarlo a questo LINK.
All’inizio, il codice definisce il nome del dispositivo, sia quello tecnico (“sht45”) che quello più leggibile per Home Assistant (“SHT45”).
esphome:
name: sht45
friendly_name: SHT45
Poi si specifica che il microcontrollore utilizzato è un ESP32 e che il firmware verrà compilato usando il framework Arduino, che è più semplice e supportato rispetto ad altre alternative come ESP-IDF.
esp32:
board: esp32dev
framework:
type: arduino
Il codice attiva il logger, che serve a registrare gli eventi e inviare messaggi di debug. Inoltre, viene attivata l’API di ESPHome, che permette a Home Assistant di comunicare con il dispositivo in modo sicuro grazie a una chiave di crittografia.
logger:
api:
encryption:
key: "rxB2gPguP8PfwWynQXz/a1oJ+7nhJkx6xasEN1Q5Rew="
Per evitare di dover collegare il dispositivo fisicamente ogni volta che si vuole aggiornare il firmware, viene attivata la modalità OTA (Over-The-Air), con una password di sicurezza. Inoltre, è presente la funzione captive portal, che permette di riconfigurare il Wi-Fi direttamente da un browser in caso di problemi di connessione.
ota:
- platform: esphome
password: "160f7c473b13281b3b69f78d96b7927c"
captive_portal:
Per collegarsi alla rete, il codice usa le credenziali Wi-Fi salvate nei secrets di ESPHome (file separato non visibile nel codice). Se la connessione fallisce, il dispositivo crea un hotspot Wi-Fi di emergenza (“Sht45 Fallback Hotspot”) con una password predefinita, in modo che sia possibile riconfigurarlo.
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: "Sht45 Fallback Hotspot"
password: "a6zKfpxOsPBD"
Trattandosi di un sensore che lavora su interfaccia I2C, questa sezione configura la comunicazione I2C tra l’ESP32 ed il sensore SHT45, impostando il pin GPIO4 dell’ESP32 come linea SDA ed il pin GPIO0 come linea SCL. La funziona scan abilita la scansione automatica dei dispositivi connessi al bus I2C, verificando quali dispositivi I2C sono collegati e il loro indirizzo.
i2c:
sda: 4
scl: 0
scan: true
Il sensore viene integrato impostando la comunicazione con I2C, definendo poi le misurazione per Temperatura (in gradi Celsius) e Umidità. Non impostiamo l’indirizzo di lettura (0x44), poiché sappiamo essere statico, ma chiediamo al sensore di ripetere la lettura ogni 2 secondi.
sensor:
- platform: sht4x
temperature:
name: "Temperatura"
humidity:
name: "Umidità"
update_interval: 2s
Salvate e verificate con Validate se il codice è stato scritto correttamente.
Collegate la ESP32 al computer tramite cavo USB, e cliccate su Install.
Conclusa l’installazione, integriamo il device su Home Assistant. Dovrebbe essere arrivata una notifica sulla plancia. In ogni caso, per integrarlo andate su Impostazioni -> Dispositivi e servizi e apparirà il dispositivo SHT45 da integrare.
Autorizzate la configurazione ed otterrete quanto segue.