LoRa é um transceptor de longa distância capaz de chegar ou ultrapassar os 8000m em condições ideias com apenas 1W de transmissão.
Aplicações
- Sensoriamento remoto;
- Estações meteorológicas;
- IoT;
- Telemetria;
- Comunicação em Malha.
Especificações
- Voltagem de trabalho: 3v3 ~ 5v2;
- Voltagem de comunicação: 2v5 ~ 3v6;
- Consumo de transmissão: 650mA ~ 720mA;
- Temperatura de trabalho: -40 ~ 85℃;
- Humidade de trabalho: 10% ~ 90%;
- Tamanho: 24mm x 43mm x 4,2mm;
- Interface de comunicação: UART e SPI;
Comunicação
- Potência de transmissão: 29.4 ~ 30.8dBm;
- Taxa de dados: 0,3kbps ~ 19,2kbps;
- Impedância da Antena: 50ohms;
- Alcance de transmissão: 7200m ~ 8800m;
- Tipo de conexão: DIP;
- Conector Antena: SMA-K;
- Frequência: 900 – 931Mhz.
Peculiaridades do LoRa
O LoRa (Long Range) é uma tecnologia de rede de área ampla de baixa potência (LPWAN). Baseia-se em técnicas de modulação de espectro de propagação derivadas da tecnologia chirp spread spectrum (CSS) e o modelo E32915T30D é um dos mais poderosos, chegando a uma distância de 7200m ~ 8800m em condições ideias.

Transmitindo e Recebendo Dados
Foi feito diversos teste de transmissão com o LoRa, enviando dados curtos e longos. É um transmissor de comunicação rápida a depender das informações a serem transmitidas.
Diferentemente de outros transceptores o LoRa aparentemente faz um upload de dados, ou seja, se for enviado um texto de 1000 caracteres o LoRa vai ficar enviando e o receptor vai ficar lendo o sinal e armazenando nele mesmo até que seja encerrado e logo em seguida é exibido na UART.
Atenas e Cuidados
A antena deve atender a mesma faixa de frequência do modelo do LoRa nesse exemplo do post é o E32915T30D que tem uma frequência 915Mhz com um conector SMA Fêmea. As antenas são vendidas com range de 868 a 915Mhz e deve ter o conector SMA do tipo Macho.

Caso não tenha em mãos uma antena que atenda a faixa de frequência do transceptor mas queria testar só tem antena de outras faixas como 2.4Ghz, não tem problema mas para aplicações a longa distância não terá o mesmo desempenho de uma antena adequada. Por mais que a antena não seja de adequada, é melhor do que o não uso, pois pode acabar danificando o LoRa.
Dimensões do LoRa E32915T30D
Esse modelo de LoRa tem um comprimento de um Arduino nano e uma largura aproximada de 1,5 Arduino nano.

LoRa E32915T30D Pinout

LoRa E32915T30D com Arduino
O LoRa é muito simples de ser usado, tendo uma comunicação bilateral do transceptor com microcontrolador baseado em UART, recebendo dados apenas com a leitura da serial e enviando apenas imprimindo na serial.
Diagrama
Diferentemente das aplicações em que existe uma interfarce UART real no hardware e qualquer conexão deve seguir a lógica TX -> RX e RX -> TX de forma invertida, no caso do uso da biblioteca SoftwareSerial vai simular uma interface UART e por isso podemos fazer essa “inversão” TX e RX via código.

Código LoRa com Arduino
Para uso do LoRa e Arduino nano e uno é necessário ter a biblioteca Software que é nativo da IDE, não necessitando a instalação. Em casos de microcontroladores que possuem mais de uma UART como o ESP32, basta usar os comandos Serial1, Serial2, Serial3 […]
O código abaixo servem tanto para o exemplo do transmissor e do receptor, e para definir como receptor é só enviar “rx”, caso contrário iriar ficar transmitindo valores randômicos.
#include <SoftwareSerial.h>
SoftwareSerial lora(2, 3); // RX, TX
void setup() {
Serial.begin(9600);
lora.begin(9600);
}
void loop() {
String cmd_read = Serial.readStringUntil('\n');
if (cmd_read != "") {
Serial.println(cmd_read);
if (cmd_read == "RX" || cmd_read == "rx") {
Serial.println("LoRa configurado como: Receptor");
while (true)
{
String lora_value = lora.readString();
if (lora_value != "")
Serial.println(lora_value);
String cmd_stop_rx = Serial.readStringUntil('\n');
if (cmd_stop_rx == "stop_rx")
{
Serial.println("Modo RX Desativo!");
break;
}
}
}
if (cmd_read == "TX" || cmd_read == "tx") {
while (true)
{
String r = String(random(1000, 99999));
lora.println(r);
Serial.println("Valor enviado: " + r);
String cmd_stop_tx = Serial.readStringUntil('\n');
if (cmd_stop_tx == "stop_tx")
{
Serial.println("Modo TX Desativo!");
break;
}
delay(1000);
}
}
}
}
Funcionamento LoRa e Arduino
O funcionamento do E32915T30D foi apenas uma demonstração de conceito e não foi feito o teste real para validar a distância de transmissão mas o range de 8km mencionado nesse post foi com base no datasheet da fabricante. Único teste de distância realizado foi andar com um LoRa recebendo dados em Json a uma distância de 192m passando por locais extremante fechado e recebeu dados o tempo todo!!
Considerações
Por mais que não tenha sido realizado testes para comprovar distância do E32915T30D o LoRa aparentemente se mostrou um transceptor incrível mas falta ainda realizar o teste prático a longa distância.
Você precisa fazer log in para comentar.