Sommario:

Semplice comunicazione Arduino LoRa (più di 5 km): 9 passaggi
Semplice comunicazione Arduino LoRa (più di 5 km): 9 passaggi

Video: Semplice comunicazione Arduino LoRa (più di 5 km): 9 passaggi

Video: Semplice comunicazione Arduino LoRa (più di 5 km): 9 passaggi
Video: Configurare una scheda LoRa con Arduino - Video 553 2024, Dicembre
Anonim
Comunicazione semplice Arduino LoRa (più di 5 km)
Comunicazione semplice Arduino LoRa (più di 5 km)

Testeremo E32-TTL-100 con la mia libreria. È un modulo ricetrasmettitore wireless, opera a 410 441 MHz (o 868 MHz o 915 MHz) basato sull'originale RFIC SX1278 di SEMTECH, è disponibile la trasmissione trasparente, livello TTL. Il modulo adotta la tecnologia a spettro esteso LORA.

Forniture

  • Arduino UNO
  • Dispositivi LoRa e32

Opzionale

  • Scudo Mischianti Arduino LoRa (open source)
  • Scudo Mischianti WeMos LoRa (open source)

Passaggio 1: specifiche dei dispositivi

Il modulo è dotato dell'algoritmo FEC Forward Error Correction, che garantisce la sua elevata efficienza di codifica e buone prestazioni di correzione. In caso di interferenza improvvisa, può correggere automaticamente i pacchetti di dati interferiti, in modo che l'affidabilità e il raggio di trasmissione vengano migliorati di conseguenza. Ma senza FEC, quei pacchetti di dati possono solo essere eliminati. E con la rigorosa crittografia e decrittografia, l'intercettazione dei dati diventa inutile. La funzione di compressione dei dati può ridurre il tempo di trasmissione e la probabilità di interferenze, migliorando l'affidabilità e l'efficienza di trasmissione.

  • Dimensioni del modulo: 21*36mm
  • Tipo di antenna: SMA-K (impedenza 50Ω)
  • Distanza di trasmissione: 3000 m (massimo)
  • Potenza massima: 2dB (100 mW)
  • Velocità dell'aria: 2,4 Kbps (6 livelli opzionali (0,3, 1,2, 2,4, 4,8, 9,6, 19,2 kbps)
  • Lunghezza di emissione: 512 ByteReceive
  • lunghezza: 512 byte
  • Interfaccia di comunicazione: UART – 8N1, 8E1, 8O1,
  • Otto tipi di baud rate UART, da 1200 a 115200 bps (predefinito: 9600)
  • Supporto RSSI: No (elaborazione intelligente integrata)

Passaggio 2: tipo di trasmissione

Tipo di trasmissione
Tipo di trasmissione

Trasmissione trasparenteQuesto può essere considerato come una "Modalità demo", per impostazione predefinita è possibile inviare un messaggio a tutti i dispositivi dello stesso indirizzo e canale configurato.

Trasmissione fissa

Questo tipo di trasmissione è possibile specificare un indirizzo e un canale dove si desidera inviare il messaggio. Puoi inviare un messaggio a:

  • Dispositivo specificato con indirizzo basso, indirizzo alto e canale predeterminati.
  • Trasmettere un messaggio a un insieme di dispositivi di canale Modalità normale Invia semplicemente un messaggio.

Passaggio 3: modalità dispositivo

Modalità normaleInvia semplicemente un messaggio.

Modalità di riattivazione e modalità di risparmio energetico

Come puoi intendere se un dispositivo è in modalità Wake-up puoi "risvegliare" uno o più dispositivi che sono in modalità di risparmio energetico con una comunicazione preambolo.

Modalità programma/sleep

Con questa configurazione puoi modificare la configurazione del tuo dispositivo.

Passaggio 4: dispositivo di cablaggio

Dispositivo di cablaggio
Dispositivo di cablaggio
Dispositivo di cablaggio
Dispositivo di cablaggio

Ecco lo schema di connessione del dispositivo, questo è completamente connesso, con gestione dei pin M0 e M1 permette di cambiare modalità del dispositivo, in modo da poter passare alla modalità di configurazione o sveglia con il programma, la libreria ti aiuta in tutto questo operazione.

Passaggio 5: configurazione

Configurazione
Configurazione

Esiste un comando specificato per impostare e ottenere la configurazione

void setup() { Serial.begin(9600); ritardo (500); // Avvia tutti i pin e UART e32ttl100.begin(); ResponseStructContainer c; c = e32ttl100.getConfiguration(); // È importante ottenere il puntatore di configurazione prima di tutte le altre operazioni Configuration configuration = *(Configuration*) c.data; Serial.println(c.status.getResponseDescription()); Serial.println(c.status.code); printParameters(configurazione); ResponseStructContainer cMi; cMi = e32ttl100.getModuleInformation(); // È importante ottenere un puntatore informativo prima di tutte le altre operazioni ModuleInformation mi = *(ModuleInformation*)cMi.data; Serial.println(cMi.status.getResponseDescription()); Serial.println(cMi.status.code); printModuleInformation(mi); }

Passaggio 6: risultato della configurazione

E il risultato diventa

Begin Success 1 ---------------------------------------- HEAD BIN: 11000000 192 C0 AddH BIN: 0 AddL BIN: 0 Chan BIN: 23 -> 433MHz SpeedParityBit BIN: 0 -> 8N1 (predefinito) SpeedUARTDataRate BIN: 11 -> 9600bps (predefinito) SpeedAirDataRate BIN: 10 -> 2,4 kbps (predefinito) OptionTrans BIN: 0 - > Trasmissione trasparente (predefinito) OptionPullup BIN: 1 -> TXD, RXD, AUX sono push-pull/pull-up OptionWakeup BIN: 0 -> 250ms (predefinito) OptionFEC BIN: 1 -> Attiva l'interruttore di correzione degli errori in avanti (predefinito) OptionPower BIN: 0 -> 20dBm (predefinito) ---------------------------------------- Success 1 -------------------------- CESTINO PER LA TESTA: 11000011 195 C3 Modello n.: 32 Versione: 44 Caratteristiche: 14 --------------------------

Passaggio 7: inviare un messaggio

Invia messaggio
Invia messaggio

Ecco un semplice schizzo per inviare un messaggio a tutti i dispositivi collegati al canale

void loop() { // Se qualcosa è disponibile if (e32ttl100.available()>1) { // legge il messaggio String ResponseContainer rc = e32ttl100.receiveMessage(); // Qualcosa va storto errore di stampa if (rc.status.code!=1){ rc.status.getResponseDescription(); }else{ // Stampa i dati ricevuti Serial.println(rc.data); } } if (Serial.available()) { String input = Serial.readString(); e32ttl100.sendMessage(input); } }

Passaggio 8: scudo per Arduino

Scudo per Arduino
Scudo per Arduino

Creo anche uno shield per Arduino che diventa molto utile per la prototipazione.

E lo rilascio come progetto open source qui

www.pcbway.com/project/shareproject/LoRa_E32_Series_device_Arduino_shield.html

Passaggio 9: libreria

Biblioteca
Biblioteca

Archivio GitHub

Forum di assistenza

Documentazione aggiuntiva

Consigliato: