Tabla de contenido:

Comunicación simple de Arduino LoRa (más de 5 km): 9 pasos
Comunicación simple de Arduino LoRa (más de 5 km): 9 pasos

Video: Comunicación simple de Arduino LoRa (más de 5 km): 9 pasos

Video: Comunicación simple de Arduino LoRa (más de 5 km): 9 pasos
Video: ✅ Comunicación LoRa P2P con Arduino 😱 ► (en sólo 8 minutos) -- PASO a PASO --[FUNCIONA] 📡📡📡 2024, Mes de julio
Anonim
Comunicación simple Arduino LoRa (más de 5 km)
Comunicación simple Arduino LoRa (más de 5 km)

Vamos a probar E32-TTL-100 con mi biblioteca. Es un módulo transceptor inalámbrico, opera a 410 441 MHz (o 868MHz o 915MHz) basado en RFIC SX1278 original de SEMTECH, transmisión transparente disponible, nivel TTL. El módulo adopta la tecnología de espectro ensanchado LORA.

Suministros

  • Arduino UNO
  • Dispositivos LoRa e32

Opcional

  • Mischianti Arduino LoRa shield (código abierto)
  • Escudo Mischianti WeMos LoRa (código abierto)

Paso 1: especificaciones de los dispositivos

El módulo cuenta con el algoritmo de corrección de errores de avance FEC, que garantiza su alta eficiencia de codificación y un buen rendimiento de corrección. En el caso de una interferencia repentina, puede corregir los paquetes de datos interferidos automáticamente, de modo que la fiabilidad y el rango de transmisión se mejoran en consecuencia. Pero sin FEC, esos paquetes de datos solo se pueden descartar. Y con el cifrado y descifrado rigurosos, la interceptación de datos se vuelve inútil. La función de compresión de datos puede disminuir el tiempo de transmisión y la probabilidad de ser interferencia, al tiempo que mejora la confiabilidad y la eficiencia de transmisión.

  • Tamaño del módulo: 21 * 36 mm
  • Tipo de antena: SMA-K (impedancia de 50 Ω)
  • Distancia de transmisión: 3000 m (máx.)
  • Potencia máxima: 2dB (100 mW)
  • Tasas de aire: 2,4 Kbps (6 niveles opcionales (0,3, 1,2, 2,4, 4,8, 9,6, 19,2 kbps)
  • Longitud de la emisión: 512ByteReceive
  • longitud: 512Byte
  • Interfaz de comunicación: UART - 8N1, 8E1, 8O1,
  • Ocho tipos de velocidad en baudios UART, de 1200 a 115200bps (predeterminado: 9600)
  • Soporte RSSI: No (procesamiento inteligente integrado)

Paso 2: Tipo de transmisión

Tipo de transmisión
Tipo de transmisión

Transmisión transparente Esto se puede considerar como un "modo de demostración", por defecto puede enviar un mensaje a todos los dispositivos de la misma dirección y canal configurados.

Transmisión fija

En este tipo de transmisión puedes especificar una dirección y un canal donde quieres enviar el mensaje. Puede enviar un mensaje a:

  • Dispositivo especificado con una dirección baja, una dirección alta y un canal predeterminados.
  • Transmitir mensaje a un conjunto de dispositivos de canal Modo normal Simplemente envíe el mensaje.

Paso 3: Modo de dispositivo

Modo normal Simplemente envíe un mensaje.

Modo despertador y modo de ahorro de energía

Como puede suponer, si un dispositivo está en modo de activación, puede "activar" uno o más dispositivos que están en modo de ahorro de energía con una comunicación de preámbulo.

Modo programa / dormir

Con esta configuración puede cambiar la configuración de su dispositivo.

Paso 4: dispositivo de cableado

Dispositivo de cableado
Dispositivo de cableado
Dispositivo de cableado
Dispositivo de cableado

Aquí el esquema de conexión del dispositivo, este es un totalmente conectado, con gestión de pin M0 y M1 permite cambiar de modalidad del dispositivo, por lo que puedes cambiar a configuración o modo despertar con programa, la librería te ayuda en todo esto operación.

Paso 5: configuración

Configuración
Configuración

Existe un comando especificado para establecer y obtener la configuración

configuración vacía () {Serial.begin (9600); retraso (500); // Arranque todos los pines y UART e32ttl100.begin (); ResponseStructContainer c; c = e32ttl100.getConfiguration (); // Es importante obtener el puntero de configuración antes de todas las demás operaciones Configuración de configuración = * (Configuración *) c.data; Serial.println (c.status.getResponseDescription ()); Serial.println (c.status.code); printParameters (configuración); ResponseStructContainer cMi; cMi = e32ttl100.getModuleInformation (); // Es importante obtener el puntero de información antes de todas las demás operaciones ModuleInformation mi = * (ModuleInformation *) cMi.data; Serial.println (cMi.status.getResponseDescription ()); Serial.println (cMi.status.code); printModuleInformation (mi); }

Paso 6: Resultado de la configuración

Y el resultado se convierte

Inicio exitoso 1 ---------------------------------------- HEAD BIN: 11000000 192 C0 AddH BIN: 0 AddL BIN: 0 Chan BIN: 23 -> 433MHz SpeedParityBit BIN: 0 -> 8N1 (predeterminado) SpeedUARTDataRate BIN: 11 -> 9600bps (predeterminado) SpeedAirDataRate BIN: 10 -> 2.4kbps (predeterminado) OptionTrans BIN: 0 - > Transmisión transparente (predeterminado) Option Pullup BIN: 1 -> TXD, RXD, AUX son push-pulls / pull-ups OptionWakeup BIN: 0 -> 250ms (predeterminado) OptionFEC BIN: 1 -> Activar el interruptor de corrección de errores de reenvío (predeterminado) OptionPower BIN: 0 -> 20dBm (predeterminado) ---------------------------------------- Éxito 1 ---------------------------------------- HEAD BIN: 11000011 195 C3 Modelo no.: 32 Versión: 44 Características: 14 ----------------------------------------

Paso 7: enviar mensaje

Enviar mensaje
Enviar mensaje

Aquí un simple boceto para enviar un mensaje a todos los dispositivos adjuntos al canal.

void loop () {// Si hay algo disponible if (e32ttl100.available ()> 1) {// lea el mensaje String ResponseContainer rc = e32ttl100.receiveMessage (); // ¿Algo sale mal? Error de impresión if (rc.status.code! = 1) {rc.status.getResponseDescription (); } else {// Imprime los datos recibidos Serial.println (rc.data); }} if (Serial.available ()) {String input = Serial.readString (); e32ttl100.sendMessage (entrada); }}

Paso 8: escudo para Arduino

Escudo para Arduino
Escudo para Arduino

También creo un escudo para Arduino que resulta muy útil para la creación de prototipos.

Y lo publico como proyecto de código abierto aquí.

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

Paso 9: biblioteca

Biblioteca
Biblioteca

Repositorio de GitHub

Foro de soporte

Documentación adicional

Recomendado: