Conhecendo a Placa WiFi LoRa ESP32 (433MHz / 868MHz / 915MHz)

Conhecendo a Placa WiFi LoRa ESP32 (433MHz / 868MHz / 915MHz)

O avanço rápido da IoT (Internet of Things ou Internet da Coisas) é algo inevitável e de extrema importância para que se tenha o máximo de dispositivos conectados a rede. Com este avanço, torna-se necessário o uso de tecnologias que tenham como características baixo custo, baixo consumo de energia e que alcance longas distâncias de comunicação. Uma das tecnologias empregadas em projetos IoT que satisfaz as três condições mencionadas anteriormente é o LoRa. O LoRa aliado ao ESP32 possibilitou a criação de uma plataforma bem interessante para desenvolvimento de projetos eletrônicos voltados para Internet das Coisas. Nesta postagem você vai conhecer os detalhes desta plataforma, como fazer sua instalação no Windows e como programa-la a partir do IDE do Arduino.

img00_conhecendo_a_placa_wifi_lora_esp32_433mhz_868mhz_915mhz_iot_lorawan_arduino_antena_gateway_heltec_km_sensor_modulo_wifi_bluetooth

LoRa

O LoRa (Long Range) é uma tecnologia de comunicação sem fio aplicada em redes LPWAM (Low Power Wide Area Network). O LoRa se assemelha ao WiFi e ao Bluetooth, porém permite comunicações em longas distâncias e com um baixo consumo de energia. Ao utilizar o LoRa, em áreas urbanas é possível atingir uma comunicação sem fio de até 4Km. Considerando áreas rurais, é possível obter comunicação sem fio de até 15Km. Tudo isso utilizando uma potência baixa de 20dBM ou 100mW. É importante ressaltar que LoRa é o nome comercial da tecnologia e que foi criado pela LoRa Alliance.

A LoRa Alliance é uma associação sem fins lucrativos formada por mais de 500 empresas que tem como objetivo difundir o uso da tecnologia com implantação da IoT em grande escala e longas distâncias através do desenvolvimento e evolução do padrão LoRaWAN.

Em 2018 a ABINC (Associação Brasileira de Internet das Coisas) passou a fazer parte da LoRa Alliance.

LoRaWAN é o protocolo de comunicação biderecional que estabelece a arquitetura do sistema e os respectivos parâmetros de comunicação para utilização do LoRa, inclusive a parte de segurança de ponta a ponta e qualidade do serviço. Este protocolo foi desenvolvido pela empresa Semtech e seus respectivos proprietários são a IBM Research e Actility.Toda a arquitetura da rede LoRa é implementada através do LoRaWAN, logo, é bom deixar frisado que nesta arquitetura o LoRa se trata da camada física e o LoRaWAN é a camada lógica.

Na imagem abaixo você pode ver a arquitetura da rede:

img01_conhecendo_a_placa_wifi_lora_esp32_433mhz_868mhz_915mhz_iot_lorawan_arduino_antena_gateway_heltec_km_sensor_modulo_wifi_bluetooth

End-points ou end-devices: são os dispositivos da rede que podem coletar informações ou executar ações, tais como, sensor de temperatura e umidade, sensor de presença, módulo relé, medidores de consumo de energia, de pressão, de água e outros. Nesta etapa da estrutura a comunicação com os gateways se dá através de radiofrequência.

Gateways: etapa da arquitetura que faz a conexão entre os end-points ou end-devices com os servidores de rede. A comunicação entre os gateways e os servidores de rede ocorre através do protocolo TCP/IP.

Servidor de rede: todas as informações vindas dos gateways são tratadas por esta etapa da arquitetura. As informações são autenticadas e através do protocolo TCP/IP são direcionadas ao servidor de aplicações.

Servidor de aplicações: todas as informações vindas do servidor de rede são descriptografadas, tratadas e armazenadas nesta etapa, onde de acordo com a informação recebida é possível definir uma ação a ser executada. Nesta etapa é possível utilizar os dados obtidos e disponibiliza-los em páginas web ou em um app para dispositivos móveis, por exemplo.

ESP32

