top of page

Parte 3: Como utilizar o Devkit ESP32-C3 LoRaWAN da JVTech com a plataforma IOTA e a conectividade ATC LoRaWAN - Integração com sensor I2C BMP180, envio de dados em JSON e construção de dashboards

Atualizado: 13 de jun.

1. INTRODUÇÃO


Neste tutorial será apresentado como integrar o sensor BMP180 I2C com o Devkit Esp32-C3, formatar os dados em JSON e enviar via conectividade ATC LoRaWAN para a plataforma IOTA, onde serão apresentados em forma de dashboards.



Conhecendo o Sensor BMP180


O BMP180 é um sensor digital conhecido por sua precisão na medição de pressão atmosférica e temperatura, tornando-o ideal para uma variedade de aplicações em meteorologia, altimetria e outras áreas que requerem dados ambientais exatos.


O BMP180, fabricado pela Bosch Sensortec, é amplamente utilizado em projetos de Internet das Coisas (IoT) devido à sua compatibilidade e facilidade de integração com microcontroladores e plataformas de desenvolvimento, como o ESP32C3.


Principais Características do BMP180:

  • Faixa de Medição de Pressão: 30.000 a 110.000 Pa (Pascal), o que cobre desde altitudes abaixo do nível do mar até mais de 9.000 metros de altura.

  • Precisão de Pressão: Proporciona uma precisão absoluta de ±2,5 hPa e um ruído de até 0,03 hPa.

  • Faixa de Temperatura: Mede temperaturas de -45°C a 85°C com uma precisão de ±2°C.

  • Interface de Comunicação: Utiliza o protocolo I2C, que assegura uma transmissão de dados rápida e eficiente com apenas duas linhas de comunicação (SDA e SCL).

  • Baixo Consumo de Energia: Consome apenas 5 µA em uma amostra por segundo no modo padrão, ideal para aplicações com restrições energéticas.

  • Calibração: Totalmente calibrado de fábrica, simplificando a implementação e garantindo medições precisas.


Aplicações do BMP180:


  1. Previsão do Tempo: A pressão atmosférica é um indicador crucial das condições climáticas. Mudanças na pressão podem sinalizar tempestades ou tempo claro, sendo fundamental para previsão meteorológica.

  2. Altimetria: A relação mensurável entre pressão atmosférica e altitude permite o uso do BMP180 em dispositivos de navegação, drones e sistemas de monitoramento de altitude.


Importância do Sensor em Projetos IoT:


Integrar um sensor como o BMP180 em um projeto IoT permite monitorar e reagir a mudanças ambientais de forma automatizada e remota. Por exemplo, em sistemas de agricultura inteligente, ele pode fornecer dados essenciais para ajustar irrigação ou proteção contra intempéries. Em aplicações de saúde e segurança, pode monitorar condições ambientais em tempo real e emitir alertas em situações críticas.


Preparação para a Integração


Agora que compreendemos as capacidades e a importância do BMP180, vamos integrá-lo ao DevKit ESP32C3 LoRaWAN da JVTech. Vamos configurar o hardware, ajustar o software, formatar os dados em JSON utilizando a biblioteca <ArduinoJson.h> e enviar para a plataforma IOTA para visualizar os dados em dashboards.


A seguir, estão listados os itens necessários para seguir os passos desse tutorial:

  • DevKit ESP32C3 LoRaWAN

  • Sensor BMP180

  • Protoboard

  • Jumpers (cabos de conexão)

  • Cabo USB

  • Arduíno IDE instalado

  • Credenciais da plataforma IOTA


Placa Devkit ESP32-C3 LoRaWAN. Fonte: Loja JVTech


Sensor BMP180





2. Montagem do Protoboard


2.1 Conexões do Sensor BMP180


O sensor BMP180 se comunica via I2C, utilizando dois pinos principais:

  • SCL (Clock Serial): Conecta ao pino SCL (04) do DevKit.

  • SDA (Dados Seriais): Conecta ao pino SDA (05) do DevKit.

  • Vin (Alimentação): Conecta ao pino 3.3V do DevKit (não utilizar 5V).

  • GND (Terra): Conecta ao pino GND do DevKit.


Sensor BMP180


2.2 Diagrama de Montagem do protoboard



3. Configuração do Software


3.1 Instalação das bibliotecas


Além das bibliotecas instaladas nas partes anteriores, precisamos instalar as bibliotecas <Adafruit_BMP085.h> e <ArduinoJson.h>. Para isso, siga os passos abaixo:

  1. Abra a Arduino IDE.

  2. Vá em Sketch -> Include Library -> Manage Libraries (imagem abaixo).

  3. Pesquise por Adafruit BMP085 Unified e clique em Install.

  4. Pesquise por ArduinoJson e clique em Install.



3.2 Código do Projeto


Agora, crie um novo sketch na Arduino IDE e nomeie-o como: DevKit_ESP32C3_LoRaWAN_ATC_ABP_BMP180 (assim como o nome da pasta no link do Github a seguir).

Copie o código do projeto a partir do GitHub Link para o Repositório e cole no seu novo sketch.

Após colar o código, carregue o código no Devkit ESP32C3.



Você pode conferir se houve o envio de dados para a plataforma acessando o 'Monitor Serial' (imagem abaixo) ou acessando a aba 'Live Data' nos detalhes do dispositivo cadastrado (nesse caso, o Devkit ESP32C3) na plataforma IOTA.



