13 Milhas 20km sem WiFi? Como o LoRa enviou tensão por distâncias incríveis! (Heltec WiFi LoRa 32 V3)

Esta lição faz parte de: Introdução ao WiFi LoRa

13 Milhas 20km sem WiFi? Como o LoRa enviou tensão por distâncias incríveis! (Heltec WiFi LoRa 32 V3)

Construa um Monitor de Voltagem Off-Grid de 13 Milhas com LoRa e ESP32

Você já precisou monitorar uma fonte de energia remota, como um painel solar em uma cabana, um banco de baterias em um barco ou equipamentos em uma grande fazenda, a quilômetros de distância? Este guia do projeto irá lhe ensinar a construir um monitor de voltagem de longo alcance e fora da rede que pode transmitir dados a uma distância incrível.13 milhas (ou 21 quilômetros), sem taxas de assinatura ou dependência de Wi-Fi ou redes celulares.

Usaremos doisHeltec WiFi LoRa 32módulos, cada um alojado em um resistenteCase Meshnology N32com uma bateria de 3000mAh, para criar um transmissor e um receptor. O transmissor medirá uma tensão alvo (de alguns volts até 100V ou mais) usando um simples circuito divisor de tensão e enviará a leitura sem fio usando LoRa. O receptor irá então exibir essa tensão em tempo real, permitindo que você monitore seus sistemas a quilômetros de distância.


Como Funciona: O Divisor de Tensão

O cerne deste projeto é a capacidade de medir uma ampla gama de tensões. Como os pinos de entrada do ESP32 só podem medir com segurança tensões de até 3,3V, não podemos conectar uma fonte de 12V ou 100V diretamente. Para resolver isso, usamos um circuito simples chamado dedivisor de tensão, que reduz a voltagem para um nível seguro para o microcontrolador ler. Isso é explicado no vídeo em12:26.

O circuito utiliza dois resistores (R1 e R2) conectados em série. A fonte de alta tensão (Vem) é aplicado em ambos os resistores, e o ESP32 lê a tensão proporcional mais baixa (Vfora) através apenas do resistor R2. Com os valores de resistor corretos, você pode medir com precisão tensões muito altas.

Diagrama de circuito de um divisor de tensão com resistores R1 e R2.

Ao escolher seus resistores, uma boa regra geral é selecionar valores que mantenham a tensão de saída bem abaixo do limite de 3,3V, mesmo ao medir a tensão máxima que você espera. Para a melhor precisão, você deve medir a resistência real de seus resistores com um multímetro e usar esses valores precisos no código.

Fórmulas para calcular a tensão de saída e as tensões de entrada do divisor de tensão.

Montagem e Fiação de Hardware

A montagem envolve colocar o módulo Heltec LoRa 32 e a bateria de 3000mAh dentro do case N32. O case possui recortes para a tela e os botões, e um furo para a montagem da antena externa. Uma das notas de segurança mais importantes é quesempre conecte a antena antes de ligar o dispositivo, pois transmitir sem uma antena pode danificar o módulo LoRa.

Diagrama de fiação principal mostrando o divisor de tensão conectado ao ESP32 e à bateria.
Foto da fiação do projeto real com resistores e fios conectados.
Foto da tela OLED do transmissor exibindo uma medição de 30V.

Configuração do IDE e da Biblioteca Arduino

https://resource.heltec.cn/download/package_heltec_esp32_index.json

Para programar os módulos Heltec, você deve primeiro configurar o seu Arduino IDE. Esta configuração única é crucial e está detalhada em20:41no vídeo.

  1. Instalar Placas ESP32:Adicione a URL oficial das placas Espressif ESP32 em Arquivo > Preferências e instale o pacote "esp32" no Gerenciador de Placas.
  2. Instalar Suporte Heltec:Adicione a URL JSON específica da Heltec às suas preferências. Em seguida, no Gerenciador de Placas, procure e instale o pacote "Heltec ESP32".
  3. Instalar Bibliotecas Necessárias:Usando o Gerenciador de Bibliotecas (Sketch > Incluir Biblioteca > Gerenciar Bibliotecas), instale o seguinte:
    • Heltec ESP32 dev boards
    • Adafruit GFX Library(e suas dependências)
  4. Instale a Biblioteca Robojax:Você precisará baixar o personalizadoRobojax_HeltecLoRa32biblioteca, que é fornecida como um arquivo .zip. Instale-a no IDE através de Esboço > Incluir Biblioteca > Adicionar Biblioteca .ZIP.
  5. Selecione a Placa:Finalmente, vá em Ferramentas > Placa e selecione oHeltec WiFi LoRa 32 (V3)e a porta COM correta.

