13 miglia 20 km senza WiFi? Come LoRa ha inviato tensione attraverso distanze incredibili! (Heltec WiFi LoRa 32 V3)

Questa lezione fa parte di: Introduzione al WiFi LoRa

13 miglia 20 km senza WiFi? Come LoRa ha inviato tensione attraverso distanze incredibili! (Heltec WiFi LoRa 32 V3)

Costruisci un monitor di tensione off-grid da 13 miglia con LoRa e ESP32

Hai mai avuto bisogno di monitorare una fonte di alimentazione remota, come un pannello solare in una baita, un banco batterie su una barca o attrezzature in una grande fattoria, da lontano? Questa guida al progetto ti guiderà nella costruzione di un monitor di tensione a lungo raggio, off-grid, in grado di trasmettere dati fino a un incredibile13 miglia (o 21 chilometri), senza costi di abbonamento o dipendenza da reti Wi-Fi o cellulari.

Useremo dueHeltec WiFi LoRa 32moduli, ciascuno ospitato in un robustoCaso Meshnology N32con una batteria da 3000mAh, per creare un trasmettitore e un ricevitore. Il trasmettitore misurerà una tensione target (da pochi volt fino a 100V o più) utilizzando un semplice circuito divider di tensione e invierà la lettura in modalità wireless utilizzando LoRa. Il ricevitore visualizzerà quindi questa tensione in tempo reale, permettendoti di monitorare i tuoi sistemi da lontano.


Come Funziona: Il Divider di Tensione

Il fulcro di questo progetto è la capacità di misurare un'ampia gamma di tensioni. Poiché i pin di ingresso dell'ESP32 possono misurare in sicurezza tensioni fino a 3,3V, non possiamo collegare direttamente una sorgente da 12V o 100V. Per risolvere questo problema, utilizziamo un circuito semplice chiamato unpartitore di tensione, che riduce la tensione a un livello sicuro per il microcontroller da leggere. Questo è spiegato nel video a12:26.

Il circuito utilizza due resistori (R1 e R2) collegati in serie. La sorgente di alta tensione (Vin) viene applicato su entrambi i resistori, e l'ESP32 legge la tensione inferiore, proporzionale (Vfuori) attraverso solo il resistore R2. Con i giusti valori di resistenza, puoi misurare con precisione tensioni molto elevate.

Schema del circuito di un partitore di tensione con resistori R1 e R2.

Quando scegli i tuoi resistori, una buona regola generale è selezionare valori che mantengano la tensione di uscita ben al di sotto del limite di 3,3 V, anche quando misuri la massima tensione che ti aspetti. Per la migliore precisione, dovresti misurare la resistenza effettiva dei tuoi resistori con un multimetro e utilizzare quei valori precisi nel codice.

Formule per calcolare le tensioni in uscita e in ingresso del partitore di tensione.

Assemblaggio e cablaggio dell'hardware

L'assemblaggio prevede di inserire il modulo Heltec LoRa 32 e la batteria da 3000mAh all'interno del case N32. Il case ha ritagli per lo schermo e i pulsanti, e un foro per il montaggio dell'antenna esterna. Una delle note di sicurezza più importanti è dicollegare sempre l'antenna prima di accendere il dispositivo, poiché trasmettere senza un'antenna può danneggiare il modulo LoRa.

Schema elettrico principale che mostra il partitore di tensione collegato a ESP32 e batteria.
Foto del cablaggio attuale del progetto con resistori e fili collegati.
Foto dello schermo OLED del trasmettitore che mostra una misurazione di 30V.

Impostazione di Arduino IDE e librerie

https://resource.heltec.cn/download/package_heltec_esp32_index.json

Per programmare i moduli Heltec, devi prima configurare il tuo Arduino IDE. Questa configurazione iniziale è cruciale ed è dettagliata su20:41nel video.

  1. Installa le schede ESP32:Aggiungi l'URL ufficiale delle schede Espressif ESP32 in File > Preferenze e installa il pacchetto "esp32" dal Gestore schede.
  2. Installa il supporto Heltec:Aggiungi l'URL JSON specifico di Heltec alle tue preferenze. Poi, nel Gestore schede, cerca e installa il pacchetto "Heltec ESP32".
  3. Installa le librerie richieste:Utilizzando il Gestore delle Librerie (Sketch > Includi Libreria > Gestisci Librerie), installa i seguenti:
    • Heltec ESP32 dev boards
    • Adafruit GFX Library(e le sue dipendenze)
  4. Installa la libreria Robojax:Dovrai scaricare il personalizzatoRobojax_HeltecLoRa32libreria, fornita come file .zip. Installala nell'IDE tramite Sketch > Includi libreria > Aggiungi libreria .ZIP.
  5. Seleziona la scheda:Infine, vai su Strumenti > Scheda e seleziona ilHeltec WiFi LoRa 32 (V3)e la corretta porta COM.

