Skip to Content

Interfacciare ESP32 e sensore ultrasonico impermeabile JSN-SR04T – Una guida dettagliata

Interfacciare ESP32 e sensore ultrasonico impermeabile JSN-SR04T – Una guida dettagliata

In questo articolo ti mostrerò come utilizzare il sensore ad ultrasuoni impermeabile JSN-SR04T con un microcontrollore ESP32.

Il sensore JSN-SR04T è utilizzato in varie applicazioni, tra cui guida autonoma, evitamento collisioni, rilevamento di movimento e altro ancora. 

Le caratteristiche aggiuntive di impermeabilità lo rendono un sensore adatto all’uso esterno, permettendoti di realizzare ancora più progetti senza limitare il campo di applicazione. 

Imparerai tutto sul sensore JSN-SR04T, ti insegnerò come collegarlo a un ESP32, fornirò un codice funzionante per testare il sensore con ESP32 e risponderò anche alle domande più frequenti a riguardo.

Troverai i principi di funzionamento di base, le caratteristiche elettriche, le applicazioni, consigli e trucchi per i progetti che coinvolgono il JSN-SR04T. 

Iniziamo!

Componenti necessari per realizzare il progetto ESP32 e sensore JSN-SR04T

Componenti hardware

Software

Guida

Makerguides.com partecipa al programma Amazon Services LLC Associates, un programma di affiliazione pubblicitaria progettato per fornire ai siti un modo per guadagnare commissioni pubblicitarie promuovendo e collegandosi a prodotti su Amazon.com.

Fondamenti del sensore JSN-SR04T

Comprendiamo il principio di funzionamento di base, le caratteristiche, i pinout e le applicazioni del sensore ad ultrasuoni impermeabile JSN-SR04T. Conoscere questi dettagli ti darà sicurezza nel realizzare progetti a lungo termine.

Alla fine di questo articolo sarai sicuro di costruire e fare il debug di progetti con il sensore ad ultrasuoni JSN-SR04T.

I sensori JSN-SR04T comunemente disponibili sono mostrati nell’immagine sottostante. Il sensore non fa parte direttamente della scheda PCB ma è staccabile. Questo ti permette di posizionare comodamente il sensore (ad esempio sul paraurti di un veicolo) e proteggere la PCB da ambienti ostili.

JSN-SR04T sensor module
Modulo sensore JSN-SR04T

Il sensore è impermeabile, permettendoti di sigillarlo in condizioni umide e difficili. 

Il sensore JSN-SR04T è unico. Supporta più modalità di funzionamento. Una di queste è la famosa modalità HC-SR04, che accetta un segnale trigger e fornisce un impulso di eco corrispondente al tempo impiegato dal suono per viaggiare e rimbalzare su un oggetto. 

Puoi usare il riferimento qui sotto per consultare rapidamente i pinout del modulo sensore ad ultrasuoni impermeabile JSN-SR04T.

JSN-SR04T waterproof ultrasonic sensor module pinout
Pinout modulo sensore JSN-SR04T

Il JSN-SR04T supporta anche altre modalità, come spiegato nella sezione seguente. 

Modalità di funzionamento del JSN-SR04T

Modalità 0 del sensore JSN-SR04T

In modalità 0, il sensore imita il funzionamento del sensore ad ultrasuoni HC-SR04. Questa è la modalità predefinita con cui arriva la PCB. 

Modalità 1 del sensore JSN-SR04T

Che ne dici di un sensore ad ultrasuoni che calcola la distanza da solo e ti comunica il valore misurato in seriale? Questo è ciò che fa la modalità 1. Nessun carico sull’ESP32. 

Niente da calcolare. Ricevi direttamente la distanza misurata dal sensore tramite la porta seriale. 

Per attivare la modalità 1, collega in corto i piccoli pad relativi al pad M1.

Mode 1 of JSN-SR04T Sensor
Header Data 1 Data 0 Checksum
0xFF, indica l’inizio del blocco dati Byte alto dei dati a 16 bit Byte basso dei dati a 16 bit Somma di tutti e tre i byte

Modalità 2 del sensore JSN-SR04T

Questa modalità è uguale alla modalità 1. In questo caso, i dati non vengono inviati automaticamente dal sensore. Devi inviare una richiesta tramite la porta seriale. 

Per attivare la modalità 2, collega in corto i piccoli pad relativi al pad M2. 

Modalità 3 del sensore JSN-SR04T

La modalità 3 è uguale alla modalità 1 (modalità HC-SR04). Qui non aspetta il segnale trigger dall’host (ESP32). Si auto-triggera ogni 200 ms e fornisce l’impulso sul pin echo. 

Per attivare la modalità 3, posiziona una resistenza da 200 K ohm sul pad “mode”.

Modalità 4 del sensore JSN-SR04T

La modalità 4 è uguale alla modalità 1 (modalità HC-SR04) con consumo ultra-basso di energia.

Per attivare la modalità 4, posiziona una resistenza da 360 K ohm sul pad “mode”.

