Accendi un dispositivo da 13 miglia (21 km) di distanza - Il progetto definitivo off-grid LoRa con WiFi LoRa 32!

Questa lezione fa parte di: Introduzione al WiFi LoRa

Accendi un dispositivo da 13 miglia (21 km) di distanza - Il progetto definitivo off-grid LoRa con WiFi LoRa 32!

Immagina di poter cambiare unventilatore, riscaldamento, serratura della porta, o sistema remotoda a21 chilometri (13 miglia)via completamentefuori rete,senza Wi-Fi, esenza una scheda SIMIn questo tutorial imparerai come costruire un controller di relè wireless a lungo raggio sicuro utilizzandoHeltec WiFi LoRa 32 V3moduli e ilRobojax_HeltecLoRa32biblioteca. Questo progetto consente comunicazioni LoRa criptate per attivare in modo sicuro relè su grandi distanze.

Panoramica del Progetto

Questo sistema è composto da due schede LoRa32:

  • Trasmettitore (TX)Un pulsante attiva un comando crittografato ("ON" o "OFF") tramite LoRa.

  • Ricevitore (RX)Ascolta e decrittografa il comando, quindi controlla un modulo relè collegato a GPIO4 di conseguenza.

Hai due versioni del codice del trasmettitore:

  • SempliceInvia ON quando il pulsante è tenuto premuto, OFF quando viene rilasciato.

  • DisattivaAlterna lo stato ad ogni pressione.


Installazione delle schede Heltec ESP32

Aggiungi questo percorso nelle preferenze del tuo Arduino IDE come mostrato nel video:https://resource.heltec.cn/download/package_heltec_esp32_index.json

Libreria richiesta

Devi installare ilRobojax_HeltecLoRa32biblioteca. Scaricalo dal link sotto questo articolo.

Installa questa libreria ZIP tramite l'IDE di Arduino prima di caricare qualsiasi codice.

Istruzioni per il cablaggio

Cablaggio del trasmettitore:

  • Pulsante utente collegato aGPIO0

  • Opzionale: il display OLED utilizza i pin predefiniti (SCL/SDA)

Cablaggio del ricevitore:

  • Pin di controllo del relè (o del segnale acustico) collegato aGPIO4

  • Modulo relè a 5V alimentato tramite 5V e GND della scheda

Controlla un carico utilizzando LoRa

Schema di cablaggio che mostra il ricevitore LoRa32 con relè e carico.

Helte_Wifi_LoRA_ buzzer

Schema elettrico che mostra il buzzer LoRa32.

Spiegazione del codice TX sicuro

In entrambe le bozze TX, la crittografia è attivata utilizzando ilsetSecurityKey()metodo della libreria Robojax. Ad esempio:

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

InRelay_Secure_TX_Simple.ino, un segnale ALTO su GPIO0 invia "ON", mentre un segnale BASSO invia "OFF":

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

InRelay_Secure_TX_Toggle.ino, ogni pressione del pulsante alterna tra ACCESO e SPENTO:

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

Spiegazione del codice RX sicuro

Il bozzetto del ricevitore utilizza la stessa chiave di crittografia e ascolta i messaggi sicuri:

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

Poi controlla GPIO4 di conseguenza:

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

Il display OLED mostra lo stato ricevuto e l'etichetta "RX".

Indice dei Capitoli

  1. [00:00] Introduzione al progetto e dimostrazione della gamma

  2. [00:08] Casi d'uso: Ventilatore, Riscaldatore, Cancello, Luce

  3. [00:20] Hardware Utilizzato

  4. Panoramica del cablaggio

  5. [01:00] Installazione della Libreria Robojax

  6. [01:20] Codice TX (Versione Semplice)

  7. [01:40] Codice TX (Versione a cambiamento)

  8. [02:00] Spiegazione del codice RX

  9. [02:20] Dimostrazione dal vivo

Questo tutorial offre un modo robusto e sicuro per controllare dispositivi senza fili su lunghe distanze. Tutto il codice e la libreria necessaria sono disponibili sotto questo articolo. Guarda il video completo per seguire il tutorial!

Immagini

Heltec_WiFi_LoRa_32_V3_N35-1-package
Heltec_WiFi_LoRa_32_V3_N35-1-package
Nessun codice allegato.

Common Course Files

File📁

Altri file