¿13 millas 20 km sin WiFi? ¡Cómo LoRa envió voltaje a través de distancias locas! (Heltec WiFi LoRa 32 V3)

Esta lección es parte de: Introducción a WiFi LoRa

¿13 millas 20 km sin WiFi? ¡Cómo LoRa envió voltaje a través de distancias locas! (Heltec WiFi LoRa 32 V3)

Construye un monitor de voltaje fuera de la red de 13 millas con LoRa y ESP32

¿Alguna vez has necesitado monitorear una fuente de energía remota, como un panel solar en una cabaña, un banco de baterías en un barco o equipos en una granja, desde millas de distancia? Esta guía del proyecto te llevará a construir un monitor de voltaje de largo alcance, fuera de la red, que pueda transmitir datos hasta un increíble13 millas (o 21 kilómetros), sin tarifas de suscripción ni dependencia de redes Wi-Fi o celulares.

Usaremos dosHeltec WiFi LoRa 32módulos, cada uno alojado en un robustoCaja Meshnology N32con una batería de 3000mAh, para crear un transmisor y un receptor. El transmisor medirá un voltaje objetivo (de unos pocos voltios hasta 100V o más) utilizando un simple circuito divisor de voltaje y enviará la lectura de forma inalámbrica utilizando LoRa. El receptor mostrará este voltaje en tiempo real, permitiéndote monitorear tus sistemas desde millas de distancia.


Cómo Funciona: El Divisor de Voltaje

El núcleo de este proyecto es la capacidad de medir un amplio rango de voltajes. Dado que los pines de entrada del ESP32 solo pueden medir voltajes de hasta 3.3V de manera segura, no podemos conectar directamente una fuente de 12V o 100V. Para resolver esto, utilizamos un circuito simple llamado undivisor de voltaje, que reduce la tensión a un nivel seguro para que el microcontrolador lo lea. Esto se explica en el video en12:26.

El circuito utiliza dos resistencias (R1 y R2) conectadas en serie. La fuente de alta tensión (Ven) se aplica a ambos resistores, y el ESP32 lee el voltaje proporcional más bajo (Vfuera) a través solo del resistor R2. Con los valores de resistor correctos, puedes medir con precisión voltajes muy altos.

Diagrama de circuito de un divisor de voltaje con resistencias R1 y R2.

Al elegir tus resistencias, una buena regla general es seleccionar valores que mantengan la tensión de salida muy por debajo del límite de 3.3V, incluso cuando midas la tensión máxima que esperas. Para obtener la mejor precisión, deberías medir la resistencia real de tus resistencias con un multímetro y usar esos valores precisos en el código.

Fórmulas para calcular las tensiones de salida y entrada de un divisor de voltaje.

Montaje de hardware y cableado

El ensamblaje implica colocar el módulo Heltec LoRa 32 y la batería de 3000mAh dentro de la caja N32. La caja tiene recortes para la pantalla y los botones, y un agujero para el montaje de la antena externa. Una de las notas de seguridad más importantes es quesiempre tenga la antena conectada antes de encender el dispositivo, ya que transmitir sin una antena puede dañar el módulo LoRa.

Diagrama de cableado principal que muestra un divisor de voltaje conectado al ESP32 y a la batería.
Foto del cableado real del proyecto con resistencias y cables conectados.
Foto de la pantalla OLED del transmisor que muestra una medida de 30V.

Configuración de Arduino IDE y biblioteca

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