O ESP32 é um dispositivo IoT (Internet das Coisas) que consiste de um microprocessador dual core Tensilica Xtensa 32-bit LX6 com suporte embutido à rede WiFi, Bluetooth v4.2 e memória flash integrada. Essa arquitetura permite que ele possa ser programado de forma independente, sem a necessidade de outras placas microcontroladoras como o Arduino, por exemplo. Dentre as principais características deste dispositivo, podemos citar: baixo consumo de energia, alto desempenho de potência, amplificador de baixo ruído, robustez, versatilidade e confiabilidade. Além disso, o ESP-32 pode ser utilizado em ambiente industrial.

Placa WiFi LoRa ESP32

A união entre o LoRa e o ESP32 resultou na Placa WiFi LoRa ESP32. Esta é uma plataforma completa de hardware e software voltada para prototipagem IoT, pois conta com WiFi, Bluetooth e o LoRa.

A Placa WiFi LoRa ESP32 possui um Display OLED de 0,96” 128X64 que permite exibir em tempo real diversas informações, logo, toda depuração de informações podem ser verificadas sem o uso de uma ferramenta externa. Ao lado do display há um conector padrão U.FL 2mm para conexão da antena. Na parte debaixo da placa há um conector JST para conexão de uma bateria Li-Ion ou Li-Po de 3.7V / 1000mAh para alimentação do módulo.

A frequência de operação do LoRa na Placa WiFi LoRa ESP32 pode ser de 433MHz, 868MHz ou 915MHz. No mercado há placas que operam somente em 433MHz, placas que operam somente em 868MHz ou 915MHz, e placas que funcionam tanto em 868MHz quanto em 915MHz. Para esta postagem utilizei uma placa fabricada pela Heltec e que opera tanto em 868MHz quanto em 915MHz.

Um dos diferenciais na utilização da Placa WiFi LoRa ESP32 é a possibilidade de conectar módulos e sensores na placa para obtenção de dados ou execução de ações, e tudo poderá ser obtido ou acionado através da comunicação LoRa. Além disso, há como fazer a interface para que as informações obtidas através do LoRa, possam ser acessadas via bluetooth ou via WiFi e posteriormente serem disponibilizadas na internet, seja através do protocolo TCP/IP, MQTT ou IFTTT, por exemplo.

Considere o seguinte exemplo: você mora na cidade e o seu sítio fica há uns 6Km de distância e lá não possui internet. Você está cultivando uma plantação e precisa verificar diariamente, pelo menos duas vezes ao dia, qual a umidade do solo. Ao utilizar um sensor de umidade do solo junto a Placa WiFi LoRa ESP32, onde o circuito é todo alimentado por uma bateria que é recarregada por um painel solar fotovoltaico, você poderá através do LoRa enviar as informações para uma segunda Placa WiFi LoRa ESP32 que vai estar na sua residência e mostrar os dados no display OLED da mesma ou utilizar o WiFi do ESP32 e enviar as informações para um banco de dados, página web ou app no seu smartphone ou tablet.

Abaixo temos as principais características e especificações da Placa WiFi LoRa ESP32:

– Controlador: ESP-WROOM-32 (Datasheet ESP-WROOM-32)
– SoC (System on Chip): ESP32-D0WDQ6 (Datasheet ESP-32)
– Tensão de alimentação (micro USB): 5VDC
– Microprocessador: Tensilica Xtensa 32-bit LX6
– Cores: 2
– Clock: até 240MHz
– Desempenho: até 600 DMIPS
– ROM: 448KB
– SRAM: 520KB
– RTC Slow SRAM: 8KB
– RTC Fast SRAM: 8KB
– Flash: 32Mb (4 megabytes)
– Tensão de operação: 2,2V – 3,6VDC
– Nível lógico: 3.3V (não tolerante a 5V)
– Corrente de operação (típica): 80mA
– Interfaces: GPIO / Sensores capacitivos / ADC / DAC LNA pré amplificado / CAN
– GPIO: 36
– ADC: até 18 canais
– Resolução ADC: 12 bits
– DAC: 2
– Resolução DAC: 8 bits
– GPIO: função PWM, I2C e SPI
– Suporte a redes WiFi: 802.11 b/g/n
– Faixa de frequência do WiFi: 2,4 a 2,5GHz
– Segurança: WPA/WPA2/WPA2-Enterprise/WPS
– Criptografia: AES/RSA/ECC/SHA
– Modo de operação: Station / SoftAP / SoftAP + Station/ P2P
– Bluetooth: v4.2 BR / EDR e BLE (Bluetooth Low Energy)
– Controlador do display: SSD1306
– Interface de comunicação do display: I2C
– Controlador LoRa: SX1276 (Datasheet SX1276)
– Corrente de operação (LoRa): 120mA no envio (TX) / 11mA no recebimento (RX)
– Frequência de operação: 868 MHz / 915 MHz
– Sensibilidade (máxima): -139dBM
– Potência (máxima): 20dBM / 100mW
– Modulação: LoRa / FSK / GFSK / OOK
– Taxa de transferência (LoRa): 0,018 a 37,5 Kbps
– Interface de comunicação: SPI
– Temperatura de operação: -40º a 85º celsius

