1. Introduzione
Questo articolo descrive la procedura per integrare un sensore analogico di livello liquido con un ESP32, utilizzando ESPHome per la configurazione firmware e l’integrazione nativa con Home Assistant. L’approccio non richiede MQTT; i dati vengono trasmessi tramite il protocollo API di ESPHome.
2. Materiale necessario
| Elemento | Quantità | Note |
|---|---|---|
| Scheda ESP32 dev board | 1 | Modello “esp32dev” o equivalente |
| Sensore analogico di livello liquido | 1 | (es. sensore a resistenza variabile) |
| Cavi jumper | 3 | Collegamenti VCC, GND e OUT |
| Resistor divider (opzionale) | 2 | Se il sensore opera a 5 V |
| Breadboard (facoltativa) | 1 | Per prototipare |
3. Collegamento hardware
Nota di sicurezza: se il sensore è alimentato a 5 V, utilizzare un divider di tensione per ridurre la tensione di uscita a 3,3 V, valore massimo accettabile dall’ESP32.
Sensore → ESP32
--------------------
VCC → 3.3 V (o 5 V con divider)
GND → GND
OUT (analogico) → GPIO34 (ADC1_CH6)
Il pin ADC scelto, GPIO34, è un ingresso analogico non condiviso da altre funzioni critiche.
4. Configurazione ESPHome
Salvare il seguente contenuto in un file liquid_level_sensor.yaml e caricarlo con l’interfaccia di ESPHome.
esphome:
name: liquid_level_sensor
platform: ESP32
board: esp32dev
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
api:
ota:
logger:
sensor:
- platform: adc
pin: GPIO34
name: "Livello Liquido"
unit_of_measurement: "%"
accuracy_decimals: 2
filters:
- lambda: |-
return clamp((x / 4095.0f) * 100.0f, 0.0f, 100.0f);
Il filtro lambda converte la lettura ADC (intervallo 0‑4095) in una percentuale di livello.
5. Verifica in Home Assistant
- Riavvia l’ESP32 (tramite OTA o collegamento USB).
- Accedi a Developer Tools → States e cerca
sensor.liquid_level_sensor_livello_liquido. - Il valore percentuale dovrebbe aggiornarsi automaticamente.
6. Possibili estensioni
| Funzione | Implementazione |
|---|---|
| Debounce | Aggiungere un filtro throttle in ESPHome. |
| Allarmi | Creare automazioni in Home Assistant basate su soglie percentuali. |
| Grafici | Inserire l’entità nel dashboard Lovelace per visualizzare la cronologia. |
7. Conclusioni
Utilizzando ESPHome e l’API di Home Assistant, è possibile trasformare un semplice sensore analogico in una fonte di dati affidabile senza ricorrere a MQTT. Il procedimento descritto garantisce un’integrazione pulita e facilmente estendibile.