Configuração do Código Explicada

O projeto utiliza dois esboços separados: um para oTransmissor (TX)e um para oReceptor (RX). Você só precisa configurar algumas configurações principais no código do transmissor para que funcione, conforme explicado em25:02O código do receptor exige configurações LoRa compatíveis.


#define VOLTAGE_READING_PIN 4  // The pin reading the voltage
const int R1 = 39120; // Your measured value for R1 in ohms
const int R2 = 3312; // Your measured value for R2 in ohms

const float CALIB_FACTOR = 1.007f; // Calibration factor to match a multimeter

const char *displayTexttitle = "Voltage:"; // Text for the OLED
const char *displayTexTX = "(TX)";

// This security key MUST be IDENTICAL on the TX and RX devices
const char *userKey = "YOUR_SECRE8888";

// These LoRa settings MUST be IDENTICAL on the TX and RX devices
#define RF_FREQUENCY      915000000 // LoRa Frequency in Hz
#define TX_OUTPUT_POWER   2         // TX Power in dBm (2-21)
  • VOLTAGE_READING_PINO pino GPIO no ESP32 ao qual você conectou a saída do seu divisor de tensão.
  • R1eR2Digite ovalores de resistência exatosdos seus dois resistores conforme medido por um multímetro. Isso é crucial para a precisão.
  • CALIB_FACTORSe a tensão exibida estiver ligeiramente diferente de um multímetro confiável, você pode ajustar esse valor para cima ou para baixo (por exemplo, 1.008 ou 0.995) para ajustar a leitura. Defina para1.0desativar.
  • userKeyEste é o seu chave de segurança privada. Somente dispositivos com a mesma chave exata podem se comunicar.
  • RF_FREQUENCYA frequência de operação para LoRa. Esta deve ser a mesma em ambos os dispositivos e ser legal para a sua região (por exemplo, 915MHz para a América do Norte).
  • TX_OUTPUT_POWERA potência de transmissão varia de 2 (baixa potência, curto alcance) a 21 (alta potência, longo alcance). Potência mais alta consome mais bateria. Para o teste de 13 milhas, foi utilizado o valor 20. Para testes na sua mesa, 2 é suficiente.

O código do Receptor tem configurações semelhantes parauserKeyeRF_FREQUENCYque deve corresponder às configurações do Transmissor.


Projeto Ao Vivo em Ação

Assim que o código for carregado, a unidade transmissora começará a medir a tensão da sua fonte conectada, exibindo-a em sua própria tela OLED com um indicador "(TX)" e transmitindo os dados via LoRa. A unidade receptora, quando programada com a chave de segurança e frequência correspondentes, ficará atenta ao sinal. Assim que receber uma transmissão válida, exibirá a tensão idêntica em sua tela com um indicador "(RX)".

Conforme demonstrado no teste de longa distância em31:39, essa configuração é incrivelmente eficaz. Com antenas de alto ganho e uma linha de visão clara, o sistema conseguiu transmitir e receber leituras de tensão precisas a 21 quilômetros de distância, provando que é uma solução robusta e confiável para tarefas sérias de monitoramento remoto.


Capítulos do Vídeo

  • 00:00- Iniciar
  • 03:33- Introdução à placa e LoRa
  • 05:47- Case N32 para WiFi LoRa 32
  • 12:26- Divisor de tensão para medir até 150V
  • 19:47- Preparando fio para medir tensão
  • 20:41- Instalando biblioteca para WiFi LoRa 32
  • 25:02- Código de Transmissão explicado
  • 27:16- Código do Recebedor explicado
  • 28:36- Demonstração da leitura de tensão
  • 31:39- Teste de distância real (21 quilômetros)
Nenhum código anexado.

Common Course Files

Arquivos📁

Outros arquivos