4. Diferença entre os Códigos das Partes 2 e 3 do tutorial


Código da Parte 2 ("LoRaWAN Simples"):


O código presente na Parte 2 do tutorial (link) tem como foco a conexão e o envio de uma mensagem simples ("Hello World") via LoRaWAN. Ele não utiliza sensores externos, sendo relativamente básico e fácil de entender. A simplicidade do código o torna ideal para demonstrar a funcionalidade essencial de uma conexão LoRaWAN e o envio de dados sem a complexidade adicional de integração com sensores.


Código da Parte 3 (Com Sensor BMP180):


O código desse tutorial integra o sensor BMP180 para medir temperatura, pressão e altitude. Ele utiliza a biblioteca ArduinoJson para criar e enviar os dados em formato JSON. Esse código é mais complexo, pois inclui a leitura do sensor e a manipulação dos dados antes de enviá-los pela rede LoRaWAN, adicionando uma camada extra de funcionalidade ao processo.





5. Configuração da Plataforma IOTA para Visualização dos dados


5.1 Configurando o Dashboard


Agora, vamos criar um dashboard para visualizar seus dados em gráficos. Primeiro, acesse a Plataforma IOTA através do link e faça login com suas credenciais.

Em seguida, vá para a opção "Dashboard" no menu lateral e clique no botão '+' (Create Dashboard) para criar um novo dashboard.

Para visualizar os dados de temperatura, pressão e altitude, você precisará adicionar widgets ao seu dashboard. Clique em '+' (Create Widget) e configure cada widget conforme o necessário para exibir os dados do DevKit ESP32C3 em tempo real. Lembre-se, você pode adicionar quantos widgets quiser!

Por fim, não se esqueça de clicar em "Save Dashboard" para salvar o seu dashboard e qualquer alteração que fizer.


Nas imagens abaixo, há exemplos de configurações de Widgets que utilizamos nesse tutorial para montar um dashboard de exemplo. Selecionamos diferentes tipos de gráficos para visualizar os dados das últimas 24 horas. Utilizamos as variáveis: params.payload_json.p (para pressão), params.payload_json.t (para temperatura) e params.payload_json.a (para altitude).




5.2 Criação do dashboard utilizando um Template


Após criar seu dashboard, você pode adicionar Widgets e configurá-los a partir de um Template. Para isso, você pode selecionar a opção 'dashboard' no menu lateral da plataforma IOTA e, após abrir a página com seus dashboards criados, selecione o dashboard que você deseja adicionar o template clicando na opção 'Template' em azul (conforme a imagem abaixo).



Após clicar em 'Template', será aberta a janela "Update Dashboard'. No quadro 'Template', iremos colar o código presente no link (antes de colar esse código, lembre-se de apagar o código que estiver no quadro 'Template').

Após colar o código no quadro 'Template', aperte as teclas 'Ctrl' + 'F' e procure no código a variável 'deveui'. Essa variável aparece no código de acordo com a quantidade de Widgets que foram utilizados na dashboard. Você precisa substituir os caracteres dessa variável pelos caracteres do seu dispositivo (o Device EUI do seu Devkit ESP32C3 que pode ser acessado nos detalhes do seu Device cadastrado na plataforma IOTA).

Depois de colocar os caracteres adequados na variável 'deveui', clique no botão 'Update' e espere aparecer a mensagem de confirmação da alteração (como na imagem abaixo).



Após realizar os passos acima, será criada o dashboard com os seguintes Widgets (ilustrados na imagem abaixo): temperatura e pressão de duas formas diferentes; qualidade do sinal LoRa em RSSI (potência do sinal recebido, expressa em decibéis-miliwatts (dBm)) e SNR (a relação entre o sinal útil e o ruído de fundo, expressa em decibéis (dB)); a localização da antena e a altitude.



Ao clicar no botão 'Custom Range' presente no dashboard, é possível definir qual intervalo de tempo você quer visualizar os dados nos Widgets adicionados.





6. Conclusão


Parabéns! Ao finalizar esta parte do tutorial, você deu um grande passo no desenvolvimento do seu projeto de IoT integrando com sucesso o sensor BMP180 ao DevKit ESP32C3. Completamos várias etapas importantes:


  1. Montagem do Hardware:

  • Conectamos o sensor BMP180 ao DevKit ESP32C3 corretamente, garantindo a comunicação via I2C.

  1. Configuração do Software: Instalamos as bibliotecas necessárias, incluindo <Adafruit_BMP085.h> e <ArduinoJson.h> e utilizamos um código específico para ler os dados de temperatura e pressão do sensor BMP180 e formatá-los em JSON.

  2. Envio de Dados para a Plataforma IoT: Configuramos a plataforma para receber dados do DevKit ESP32C3 e enviamos os dados de forma estruturada, permitindo uma visualização clara e precisa através dos dashboards.

  3. Criação do Dashboard: Aprendemos a criar um dashboard na plataforma IOTA, adicionamos e configuramos widgets que apresentam os dados de temperatura, pressão e altitude em tempo real.


Este tutorial não apenas demonstrou a integração de hardware e software, mas também mostrou a importância e o poder da visualização de dados em projetos de IoT. Agora, você pode monitorar as condições ambientais com precisão e em tempo real. Continue explorando para personalizar e expandir suas capacidades de IoT!


128 visualizações0 comentário

コメント


bottom of page