ESPHome per misurare le distanze con un sensore Ultrasonico!
di Vincenzo Caputo
28 Gennaio 2025
Coding
Qualche settimana fa abbiamo pubblicato un video, sul nostro canale YouTube MissingTech ed un articolo su questo Blog, che aveva come argomento la realizzazione di un attuatore domotico a 4 canali con connettività WiFi, simile ad un Sonoff 4CH ma con un costo di realizzazione molto più basso.
Suddetto articolo lo potete leggere al seguente link:
4 Canali a contatto pulito a meno di 5 euro con ESPHome!
Il tutto realizzato con un micro-controllore ESP32 e un modulo relè 4 canali a contatto pulito il tutto governato dal firmware ESPHome direttamente compilato in Home Assistant grazie all'apposito Add-on.
Pochi giorni dopo ho pubblicato ancora un video ed un articolo sempre su questo Blog dove ho mostrato come utilizzare un sensore di luminosità ambientale sempre collegato allo stesso esp32 con soglia di attivazione per un punto luce, contenuto disponibile al seguente link:
Sensore luce ambiente per Home Assistant con ESPHome
Questi contenuti hanno riscosso particolarmente successo, quindi ho deciso di continuare la navigazione nell'argomento ESPHome ed oggi siamo a mostrare come aggiungere alla nostra piccola board un sensore ultrasonico utile alla misura della distanze.
Cos'è un sensore ultrasonico?
Un sensore di distanza a ultrasuoni riconosce senza contatto gli oggetti e misura la distanza tra se stesso e l’oggetto riconosciuto. La testa del sensore emette un’onda sonora corta e ad alta frequenza che si diffonde nell'aria alla velocità del suono.
Il suono emesso è ad una frequenza che va oltre i 20.000 Hz, che il limite dell'udibile dall'orecchio umano. Dunque non sentiremo alcun suono.
Quando l’impulso sonoro incontra un oggetto, viene riflesso da quest’ultimo e ritorna nuovamente al sensore a ultrasuoni. Il sensore ad ultrasuoni calcola internamente la distanza dall'oggetto misurando il tempo trascorso tra l’emissione e la ricezione dell’impulso sonoro.
Per l'occasione ho usato un sensore ultrasonico acquistato da Amazon il cui link è di seguito riportato:
AZDelivery Sensore Telematico a Ultrasuoni Modulo compatibile con HC-SR04 Misuratore Distanza a Basso Consumo Energetico compatibile con Arduino e Raspberry Pi incluso un E-Book!
Prezzo intero: 7,49€ | Prezzo scontato: 7,49€ |
Questo sensore ha una tensione di esercizio DC di 5 V ed è in grado si misurare distanze da 2 cm fino a 3 m con precisione di circa 3 mm.
Questo sensore è dotato di 4 contatti: due per l'alimentazione (positivo e negativo), uno per l'invio del segnale sonoro (trigger-jumper arancio) e l'altro per la ricezione del segnale di echo (jumper giallo).
Naturalmente Vcc è il positivo, Gnd il negativo.
Sulla board ESP32 potrete collegarlo alla 5V, mentre il negativo su uno dei pin GND.
Gli altri 2 pin li ho collegati rispettivamente al pin 14 e 12.
A questo punto non vi resterà altro da fare che caricare in Home Assistant, alla sezione ESPHome Builder, il codice che trovate incollato qui di seguito.
switch:
- platform: gpio
name: "Canale_1"
pin: 27
id: relay1
inverted: True
restore_mode: RESTORE_DEFAULT_OFF
- platform: gpio
name: "Canale_2"
pin: 26
id: relay2
inverted: True
restore_mode: RESTORE_DEFAULT_OFF
- platform: gpio
name: "Canale_3"
pin: 25
id: relay3
inverted: True
restore_mode: RESTORE_DEFAULT_OFF
- platform: gpio
name: "Canale_4"
pin: 13
id: relay4
inverted: True
restore_mode: RESTORE_DEFAULT_OFF
sensor:
- platform: ultrasonic
trigger_pin: 14
echo_pin: 12
name: "Ultrasonic Sensor"
update_interval: 1s
on_value_range:
- above: 0
below: 0.1
then:
- switch.turn_on:
id: relay4
- above: 0.12
below: 0.2
then:
- switch.turn_on:
id: relay3
- switch.turn_off:
id: relay4
- above: 0.21
below: 0.3
then:
- switch.turn_on:
id: relay2
- switch.turn_off:
id: relay3
- switch.turn_off:
id: relay4
- above: 0.31
below: 0.9
then:
- switch.turn_on:
id: relay1
- switch.turn_off:
id: relay2
- switch.turn_off:
id: relay3
- switch.turn_off:
id: relay4
Il codice lo dovrete incollare dopo la riga captive_portal:
Nella parte precedente infatti ci sono le informazioni di base del vostro esp32 come i dati della rete WiFi a cui vi collegate, ecc...
Per le istruzioni di caricamento del codice fate riferimento alla guida precedente dove ho spiegato tutto nel dettaglio sia nel caso in cui siate al primo flash di ESPHome su un nuovo dispositivo, sia che siate ad aggiornare come in questo mio caso.
4 Canali a contatto pulito a meno di 5 euro con ESPHome!
Un volta caricato il codice dovreste ottenere un funzionamento di questo tipo.
Nella programmazione del codice non mi sono soffermato solamente a creare il sensore di distanza, ma ho provato a realizzare una piccola automazione con il modulo relè che già era a bordo.
Volete vedere com'è andata e capire cosa ho fatto?
Vi basterà guardare il video qui di seguito per la spiegazione completa.
Buona visione!
Produrre e aggiornare contenuti su vincenzocaputo.com richiede molto tempo e lavoro. Se il contenuto che hai appena letto è di tuo gradimento e vuoi supportarmi, clicca uno dei link qui sotto per fare una donazione.