Para que a Placa WiFi LoRa ESP32 seja reconhecida pelo computador é necessário fazer a instalação do driver. A partir do link abaixo você pode fazer o download do driver CP2102:

Driver CP2102 para Windows

Após o download faça a instalação. Terminada a instalação, a placa estará pronta para ser programada.

Assim como o ESP32 convencional, a Placa WiFi LoRa ESP32 também pode ser programada através do IDE do Arduino, o que facilita e muito o carregamento de códigos.

Para fazer a instalação do IDE do Arduino basta acessar a postagem Arduino – Instalação e Configuração da IDE no Windows e em seguida retornar para continuar.

Se você já possui o IDE do Arduino instalado em seu computador e em algum momento fez a instalação do pacote de placas do ESP32, vai ser necessário fazer a remoção do pacote antes de prosseguir. Para isto, feche o IDE do Arduino caso esteja aberto, abra o “Explorador de Arquivos” do Windows, clique no menu “Arquivo” e “Alterar opções de pasta e pesquisa”:

img02_conhecendo_a_placa_wifi_lora_esp32_433mhz_868mhz_915mhz_iot_lorawan_arduino_antena_gateway_heltec_km_sensor_modulo_wifi_bluetooth

Selecione a aba “Modo de Exibição”, role a lista, marque a opção “Mostrar arquivos, pastas e unidades ocultas”, “Aplicar” e em seguida clique para fechar a janela:

img03_conhecendo_a_placa_wifi_lora_esp32_433mhz_868mhz_915mhz_iot_lorawan_arduino_antena_gateway_heltec_km_sensor_modulo_wifi_bluetooth

Acesse o caminho “C:\Users\SEU NOME OU MEUS DOCUMENTOS\AppData\Local” e veja que dentre as pastas há uma nomeada como “Arduino15”. Selecione a pasta “Arduino15” e em seguida delete a mesma:

img04_conhecendo_a_placa_wifi_lora_esp32_433mhz_868mhz_915mhz_iot_lorawan_arduino_antena_gateway_heltec_km_sensor_modulo_wifi_bluetooth

OBS: caso o Windows não aceite deletar a pasta, verifique se o IDE do Arduino está aberto. Caso esteja, feche o mesmo e tente novamente deletar.

Em seguida você pode refazer todo o procedimento no Explorador de Arquivos e marcar novamente a opção “Não mostrar arquivos, pastas ou unidades ocultas”.

Abra o IDE do Arduino, clique em “Arquivo” e “Preferências”:

img05_conhecendo_a_placa_wifi_lora_esp32_433mhz_868mhz_915mhz_iot_lorawan_arduino_antena_gateway_heltec_km_sensor_modulo_wifi_bluetooth

Em “URLs Adicionais para Gerenciadores de Placas” clique na opção em frente ao campo de texto, insira o URL https://dl.espressif.com/dl/package_esp32_index.json , clique em OK para fechar a janela e em seguida clique em OK novamente para salvar:

img06_conhecendo_a_placa_wifi_lora_esp32_433mhz_868mhz_915mhz_iot_lorawan_arduino_antena_gateway_heltec_km_sensor_modulo_wifi_bluetooth