Para programar los módulos Heltec, primero debes configurar tu IDE de Arduino. Esta configuración única es crucial y está detallada en20:41en el video.

  1. Instalar placas ESP32:Agrega la URL oficial de las placas Espressif ESP32 en Archivo > Preferencias e instala el paquete "esp32" desde el Gestor de placas.
  2. Instalar soporte Heltec:Agrega la URL JSON específica de Heltec a tus preferencias. Luego, en el Administrador de Placas, busca e instala el paquete "Heltec ESP32".
  3. Instalar bibliotecas requeridas:Usando el Administrador de Bibliotecas (Esquema > Incluir Biblioteca > Administrar Bibliotecas), instala lo siguiente:
    • Heltec ESP32 dev boards
    • Adafruit GFX Library(y sus dependencias)
  4. Instalar la biblioteca Robojax:Necesitarás descargar el personalizado.Robojax_HeltecLoRa32biblioteca, que se proporciona como un archivo .zip. Instálala en el IDE a través de Sketch > Incluir Biblioteca > Agregar Biblioteca .ZIP.
  5. Selecciona la Junta:Finalmente, ve a Herramientas > Tablero y selecciona elHeltec WiFi LoRa 32 (V3)y el puerto COM correcto.

Explicación de la Configuración del Código

El proyecto utiliza dos bocetos separados: uno para elTransmisor (TX)y uno para elReceptor (RX). Solo necesitas configurar algunas configuraciones clave en el código del transmisor para que funcione, como se explica en25:02El código del receptor requiere que las configuraciones de LoRa coincidan.


#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_PINEl pin GPIO en el ESP32 al que has conectado la salida de tu divisor de voltaje.
  • R1yR2Introduce elvalores de resistencia exactosde sus dos resistores medidos por un multímetro. Esto es crucial para la precisión.
  • CALIB_FACTORSi el voltaje mostrado está ligeramente desviado de un multímetro de confianza, puedes ajustar este valor hacia arriba o hacia abajo (por ejemplo, 1.008 o 0.995) para ajustar la lectura. Establecerlo en1.0deshabilitar.
  • userKeyEsta es tu clave de seguridad privada. Solo los dispositivos con la misma clave exacta pueden comunicarse.
  • RF_FREQUENCYLa frecuencia de operación para LoRa. Debe coincidir en ambos dispositivos y ser legal para su región (por ejemplo, 915MHz para América del Norte).
  • TX_OUTPUT_POWERLa potencia de transmisión, de 2 (baja potencia, corto alcance) a 21 (alta potencia, largo alcance). Mayor potencia utiliza más batería. Para la prueba de 13 millas, se utilizó un valor de 20. Para probar en tu escritorio, 2 es suficiente.

El código del receptor tiene configuraciones similares parauserKeyyRF_FREQUENCYeso debe coincidir con la configuración del Transmisor.


Proyecto en vivo en acción

Una vez que el código esté cargado, la unidad transmisora comenzará a medir el voltaje de su fuente conectada, mostrándolo en su propia pantalla OLED con un indicador "(TX)", y transmitiendo los datos a través de LoRa. La unidad receptora, cuando esté programada con la clave de seguridad y frecuencia coincidentes, escuchará la señal. Tan pronto como reciba una transmisión válida, mostrará el mismo voltaje en su pantalla con un indicador "(RX)".

Como se demostró en la prueba de largo alcance en31:39esta configuración es increíblemente efectiva. Con antenas de alta ganancia y una línea de visión clara, el sistema transmitió y recibió con éxito lecturas de voltaje precisas desde 13 millas de distancia, demostrando que es una solución robusta y confiable para tareas serias de monitoreo remoto.


Capítulos de video

  • 00:00- Comenzar
  • 03:33- Introducción a la placa y LoRa
  • 05:47- Carcasa N32 para WiFi LoRa 32
  • 12:26- Divisor de voltaje para medir hasta 150V
  • 19:47- Preparando el cable para medir voltaje
  • 20:41- Instalando la biblioteca para WiFi LoRa 32
  • 25:02- Código de transmisión explicado
  • 27:16- Código del receptor explicado
  • 28:36- Demostración de lectura de voltaje
  • 31:39- Prueba de rango de distancia en el mundo real (21 kilómetros)
Sin código adjunto.

Common Course Files

Archivos📁

Otros archivos