Você está na página 1de 6

COMUNICAÇÃO LORA COM ARDUÍNO PONTO A PONTO – P2P

Apesar da disponibilidade das tecnologias Wi-Fi, Bluetooth e redes de comunicação celular (GPRS/3G/4G) em diferentes soluções
em Internet das Coisas (IoT), surgiu a necessidade por um tipo de comunicação de longo alcance com baixo de consumo de energia.

Assim, um novo grupo de tecnologias de comunicação, as LPWAN (do inglês Low Power Wide Area Networks), apresentam como
principais características alto alcance de transmissão e baixo consumo de energia.
As duas redes LPWAN mais conhecidas são a rede Sigfox e redes LoRa, sendo esta última baseada na tecnologia LoRa e procotolo
LoRaWAN.
Essas tecnologias também estão disponíveis para comunicação LoRa com Arduino.

A tecnologia LoRa trata-se de um tipo de modulação patenteado pela empresa SEMTECH e disponível como comunicação de
radiofrequência (RF) nas frequências 433, 868 e 915 MHz.

As faixas de operação do LoRa fazem parte da banda ISM (Industrial Sientific and Medical), onde diferentes intervalos são
reservadas internacionalmente para o desenvolvimento Industrial, científico e médico.
Um exemplo de um módulo de comunicação que também faz parte da banda ISM é o nRF24L01.

O TRANSCEIVER LORA SX1276


Considerando as alternativas para desenvolvimento de soluções em sistemas embarcados e projetos makers e DIY de baixo custo
com a tecnologia LoRa, um módulo em especial se destaca, o SX1276.

O módulo SX1276 é um transceiver, dispositivo responsável pela comunicação sem fio, oferecendo comunicação de espectro
disperso de alcance ultra longo e alta imunidade a interferências e minimizando o consumo de energia.

O transceiver SX1276 é um circuito integrado muito pequeno e que necessita diferentes circuitos de proteção a interferências e
ruídos, assim diversos fabricantes têm disponibilizado o SX1276 em módulos com comunicação serial para diversas plataformas de
desenvolvimento, como Arduino e Raspberry Pi.

Assim, torna-se importante conhecer os diferentes módulos LoRa baseado no SX1276.


A figura abaixo ilustra três dos principais módulos LoRa baseados no SX1276 que podem ser conectados com plataformas como
Arduino e Raspberry Pi.

Da esquerda para direita temos o módulo LoRa mini, e LoRaF 30, ambos da niceRF.
A diferença entre os dois primeiros corresponde a potência de transmissão, o LoRa mini permite transmissao com 100mW e LoRaF
30 com 500mW. O terceiro módulo corresponde ao RFM95W da HopeRF.

Vale destacar que você já encontra o LoRa mini disponível para venda na loja virtual da FilipeFlop.

Página 1 de 6
Em comum a todos os três módulos listados acima tem-se a pinagem para conexão com as placas de desenvolvimento, baseado na
comunicação serial pelo protocolo SPI, onde será detalhada na seção a seguir.

A PINAGEM PARA COMUNICAÇÃO COM ARDUINO E OUTRAS PLATAFORMAS


Como descrito anteriormente, o tipo de comunicação serial utilizado pelos diferentes módulos baseados no SX1276 é o protocolo
SPI.
Assim, faz-se necessária a identificação dos pinos principais para o estabelecimento da comunicação.

Do protocolo SPI temos os pinos: SCK, MISO, MOSI e NSS (que atua como Chip Select).
Os pinos responsáveis pela alimentação do módulo são o VCC (com funcionamento exclusivamente na tensão de 3.3V!) e o GND
(terra).

Para a conexão com antena, seja esta helicoidal, wire (baseada em fio) ou com algum conector específico, o pino ANT. Outros pinos
exclusivos do módulo são: DIO0, DIO1, DIO2, e NRESET.
A tabela abaixo mostra a descrição completa (também ilustrada na Figura) e resumida.

COMUNICAÇÃO PONTO A PONTO (P2P) E COMUNICAÇÃO LORAWAN


É importante diferenciar o tipo de comunicação a ser utilizada com o módulo LoRa.
A tecnologia torna-se possível para comunicação de maneira direta entre módulos, comunicação ponto a ponto (P2P) e o uso dos
módulos para caracterizar um dispositivo conectado com o protocolo LoRaWAN.
Como o objetivo inicial deste post é introduzir a comunicação do módulo com Arduino, irei abordar apenas a comunicação P2P, por
enquanto.

CIRCUITO LORA MINI COM ARDUINO UNO

Página 2 de 6
Para a conexão do modulo LoRa mini com o Arduino faz-se necessário o uso de conversor de nível lógico 3.3-5V Bidireccional,
visto que o Arduino UNO opera em 5V e o nível lógico do modulo LoRa mini é 3.3V.
Assim, segue a lista dos componentes necessários (para a comunicação LoRa com Arduino entre dois módulos):

Componentes utilizados:

 2x Arduino UNO R3
 2x Módulo LoRa Mini 915MHz
 4x Conversor de Nível Lógico 3.3-5V Bidireccional ou 2x PCBs adaptadoras do módulo LoRa

Antes de começar qualquer passo da montagem do circuito note que o módulo LoRa mini não possui conexão direta com os
tradicionais pinos da protoboard.
Assim faz-se necessária uma conexão com protoboard ou pinos para ligação com Arduino UNO.
Duas opções tornam-se possíveis (mostradas na figura abaixo): soldar diretamente o jumper a ser utilizado na placa ou utilizar uma
placa de circuito (PCB) de modo a adaptar a ligação do módulo.
O leitor que optar pela segunda opção pode utilizar esta placa open-source hardware desenvolvida anteriormente para conexão.

Considerando o uso com Arduino UNO (também válido para o Mega e placas baseadas no Atmega32u4 como Arduino Leonardo)
segue abaixo a tabela para comunicação.

PROGRAMAÇÃO PARA COMUNICAÇÃO LORA COM ARDUINO


Considerando as bibliotecas disponíveis para a operação do LoRa como comunicação RF direta entre sistemas embarcados, a
biblioteca Arduino LoRa, do Sandeep Mistry, torna-se uma solução bastante interessante para comunicação LoRa com Arduino pelo
fato da mesma implementar o endereçamento de dispositivos, ao anexar um cabeçalho no payload da mensagem.
A mesma está disponível no GitHub e também pode ser adicionada pela IDE Arduino, como mostrado a seguir.

Página 3 de 6
O código a ser utilizado pela biblioteca possui alguns parâmetros de configuração, como o endereço do dispositivo, o endereço do
destino da mensagem e o intervalo de tempo entre o envio de mensagens.
O código comentado e explicado, pode ser encontrado a seguir:

Página 4 de 6
Página 5 de 6
FUNCIONAMENTO DOS MÓDULOS LORA CONECTADOS
Para realizar uma comunicação LoRa com Arduino entre dois módulos basta programar cada respectivo Arduino com seu endereço e
o endereço do módulo a ser enviado.
Por exemplo, programe um módulo condereco 0x01 e com envio de mensagens para o módulo 0x05. Em seguida, programe um
Arduino com o endereço 0x05 e envio para 0x01.

Página 6 de 6

Você também pode gostar