Vá até o menu “Ferramentas”, “Placas” e clique em “Gerenciador de Placas…”:

img07_conhecendo_a_placa_wifi_lora_esp32_433mhz_868mhz_915mhz_iot_lorawan_arduino_antena_gateway_heltec_km_sensor_modulo_wifi_bluetooth

Na janela que for aberta, pesquise por ESP32, selecione a última versão disponível para o pacote, clique em “Instalar”, aguarde a instalação ser finalizada e clique em “Fechar”:

Será necessário instalar também um pacote de biblioteca LoRa e o pacote de biblioteca SSD1306 para controle do display OLED. Vá até o menu “Sketch”, “Incluir Biblioteca” e clique em “Gerenciar Bibliotecas”:

img10_conhecendo_a_placa_wifi_lora_esp32_433mhz_868mhz_915mhz_iot_lorawan_arduino_antena_gateway_heltec_km_sensor_modulo_wifi_bluetooth

Na janela que for aberta, pesquise por Heltec ESP32, selecione a última versão disponível para o pacote, clique em “Instalar” e aguarde a instalação ser finalizada:

Pesquise por ESP8266 and ESP32 Oled Driver for SSD1306 display, clique em “Instalar”, aguarde a instalação ser finalizada e clique em “Fechar”:

Após execução dos passos anteriores a Placa WiFi LoRa ESP32 vai estar pronta para ser conectada ao computador e ser programada.

OBS: qualquer versão de módulo LoRa jamais deverá ser energizado sem que haja uma antena conectada, pois há risco de queimar a placa. Portanto, sempre que for conectar a placa ao computador, verifique se a antena está conectada ao módulo.

Para mostrar a comunicação LoRa em funcionamento entre dois pontos, utilizei duas unidades da Placa WiFi LoRa ESP32. Você pode utilizar duas unidades do Cabo Micro USB para programar e energizar as placas pelo computador ou pode utilizar somente um cabo para programar ambas as placas e energizar uma delas, e para a outra placa pode utilizar uma Fonte 5V Micro USB.

Em uma das placas será carregado o código “sender”, ou seja, este código será responsável por enviar pacotes. Na outra placa será carregado o código “receiver”, ou seja, este código será responsável por tratar os pacotes recebidos da placa com o código “sender”. No display OLED de cada uma das placas será exibido em tempo real o envio e recebimento de pacotes. Antes de prosseguir veja uma forma de identificar uma das placas como transmissora (sender) e a outra como receptora (receiver).

Conecte a Placa WiFi LoRa ESP32 transmissora ao computador através do cabo USB e em seguida no IDE do Arduino vá até o menu “Ferramentas”, “Placas”, role a lista e selecione a opção “Heltec WiFi LoRa 32(V2)”:

img15_conhecendo_a_placa_wifi_lora_esp32_433mhz_868mhz_915mhz_iot_lorawan_arduino_antena_gateway_heltec_km_sensor_modulo_wifi_bluetooth

OBS: se estiver utilizando outros modelos de placa LoRa com display OLED, basta verificar na placa a sua respectiva identificação e verificar na lista de placas do IDE a opção correspondente e selecionar. Depois de selecionar a placa LoRa na lista, uma série de opções poderão ser habilitadas no menu “Ferramentas”. Mantenha as opções como estão e prossiga.

Ainda no menu “Ferramentas”, clique em “Porta” e selecione a porta COM em que sua placa foi alocada. Caso não saiba em qual porta COM sua placa foi alocada, basta retornar no menu Iniciar do Windows, acessar a opção Dispositivos e Impressoras e verificar a porta em que sua placa está conectada, retornar no IDE e selecionar a porta COM. É importante ressaltar que a porta COM1 é nativa do Windows e não corresponde ao módulo LoRa.

Acesse o menu “Arquivo”, “Exemplos”, “Heltec ESP32 Dev-Boards”, “LoRa” e selecione o código “OLED_LoRa_Sender”:

img16_conhecendo_a_placa_wifi_lora_esp32_433mhz_868mhz_915mhz_iot_lorawan_arduino_antena_gateway_heltec_km_sensor_modulo_wifi_bluetooth

