Ir al contenido

LoRa (Long Range) es una tecnología de comunicación inalámbrica diseñada para comunicaciones de largo alcance y bajo consumo, que se usa sobre todo en aplicaciones de Internet de las cosas (IoT). LoRa funciona en bandas de radiofrecuencia sin licencia y permite que los dispositivos envíen pequeñas cantidades de datos a distancias de varios kilómetros con un consumo de energía mínimo.

Esta página se centra en la comunicación LoRa pura y en los pasos necesarios para usarla correctamente en los PLC basados en Arduino. Si buscas un ejemplo de cómo usar LoRaWAN, consulta Cómo trabajar con LoRaWAN y un controlador PLC.

LoRa es una comunicación opcional. Solo pueden usarla los PLC M-Duino y Ardbox con la placa de comunicación adicional.

Hardware

Los PLC de Industrial Shields basados en Arduino admiten LoRa para Europa, Asia y Norteamérica, con una placa RFM9X5W. Las bandas admitidas son 868MHz y 915MHz, que se usan en Europa y América, respectivamente.

Para usar LoRa, hay que configurar correctamente los interruptores DIP.

Interruptores DIP

Recuerda alimentar correctamente el PLC con una fuente de alimentación de 12-24V.

Software

LoRa se usa en los PLC Arduino con la librería "LoRa". Para configurarla correctamente, sigue estos pasos:

  1. Selecciona la placa LoRa correspondiente: Tools > Board > Industrial Shields AVR Boards > Ardbox/M-duino LoRa family.
  2. Selecciona tu modelo en Tools > Model
  3. Selecciona el puerto que usas en Tools > Port.​
  4. Abre los ejemplos de LoRa en File > Examples > LoRa. 

Hay 2 ejemplos básicos disponibles:

  • El ejemplo Receive configura un módulo LoRa para comunicación inalámbrica a 868.0MHz. Inicializa el módulo y escucha continuamente los paquetes de datos entrantes. Cuando recibe un paquete, imprime el valor recibido en el monitor serie para depuración.
  • El ejemplo Send configura un módulo LoRa para comunicación inalámbrica a 868.0MHz. Inicializa el módulo y después envía continuamente el valor de un contador como paquete de datos cada 5 segundos. Tras enviar cada paquete, incrementa el contador e imprime mensajes de depuración en el monitor serie.
Referencia de la API

Descripción:

Inicializa el módulo LoRa.

Sintaxis:

LoRa.begin();

Parámetros:

Ninguno

Valores devueltos:

Devuelve true si la inicialización se ha realizado correctamente; si no, devuelve false.

Descripción:

Fija la frecuencia de trabajo del módulo LoRa.

Sintaxis:

LoRa.setFrequency(frequency);

Parámetros:

  • frequency: la frecuencia que se fija en el módulo LoRa, en MHz.

Valores devueltos:

Devuelve true si la frecuencia se ha fijado correctamente; si no, devuelve false.

Descripción:

Comprueba si hay un paquete entrante disponible.

Sintaxis:

LoRa.available();

Parámetros:

Ninguno.

Valores devueltos:

Devuelve true si hay un paquete entrante disponible; si no, devuelve false.

Descripción:

Recibe un paquete y guarda el payload en el buffer indicado.

Sintaxis:

LoRa.recv(buf, len);

Parámetros:

  • buf: puntero al buffer donde se guardará el payload.
  • len: puntero a la longitud del buffer. Se actualiza con la longitud real del payload recibido.

Valores devueltos:

Devuelve true si el paquete se ha recibido correctamente; si no, devuelve false.

Descripción:

Envía un paquete con el payload indicado.

Sintaxis:

LoRa.send(buf, len);

Parámetros:

  • buf: puntero al buffer que contiene el payload que se enviará.
  • len: longitud del payload que se enviará.

Valores devueltos:

Nada.

Descripción:

Espera hasta que el paquete se haya enviado por completo.

Sintaxis:

LoRa.waitPacketSent();

Parámetros:

Ninguno.

Valores devueltos:

Nada.

Calificación
0 0

No hay comentarios por ahora.

para ser el primero en comentar.