Interfaccia utente livello acqua - HC-SR04
Interfaccia utente livello acqua – HC-SR04

Eccoci di nuovo a parlare di sensori, oggi è la volta dell’HC-SR04, un sensore ad ultrasuoni che serve per misurare la distanza degli oggetti molto utilizzato per costruire i vostri prototipi con Arduino o Nodemcu. Questo sensore alimentabile a 5V/3.3V puo’ essere utilizzato nelle situazioni più disparate come musurare il livello dell’acqua in una tanica, l’apertura della basculante del box, la presenza di un automezzo nella propria rimessa.

Come funziona il sensore HC-SR04

Il funziomamento di questo sensore è molto semplice: il sensore ha due elementi circolari posti sulla basetta: il primo elemento detto trigger emette un ultrasuono che rimalzando su una superfice rimbalza e viene letto dal secondo elmento detto echo. Misurando il tempo di andata e ritorno del segnale e dividendolo per due si riesce ad ottenere la distanza dell’oggetto con un margine di precisione abbastanza elevato, nell’ordine di un centimetro. Il sistema funziona anche in presenza di oggetti posti fino ad angoli di 30 gradi cosa che lo rende ancora più interessante.

Il divario di distanze che possono essere monitorate da questo sensore va da due centrimetri a quattro metri.

Per quanto riguarda l’alimentazione l’HC-SR04 va alimentato a 5V, la tensione classica di Arudino. Facendo dei test ho verificato il funzionamento anche con schede a 3,3V come il caso della NodeMcu che solitamente utilizzo per i miei prototipi. Nel caso della Node Mcu è bene inserire nel circuito un resistore da 1K onde evitare di rovinare il circuito.

 

 HC-SR04 - collegamenti fili con Nodemcu
HC-SR04 – collegamenti fili con Nodemcu

Esempio pratico di utilizzo: Monitorare il livello dell’acqua tramite il cellulare con Blynk

Fatte tutte le introduzioni del caso vediamo ora un esempio pratico di utilizzo con relativo codice.

Nel caso qui riportato il mio obiettivo era misurare l’altezza dell’acqua presente in una tanica e visualizzare tale livello su un cellulare in modo da essere sempre informato sulla quantità d’acqua presente nel contenitore.

Per fare questo ho utilizzato Blynk che mi permette di creare interfacce utenti molto belle, di semplice utilizzo nonchè evitarmi l’incombenza di mostrare le informazioni sul cellulare.

Lato Blynk quindi ho creato un nuovo progetto dove non ho fatto altro che agganciare ad un virtual pin (V5) la lettura del livello dell’acqua che poi ho mostrato attraverso il widget Level H selezionabile dal widget box di Blynk (costo 200)

Ecco i dettagli della configurazione sull’App del telefono:

Level Setting - particolare set up su Blynk per integrazione con HC-SR04
Level Setting – particolare set up su Blynk per integrazione con HC-SR04

Completata la parte di applicazione vediamo ora il codice da implementare all’interno della scheda nodemcu attraverso l’Arduino IDE. Chiaramente i parametri X,Y,Z vanno sostituiti con i vostri:

 

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

char auth[] = “XXXXX”;
char ssid[] = “YYYYYY”;
char pass[] = “ZZZZZ”;

int rangeMin = 0;
int rangeMax = 25;

// Define HC-SR04 pin numbers
const int echoPin = D6;
const int trigPin = D7;

// Define variables
long duration;
int distance;
int saveDis = 0;

SimpleTimer timer;

//Trigger a HIGH pulse for 2 or more microseconds
//Give a short LOW pulse before sending a HIGH one

void sensorFire() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
saveDis = distance;
distance = duration * 0.034 / 2;
}

void sensorRead() {
sensorFire();
Blynk.virtualWrite(V5, distance);
}

void setup() {
Blynk.begin(auth, ssid, pass);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
timer.setInterval(1000L, sensorRead);
}

void loop() {
Blynk.run();
timer.run();
}

 

Ecco infine il risultato finale a livello di interfaccia utente:

Interfaccia utente livello acqua - HC-SR04
Interfaccia utente livello acqua – HC-SR04
Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

You May Also Like

Amazon prime: come funziona

Amazon è tra i negozi on line più utilizzati al mondo; milioni di…

Il giardino a dicembre: cosa fare

Con dicembre si entra ufficialmente nella stagione invernale. Freddo e neve saranno…

Stampanti 3d Fascia super economica (fino a 300 euro)

Il mondo dell stampanti 3d come abbiamo imparato nel capitolo che parla…

Jumper DuPont: i cavi per Arduino e altre schede DIY

I cavi jumper sono una grandissima comodità nella prototipazione di schemi elettrici;…