Conforme mencionei anteriormente, a frequência de operação do LoRa na Placa WiFi LoRa ESP32 pode ser de 433MHz, 868MHz ou 915MHz. No código você deverá informar qual a frequência de operação da placa LoRa que estiver utilizando. Para isto, considere que para a frequência de 433MHz você deverá informar 433E6, para 868MHz deverá informar 868E6 e para 915MHz deverá informar 915E6. Como estou utilizando um módulo que opera tanto em 868MHz quanto em 915MHz, posso informar qualquer uma das opções entre 868E6 e 915E6. Para esta postagem vou utilizar a opção de 915MHz, ou seja, 915E6:

img17_conhecendo_a_placa_wifi_lora_esp32_433mhz_868mhz_915mhz_iot_lorawan_arduino_antena_gateway_heltec_km_sensor_modulo_wifi_bluetooth

Clique no botão para enviar o código a placa e aguarde o carregamento. Caso acuse algum erro no carregamento, verifique se você selecionou a placa correta no menu “Ferramentas”. Leve em consideração que estes códigos de exemplos da biblioteca só irão funcionar com a placa LoRa que possui display OLED.

Terminado o carregamento do código na placa LoRa “sender”, desconecte a mesma do computador e conecte a Placa WiFi LoRa ESP32 receptora ao computador através do cabo USB, selecione a porta COM em que a mesma foi alocada e em seguida acesse o menu “Arquivo”, “Exemplos”, “Heltec ESP32 Dev-Boards”, “LoRa” e selecione o código ” OLED_LoRa_Receiver”:

img18_conhecendo_a_placa_wifi_lora_esp32_433mhz_868mhz_915mhz_iot_lorawan_arduino_antena_gateway_heltec_km_sensor_modulo_wifi_bluetooth

Informe novamente a frequência de operação da placa LoRa:

img19_conhecendo_a_placa_wifi_lora_esp32_433mhz_868mhz_915mhz_iot_lorawan_arduino_antena_gateway_heltec_km_sensor_modulo_wifi_bluetooth

Clique no botão para enviar o código a placa e aguarde o carregamento.

Agora você deve energizar ambas as placas. A placa LoRa transmissora irá exibir no display OLED a escrita “Sending packet” e na frente do texto irá mostrar a quantidade de pacotes enviados. Já na placa LoRa receptora será exibido o RSSI, que é um indicador de intensidade do sinal recebido e que é dado em dBm, será exibido o tamanho do pacote que foi recebido e após a palavra “hello” é mostrado a quantidade de pacotes recebidos:

Vale ressaltar que quanto mais próximo de zero for o valor do RSSI, melhor será a qualidade e intensidade do sinal RF recebido. Um RSSI maior ou igual a -30 dBm é considerado um sinal de ótima intensidade. Geralmente na comunicação utilizando LoRa, o sinal pode ser recebido quando o RSSI é menor ou igual a -132 dBm. Logo, tenha em mente que quanto maior for a distância entre o transmissor e o receptor LoRa, mais longe de 0 dBm será o valor do RSSI.

No vídeo abaixo você pode ver a comunicação entre a placa LoRa transmissora e a placa LoRa receptora utilizando os códigos mencionados anteriormente:

Para fins de teste, resolvi sair pela cidade passando por diversos locais e ao mesmo tempo monitorando a comunicação entre as duas placas LoRa. Com o intuito de conseguir uma boa emissão e recepção de sinal, removi as antenas que acompanham as placas e utilizei em cada um dos módulos a Antena Móvel para WiFi LoRa 850MHz a 915MHz 6dbi.

Deixei a Placa WiFi LoRa ESP32 transmissora fixada em uma das janelas da minha residência (primeiro andar do prédio) que fica em uma parte alta da cidade:

img23_conhecendo_a_placa_wifi_lora_esp32_433mhz_868mhz_915mhz_iot_lorawan_arduino_antena_gateway_heltec_km_sensor_modulo_wifi_bluetooth

No carro deixei a Placa WiFi LoRa ESP32 receptora instalada na parte interna do veículo e sendo alimentada através de um adaptador conversor 5V. Fixei a antena na parte externa do teto do carro, pois a mesma possui uma base magnética para esta finalidade:

