Uncategorized

ESP32 + LoRa: Nó de Sensor de Longo Alcance (até 8km)

O Problema

WiFi funciona muito bem — até você precisar colocar um sensor no jardim a 200 metros. Ou numa fazenda do outro lado do vale. Ou dentro de um galpão metálico. O WiFi morre a 50 metros. O Bluetooth, a 10.

O LoRa muda tudo. Usando o módulo LoRa E32 (915MHz, 1W), você consegue enviar dados de sensor por até 8 quilômetros — sem torre de celular, sem WiFi, sem mensalidade.

O Que Você Vai Construir

Um nó de sensor LoRa alimentado por bateria que:

  • Lê temperatura e umidade
  • Transmite os dados via LoRa para um receptor
  • Entra em deep sleep por 10 minutos entre leituras (bateria dura meses)

Dificuldade: Iniciante  |  Tempo: 45 minutos  |  Custo: ~US$ 40 em peças

Hardware Necessário (Lista de Materiais)

Peça Modelo Qtd Preço Comprar
Microcontrolador (Transmissor) ESP32 DevKitC V4 1 $13.49 Ver Produto
Microcontrolador (Receptor) ESP32-C3 SuperMini 1 $7.49 Ver Produto
Módulo LoRa E32-915T30D (915MHz) 2 $11.99 cada Ver Produto
Sensor de Temp./Umidade DHT22 1 $5.24 Ver Produto
Alimentação por Bateria 18650 Battery Shield 1 $11.99 Ver Produto
Protoboard 830 pontos 1 $4.49 Ver Produto
Cabos Jumper M-M 40pcs 1 $2.99 Ver Produto

Aviso de Frequência: Os módulos E32 existem nas versões 433MHz, 868MHz e 915MHz. Eles NÃO conversam entre si. Garanta que os dois módulos sejam da MESMA frequência. Nos EUA, usa-se 915MHz.

Passo 1: Fiação (Nó Transmissor)

O módulo LoRa E32 usa serial UART — muito mais simples que módulos LoRa baseados em SPI. Sem bibliotecas complicadas!

Pino E32 LoRa Pino ESP32 Nota
VCC 5V Alimentação (confira as especificações do seu módulo)
GND GND Terra
RXD GPIO 17 (TX2) E32 RX ← ESP32 TX
TXD GPIO 16 (RX2) E32 TX → ESP32 RX
M0 GND Define o modo de transmissão
M1 GND Define o modo de transmissão
DHT22 DATA GPIO 13 Dados do sensor

Cruzamento TX↔RX: UART é como uma ligação telefônica — sua boca (TX) conecta no ouvido deles (RX). Sempre cruze as conexões: TXD do módulo → RX2 do ESP32, RXD do módulo → TX2 do ESP32.

Passo 2: Código do Transmissor

Envie isto para o ESP32 transmissor (o que tem o sensor DHT22):

#include <HardwareSerial.h>
#include "DHT.h"

HardwareSerial LoRaSerial(2); // ESP32 Serial2 (GPIO 16, 17)

#define DHTPIN 13
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

// Deep sleep: 10 minutes between readings
#define uS_TO_S_FACTOR 1000000ULL
#define TIME_TO_SLEEP  600

void setup() {
  Serial.begin(115200);
  Serial.println("sensbench LoRa Sensor Node");

  LoRaSerial.begin(9600);
  dht.begin();
  delay(2000);

  float h = dht.readHumidity();
  float t = dht.readTemperature();

  if (isnan(h) || isnan(t)) {
    Serial.println("Sensor read failed!");
  } else {
    String data = "T:" + String(t, 1) + "C H:" + String(h, 1) + "%";
    Serial.println("Sending: " + data);
    LoRaSerial.println(data);
  }

  Serial.println("Deep sleeping for 10 minutes...");
  Serial.flush();

  esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);
  esp_deep_sleep_start();
}

void loop() {
  // Not reached after deep sleep
}

Passo 3: Código do Receptor

Envie isto para o ESP32 receptor (conectado no seu computador):

#include <HardwareSerial.h>

HardwareSerial LoRaSerial(2);

void setup() {
  Serial.begin(115200);
  Serial.println("sensbench LoRa Receiver");
  LoRaSerial.begin(9600);
}

void loop() {
  if (LoRaSerial.available()) {
    String data = LoRaSerial.readString();
    Serial.print("Received: ");
    Serial.println(data);
  }
}

Passo 4: Teste

  1. Alimente o nó transmissor com o 18650 battery shield
  2. Conecte o receptor ao seu computador e abra o Serial Monitor (115200 baud)
  3. A cada 10 minutos, você verá temperatura e umidade chegarem de até 8km de distância

Por Que Isso Funciona Tão Bem

  • Deep Sleep: O ESP32 consome só 10µA em deep sleep. Com uma bateria 18650 de 2000mAh, o nó de sensor pode rodar por 3+ meses com uma única carga.
  • LoRa via UART: Diferente do LoRa baseado em SPI (SX1276), o módulo E32 usa comunicação serial simples. Sem biblioteca complexa, sem bagunça de fiação SPI, sem registradores de configuração.
  • Potência de 1W (30dBm): O E32-915T30D é a versão de alta potência. Módulos padrão emitem 20dBm (100mW). Este emite 30dBm (1000mW) — 10x a potência, 3x o alcance.

Indo Além

  • Adicione mais nós de sensor: Cada nó envia dados num cronograma diferente para evitar colisões
  • Encaminhe para a nuvem: Conecte o ESP32 receptor ao WiFi e repasse os dados LoRa para o MQTT
  • Energia solar: Adicione uma pequena placa solar ao 18650 battery shield para implantação permanente
  • Monte uma malha: Vários nós receptores podem retransmitir dados por distâncias ainda maiores

Leave a Reply

Your email address will not be published. Required fields are marked *