Modalità 5 del sensore JSN-SR04T

La modalità 5 funziona come un interruttore preconfigurato. Il pin echo commuta quando il sensore rileva un oggetto entro una distanza di 1,5 m.

Per attivare la modalità 5, posiziona una resistenza da 470 K ohm sul pad “mode”.

Caratteristiche del sensore JSN-SR04T

Ecco le caratteristiche del sensore JSN-SR04T riassunte in una tabella.

Parametro Portata
Tensione di funzionamento DC 3 V a 5,5 V
Corrente di lavoro Inferiore a 8 mA
Frequenza di sondaggio 40 kHz
Portata massima 600 cm
Portata minima 20 cm
Precisione della distanza 10 mm
Risoluzione 1 mm
Angolo di misura 75°
Temperatura di esercizio -20 °C a 70 °C

Applicazioni del sensore JSN-SR04T

I sensori ad ultrasuoni sono utilizzati in varie applicazioni. Aiutano a risparmiare energia, migliorare l’esperienza utente e aggiungere comfort e sicurezza. Ecco alcune applicazioni comuni:

Misura della distanza: La misurazione della distanza è una funzione cruciale del sensore ad ultrasuoni, utile in assistenza al parcheggio, navigazione robotica e automazione industriale.

Rilevamento oggetti: Puoi usare il sensore JSN-SR04T per rilevare oggetti, movimenti di animali domestici, sistemi di sicurezza per individuare persone in aree vietate, ecc.

Misura del livello: Puoi usare il sensore per misurare il livello di liquidi in serbatoi, caldaie industriali e il numero di oggetti rimasti in contenitori. 

Ad esempio, puoi costruire un cestino intelligente che apre automaticamente il coperchio. 

Puoi anche montare sensori ad ultrasuoni sulla tua scrivania per rilevare la tua presenza. Se ti alzi e ti allontani, può spegnere automaticamente lampade e ventilatori!

Le possibilità con il JSN-SR04T sono molte – cosa stai costruendo? Fammi sapere nella sezione commenti qui sotto.

Istruzioni per collegare il modulo sensore JSN-SR04T con ESP32

Ti mostrerò come realizzare un progetto usando ESP32 e il sensore di distanza ad ultrasuoni JSN-SR04T. Iniziamo con i collegamenti hardware.

Passo 1: Completa i collegamenti hardware

Connecting JSN-SR04T to ESP32
Collegamento JSN-SR04T a ESP32

Il modulo sensore ad ultrasuoni JSN-SR04T ha un connettore a 4 pin per interfacciarsi con microcontrollori. 

I collegamenti sono semplici da capire e seguire, come mostrato nel diagramma sopra.

Inizia sempre dai collegamenti a terra. Alimenta l’intero sistema solo dopo aver completato tutti i collegamenti.

Ecco un riepilogo dei collegamenti tra ESP32 e il sensore JSN-SR04T. 

  • Collega il pin GND del sensore ai pin GND dell’ESP32. 
  • Collega il pin VCC del sensore al pin 5V dell’ESP32.
  • Collega il pin GPIO5 dell’ESP32 al pin TRIG del sensore.
  • Il pin ECHO del sensore va al GPIO18 dell’ESP32.
Pin del sensore ad ultrasuoni JSN-SR04T Pin ESP32
VCC 5V
TRIG GPIO5
ECHO GPIO18
GND GND

Nel mio esempio uso GPIO5 e GPIO18 rispettivamente per i pin TRIG ed ECHO. 

Puoi scegliere altri pin sull’ESP32. Se usi pin diversi, modifica il codice di conseguenza.

Passo 2: Programma l’ESP32 con il codice qui sotto

Segui il passo successivo per capire l’implementazione del codice. Puoi usare il codice qui sotto per testare il modulo ESP32 e il sensore ad ultrasuoni JSN-SR04T collegato.

#define echoPin 18 // attach pin GPIO18 to pin Echo of JSN-SR04
#define trigPin 5  // attach pin GPIO5 ESP32 to pin Trig of JSN-SR04                     

long duration; // Time taken for the pulse to reach the receiver
int distance; 

void setup()
{
  pinMode(trigPin, OUTPUT); 
  pinMode(echoPin, INPUT);  
  Serial.begin(9600);
  Serial.println("Distance measurement using JSN-SR04T");
  delay(500);
}

void loop()
{
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2); 

  digitalWrite(trigPin, HIGH); // turn on the Trigger to generate pulse
  delayMicroseconds(10); // keep the trigger "ON" for 10 ms to generate pulse
  digitalWrite(trigPin, LOW); // Turn off the pulse trigger to stop pulse

  // If pulse reached the receiver echoPin
  // become high Then pulseIn() returns the
  // time taken by the pulse to reach the receiver
  duration = pulseIn(echoPin, HIGH);
  distance = duration * 0.0344 / 2; 

  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.println(" cm");
  delay(100);
}

Passo 3: Spiegazione del codice