Em seguida passei por diversas partes da cidade, sendo lugares altos com boa visada para a janela em que o transmissor estava instalado e lugares na parte baixa da cidade, onde há vários prédios e grandes volumes de terra que podem dificultar ou impedir a comunicação.

A distância máxima de comunicação que o módulo LoRa receptor conseguiu foi de 3.8Km em terreno mais alto. Em terreno mais baixo e com vários prédios e grande volume de terra, o módulo LoRa receptor manteve a comunicação até 2.6Km de distância do transmissor. Se em um novo teste eu mudar para uma antena de maior ganho e posicionar no topo do prédio esta nova antena, com certeza a distância de comunicação irá aumentar consideravelmente.

Se você pensa em implementar algum projeto de IoT, fazer uma comunicação M2M (máquina para máquina), automação residencial ou qualquer outro projeto eletrônico que necessite de comunicação sem fio em grandes distâncias e que não requer uma alta taxa de transmissão de dados e não precisa de transmissões muito frequentes, certamente a Placa WiFi LoRa ESP32 irá atender perfeitamente o seu projeto.

Caso queira aprofundar no estudos sobre LoRa, recomendo que acesse o site da LoRa Alliance. Para mais detalhes sobre LoRaWAN, acesse o site The Things Network.

Gostou desta postagem? Então deixa seu comentário, dúvida ou sugestão aí embaixo!

Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop
Perfil no Instagram: https://www.instagram.com/masterwalkershop/

Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.

Obrigado e até a próxima!

Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.



Postagem anterior:
Próxima postagem:
Postagem feita por

Formado em Engenharia da Computação, Técnico em Eletroeletrônica, Fundador e Diretor da MasterWalker Electronic Shop. Se preocupa com o aprendizado dos seus clientes e daqueles interessados em aprender sobre Arduino e plataformas embarcadas em geral.

Existem 8 comentários para esta postagem
  1. vandilson oliveira às 08:44

    Olá Euler.

    Fico sempre grato quando encontro na internet pessoas como voce, dispostas a compartilhar o conhecimento, que na verdade é o grande legado da raça humana.
    Tenho uma duvida e gostaria de verificar contigo, eu já tenho um esp32 Lora Heltec, mas gostaria de comprar uma bateria Lipo para ele, duas perguntas:
    1. Posso comprar uma de 3.7V?
    2. Qual é o padrão do soquete da bateria para esta placa da Heltec.

    Grato

    • Euler Oliveira Autor às 10:37

      Olá Vandilson.

      Agradeço pelo comentário e reconhecimento!

      Você pode usar sim bateria de 3.7VDC e o conector é o JST-SH 1.25 de 2 vias.

  2. Rafael Beltrão às 19:11

    Boa noite,

    Gostaria de saber se é possível conectar um placa lora como mestre e algumas outras como escravo?

    • Euler Oliveira Autor às 09:26

      Olá Rafael.

      Agradeço pelo comentário!

      Ainda não vi uma configuração desta forma usando ESP32 LoRa.

  3. Paulo às 21:03

    Ola! Euler! Primeiramente, obrigado, por partilhar seus conhecimentos com todos. ( O brasil precisa muito de pessoas assim )

    Gostaria de pedir sua ajuda, para uma orientacao! ( se for possivel )

    Eu gostaria de montar com o arduino, um dispositivo simples, que faca uma medicao de temperatura em tempo real, com um display para visualizacao do sistema em funcionamento e que eu possa visualiza-lo em meu smartphone, via wifi ou bluetooth(nao sei se daria certo, devido a distancia e a problemas de barreiras).
    Voce poderia me indicar uma configuracao basica de hardware, mas que desse conta do recado!
    Tenho pouco conhecimento no assunto, e penso de fazer isso, para um aprendizado e por necessidade!

    sem mais obrigado!

  4. ALEXANDRE ZIELINSKYJ DA SILVA às 17:51

    Olá Euler!!
    Você já conseguiu usar essa placa na Everynet, em modo LoRaWan?
    Att
    Alexandre

    • Euler Oliveira Autor às 19:29

      Olá Alexandre.

      Agradeço pelo comentário!

      Desconheço esta placa.