Enciende un dispositivo a 13 millas (21 km) de distancia - ¡El proyecto off-grid definitivo de LoRa con WiFi LoRa 32!

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

Enciende un dispositivo a 13 millas (21 km) de distancia - ¡El proyecto off-grid definitivo de LoRa con WiFi LoRa 32!

Imagina poder cambiar unventilador, calefactor, cerradura de puerta o sistema remotode hasta21 kilómetros (13 millas)ausente completamentefuera de la red,sin Wi-Fi, ysin una tarjeta SIM. En este tutorial, aprenderás cómo construir un controlador de relé inalámbrico de largo alcance y seguro utilizandoHeltec WiFi LoRa 32 V3módulos y elRobojax_HeltecLoRa32biblioteca. Este proyecto permite la comunicación LoRa encriptada para activar de manera segura relés a grandes distancias.

Descripción del proyecto

Este sistema consiste en dos placas LoRa32:

  • Transmisor (TX)Un botón de pulsación activa un comando encriptado ("ENCENDIDO" o "APAGADO") a través de LoRa.

  • Receptor (RX)Escucha y descifra el comando, luego controla un módulo de relé conectado a GPIO4 en consecuencia.

Tienes dos versiones del código del transmisor:

  • SencilloEnvia ON cuando se mantiene presionado el botón, OFF cuando se suelta.

  • AlternarAlterna el estado con cada pulsación.


Instalando placas Heltec ESP32

Agrega esta ruta en las preferencias de tu IDE de Arduino como se muestra en el video:https://resource.heltec.cn/download/package_heltec_esp32_index.json

Biblioteca requerida

Debes instalar elRobojax_HeltecLoRa32biblioteca. Descárgalo desde el enlace debajo de este artículo.

Instala esta biblioteca ZIP a través del IDE de Arduino antes de subir cualquier código.

Instrucciones de cableado

Cableado del transmisor:

  • Botón de usuario conectado aGPIO0

  • Opcional: La pantalla OLED utiliza los pines predeterminados (SCL/SDA)

Cableado del receptor:

  • Pin de control del relé (o zumbador) conectado aGPIO4

  • Módulo de relé de 5V alimentado a través de 5V y GND de la placa.

Controlar una carga utilizando LoRa

Diagrama de cableado que muestra receptor LoRa32 con relé y carga.

Helte_Wifi_LoRA_zumbador

Diagrama de cableado que muestra el zumbador LoRa32.

Explicación del código TX seguro

En ambos bocetos de TX, la encriptación está habilitada utilizando elsetSecurityKey()método de la biblioteca Robojax. Por ejemplo:

const char *userKey = "hyhT676#h~_876s";
robojaxDevice.setSecurityKey(userKey);

EnRelay_Secure_TX_Simple.ino, una señal ALTA en GPIO0 envía "ON", mientras que una señal BAJA envía "OFF":

if(digitalRead(0) == HIGH){
  robojaxDevice.sendSecureMessage("ON");
} else {
  robojaxDevice.sendSecureMessage("OFF");
}

EnRelay_Secure_TX_Toggle.ino, cada pulsación de botón alterna entre ENCENDIDO y APAGADO:

if(buttonPressed){
  status = !status;
  String message = status ? "ON" : "OFF";
  robojaxDevice.sendSecureMessage(message);
}

Explicación del Código RX Seguro

El boceto del receptor utiliza la misma clave de encriptación y escucha mensajes seguros:

robojaxDevice.setSecurityKey("hyhT676#h~_876s");
String message = robojaxDevice.receiveSecureMessage();

Luego controla GPIO4 en consecuencia:

if(message == "ON"){
  digitalWrite(RELAY_CONTROL_PIN, HIGH);
} else if(message == "OFF"){
  digitalWrite(RELAY_CONTROL_PIN, LOW);
}

La pantalla OLED muestra el estado recibido y la etiqueta "RX".

Índice de capítulos

  1. [00:00] Introducción al Proyecto y Demostración de Alcance

  2. Casos de uso: Ventilador, Calefactor, Puerta, Luz

  3. [00:20] Hardware Utilizado

  4. [00:40] Vista General del Cableado

  5. [01:00] Instalando la biblioteca Robojax

  6. [01:20] Código TX (Versión Simple)

  7. [01:40] Código TX (Alternar Versión)

  8. [02:00] Explicación del código RX

  9. [02:20] Demostración en vivo

Este tutorial ofrece una forma robusta y segura de controlar dispositivos de forma inalámbrica a largas distancias. Todo el código y la biblioteca necesaria están disponibles debajo de este artículo. ¡Mira el video completo para seguirlo!

Imágenes

Heltec_WiFi_LoRa_32_V3_N35-1-package
Heltec_WiFi_LoRa_32_V3_N35-1-package
Sin código adjunto.

Common Course Files

Archivos📁

Otros archivos