Spiegazione della Configurazione del Codice

Il progetto utilizza due schizzi separati: uno per ilTrasmettitore (TX)e uno per ilRicevitore (RX). Devi solo configurare alcune impostazioni chiave nel codice del trasmettitore affinché funzioni, come spiegato a25:02Il codice del ricevitore richiede impostazioni LoRa corrispondenti.


#define VOLTAGE_READING_PIN 4  // The pin reading the voltage
const int R1 = 39120; // Your measured value for R1 in ohms
const int R2 = 3312; // Your measured value for R2 in ohms

const float CALIB_FACTOR = 1.007f; // Calibration factor to match a multimeter

const char *displayTexttitle = "Voltage:"; // Text for the OLED
const char *displayTexTX = "(TX)";

// This security key MUST be IDENTICAL on the TX and RX devices
const char *userKey = "YOUR_SECRE8888";

// These LoRa settings MUST be IDENTICAL on the TX and RX devices
#define RF_FREQUENCY      915000000 // LoRa Frequency in Hz
#define TX_OUTPUT_POWER   2         // TX Power in dBm (2-21)
  • VOLTAGE_READING_PINIl pin GPIO sull'ESP32 a cui hai collegato l'uscita del tuo partitore di tensione.
  • R1eR2: Inserisci ilvalori di resistenza esattidei tuoi due resistori come misurato da un multimetro. Questo è fondamentale per la precisione.
  • CALIB_FACTORSe la tensione visualizzata è leggermente diversa da quella di un multimetro affidabile, puoi regolare questo valore verso l'alto o verso il basso (ad esempio, 1.008 o 0.995) per ottimizzare la lettura. Impostalo su1.0disattivare.
  • userKeyQuesto è il tuo codice di sicurezza personale. Solo i dispositivi con lo stesso codice possono comunicare.
  • RF_FREQUENCYLa frequenza operativa per LoRa. Questa deve corrispondere su entrambi i dispositivi ed essere legale per la tua regione (ad esempio, 915MHz per il Nord America).
  • TX_OUTPUT_POWERLa potenza di trasmissione varia da 2 (bassa potenza, corta distanza) a 21 (alta potenza, lunga distanza). Maggiore è la potenza, maggiore è il consumo della batteria. Per il test di 13 miglia, è stato utilizzato un valore di 20. Per i test sulla tua scrivania, 2 è sufficiente.

Il codice del ricevitore ha impostazioni simili peruserKeyeRF_FREQUENCYche deve corrispondere alle impostazioni del Trasmettitore.


Progetto dal vivo in azione

Una volta caricato il codice, l'unità trasmittente inizierà a misurare la tensione dalla fonte collegata, visualizzandola sul proprio schermo OLED con un indicatore "(TX)" e trasmettendo i dati tramite LoRa. L'unità ricevente, quando programmata con la corrispondente chiave di sicurezza e frequenza, ascolterà il segnale. Non appena riceve una trasmissione valida, visualizzerà la tensione identica sul suo schermo con un indicatore "(RX)".

Come dimostrato nel test a lungo raggio a31:39questa configurazione è incredibilmente efficace. Con antenne ad alto guadagno e una linea di vista chiara, il sistema ha trasmesso e ricevuto con successo letture di tensione accurate da 21 chilometri di distanza, dimostrando di essere una soluzione robusta e affidabile per compiti di monitoraggio remoto seri.


Capitoli del video

  • 00:00- Inizio
  • 03:33- Introduzione al circuito e a LoRa
  • 05:47- Custodia N32 per WiFi LoRa 32
  • 12:26Divisore di tensione per misurare fino a 150V
  • 19:47- Preparazione del filo per misurare la tensione
  • 20:41- Installazione della libreria per WiFi LoRa 32
  • 25:02- Codice di trasmissione spiegato
  • 27:16- Codice del destinatario spiegato
  • 28:36- Dimostrazione di lettura della tensione
  • 31:39- Test di distanza nel mondo reale (21 km)
Nessun codice allegato.

Common Course Files

File📁

Altri file