Spiegazione del codice:

Analizziamo il codice. In questo esempio misurerai la distanza tra l’ostacolo e l’elemento sensore ad ultrasuoni del JSN-SR04T. 

Iniziamo!

#define echoPin 18 // attach pin GPIO18 of ESP32 to pin Echo of JSN-SR04
#define trigPin 5  // attach pin GPIO5 of ESP32 to pin Trig of JSN-SR04

Le linee usate per collegare il sensore JSN-SR04T all’ESP32 sono: echoPin per ricevere il segnale di eco dal sensore, e trigPin per attivare il sensore e inviare un impulso ultrasonico.

long duration;
int distance;

Dichiara due variabili: duration e distance.

  • duration serve a memorizzare il tempo impiegato dal segnale ultrasonico per tornare al sensore
  • distance serve a memorizzare la distanza calcolata in cm.

La funzione setup() viene chiamata una volta all’avvio del programma. In questa funzione, trigPin è impostato come pin di uscita, ed echoPin come pin di ingresso. 

Serial.begin(9600) inizializza la comunicazione seriale a 9600 baud e la successiva istruzione Serial.println() stampa un messaggio sul monitor seriale. 

La funzione delay(500) attende 500 ms prima di procedere alla funzione loop().

La funzione loop() viene chiamata ripetutamente durante tutto il programma. 

Il codice inizia inviando un segnale basso a trigPin per 2 us. Poi invia un segnale alto a trigPin per 10 microsecondi per generare un impulso di 10 ms. Dopo l’impulso, trigPin viene spento.

La funzione pulseIn() viene poi usata per calcolare la durata dell’impulso. Questa funzione aspetta che l’impulso raggiunga echoPin e misura il tempo impiegato per il ritorno dell’impulso. 

  duration = pulseIn(echoPin, HIGH);
  distance = duration * 0.0344 / 2;

Puoi convertire il ritardo in distanza usando la velocità del suono.  (circa 344 m/s).

  Serial.print("Distance: ");
  Serial.print(distance); 
  Serial.println(" cm");
  delay(100);

Infine, il valore della distanza viene stampato sul monitor seriale. Il programma attende poi 100 ms. L’intera operazione si ripeterà.

Domande frequenti sui sensori JSN-SR04T

Ho incluso una lista delle domande più frequenti sui progetti realizzati con ESP32 e sensori JSN-SR04T:

A cosa serve il sensore ad ultrasuoni JSN-SR04T?

Il JSN-SR04T è un sensore ad ultrasuoni impermeabile. Puoi usarlo per misurare distanze tra oggetti. Funziona inviando onde sonore ad alta frequenza e misurando il tempo di ritorno. 

Qual è la tensione di funzionamento del sensore JSN-SR04T?

Il sensore ad ultrasuoni JSN-SR04T funziona a 5 V DC. Consulta il datasheet del modulo che acquisti per essere più sicuro. 

Qual è la portata massima di rilevamento del sensore JSN-SR04T?

La portata massima di rilevamento del sensore JSN-SR04T è circa 4 m. Alcune varianti offrono una portata maggiore a scapito di una minore precisione. 

Il sensore JSN-SR04T può essere usato in ambienti esterni?

Il sensore JSN-SR04T può essere usato all’aperto. Il sensore JSN è impermeabile e può essere utilizzato in ambienti umidi e difficili. Le altre operazioni sono simili a quelle dei sensori HC-SR04. 

Quanto è preciso il sensore JSN-SR04T?

Ha una precisione di circa 3 mm. Puoi calibrare il sensore una volta per l’ambiente specifico per risultati migliori. La precisione dipenderà anche da temperatura, umidità e altri fattori ambientali. 

Il sensore JSN-SR04T funziona in diverse condizioni di illuminazione?

Sì, il sensore JSN-SR04T funziona in diverse condizioni di illuminazione, poiché non si basa sulla luce visibile. Funziona sul principio del tempo impiegato dal suono per percorrere una distanza adeguata. 

Quali sono le dimensioni del sensore JSN-SR04T?

Il sensore JSN-SR04T ha dimensioni di 45 mm x 20 mm x 15 mm. L’estensione del sensore è fornita con un cavo lungo 2,5 m. Potrebbe variare.

Conclusione

Questo articolo ha coperto tutte le informazioni essenziali sui sensori JSN-SR04T. Ti ho fornito informazioni complete sul funzionamento del sensore JSN-SR04 e sulle applicazioni per cui possiamo usarlo. 

Il principio di funzionamento di base e alcuni consigli e trucchi sull’uso del JSN-SR04T dovrebbero aiutarti a usare il sensore con sicurezza nel tuo prossimo progetto. 

Ho anche condiviso una guida ai collegamenti con ESP32 e un esempio di codice con spiegazione.

Se hai altre domande sui sensori ad ultrasuoni, per favore scrivile nella sezione commenti. 

Faccelo sapere se c’è qualcos’altro che vorresti che trattassi in futuri articoli.