Estação Meteorológica com ESP8266 NodeMCU

BlueBox 06: Estação Meteorológica com ESP8266 NodeMCU 6

Olha quem voltou por aqui! Para o projeto da 6ª edição da BlueBox escolhemos uma estação meteorológica que utiliza o módulo ESP8266 NodeMCU, o display LCD TFT 1.8”, o sensor de umidade e temperatura DHT11 e o sensor de pressão e temperatura BMP180.

Estação Meteorológica com ESP8266 NodeMCU

A estação meteorológica utiliza os sensores DHT11 e BMP180 para monitorar as informações locais de temperatura, umidade relativa do ar e pressão atmosférica; também utiliza os serviços do Open Weather Map para obter a previsão do tempo para os próximos 3 dias e o Network Time Protocol para adquirir informações de horário e data atuais.

Ficou empolgado para saber mais detalhes do projeto da sua BlueBox? Então siga o tutorial abaixo. 😉

Materiais Necessários

Para montar a sua estação meteorológica, você vai precisar dos seguintes componentes:

Estação Meteorológica com ESP8266 NodeMCU

Além disso, você vai precisar de algumas ferramentas e acessórios extras:

Obtendo uma chave no Open Weather Map

O Open Weather Map é um serviço que fornece dados meteorológicos do mundo inteiro. A fim de obter a previsão do tempo para os próximos 3 dias, vamos utilizar a API One Call. Para utilizar essa API, você deve criar uma chave que será utilizada no código do seu NodeMCU. Vá até a página do Open Weather Map e crie uma conta.

Na aba superior, clique no nome do seu usuário e depois clique em My API Keys.

Estação Meteorológica com ESP8266 NodeMCU

Em Create Key, insira um nome para sua chave e clique em Generate.

Estação Meteorológica com ESP8266 NodeMCU

Poucos segundos depois sua chave estará criada. Guarde-a, pois ela será utilizada no código.

Estação Meteorológica com ESP8266 NodeMCU

Configurações da IDE do Arduino para o NodeMCU

Entre na IDE do Arduino e clique em Arquivo -> Preferências.

Estação Meteorológica com ESP8266 NodeMCU

Digite ou cole o link abaixo no campo URLs adicionais de Gerenciadores de Placas:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

A sua tela ficará assim:

Estação Meteorológica com ESP8266 NodeMCU

Clique em OK para retornar à tela principal da IDE.

Depois clique em Ferramentas -> Placa -> Gerenciador de Placas.

Estação Meteorológica com ESP8266 NodeMCU

Na barra de busca digite esp8266. Aparecerá então “esp8266 by ESP8266 Community”. Clique em Instalar.

Estação Meteorológica com ESP8266 NodeMCU

Estação Meteorológica com ESP8266 NodeMCU

Após alguns minutos, as placas da linha ESP8266 já estarão disponíveis na lista de placas da IDE do Arduino. Vá em Ferramentas -> Placa e selecione NodeMCU 1.0 (ESP12-E Module).

Estação Meteorológica com ESP8266 NodeMCU

Pronto! Agora você pode conectar o NodeMCU ao seu computador. Não esqueça de selecionar a porta em que o mesmo está conectado. Para isso, vá em Ferramentas -> Porta e selecione a porta que o NodeMCU está inserido.

Código da estação meteorológica

Antes de carregar o código para a placa, é necessário baixar e instalar a pasta com as bibliotecas:

Faça o download da biblioteca, descompacte a pasta e cole o conteúdo da mesma na pasta Libraries da Arduino IDE.

Estação Meteorológica com ESP8266 NodeMCU

Depois, faça o download do código. Existem duas opções: uma com o fundo da tela claro e outra com fundo de tela escuro.

Faça o download do código, descompacte a pasta e cole-a na pasta Arduino da Arduino IDE.

Estação Meteorológica com ESP8266 NodeMCU

Agora precisamos modificar algumas linhas do código. Primeiro, em WIFI_SSID e em WIFI_PASSWORD insira o nome e a senha da sua rede WiFi (mantenha as aspas).

Estação Meteorológica com ESP8266 NodeMCU

Se necessário, altere a constante GMT. O código já está configurado para GMT -3 (-3*60*60). Se você mora em uma localidade diferente, use o GMT adequado.

Estação Meteorológica com ESP8266 NodeMCU

Insira sua chave da API Open Weather Map. Depois, insira a latitude e longitude da localidade que você deseja obter a previsão do tempo. Para obter a latitude e longitude, acesse o site Latlong.

Estação Meteorológica com ESP8266 NodeMCU

Pronto! Agora você pode carregar o código para a placa.

BlueBox FilipeFlop

Montagem da estação meteorológica

O primeiro passo da montagem é dessoldar a barra de pinos do display LCD TFT 1.8”. Para isso, esquente cada um dos terminais usando o ferro de solda e retire todo o estanho usando o sugador de solda e a malha dessoldadora. Com cuidado e usando um alicate, puxe a barra de pinos até que ela saia por completo.

Estação Meteorológica com ESP8266 NodeMCU

Se essa é sua primeira vez fazendo uma dessolda, saiba que este é um processo lento, então tenha paciência.

Separe 11 pinos da barra de pinos de 90º. Posicione a barra de pinos como mostra a imagem abaixo e solde cada um dos terminais.

Estação Meteorológica com ESP8266 NodeMCU

Solde a barra de pinos que acompanha o sensor BMP180.

Estação Meteorológica com ESP8266 NodeMCU

Corte o termo retrátil em três partes iguais. Separe três jumpers e corte a ponta de uma das extremidades de cada um deles. Passe cada um dos jumpers por dentro de cada parte do termo retrátil. Para facilitar a solda posterior, estanhe as pontas dos jumpers.

Estação Meteorológica com ESP8266 NodeMCU

Solde os jumpers nos terminais do DHT11. Perceba que o terceiro pino do DHT11 não é utilizado. Depois, posicione o termo retrátil acima dos pinos e esquente os mesmos.

Estação Meteorológica com ESP8266 NodeMCU

Agora é necessário conectar todos os componentes ao NodeMCU. Primeiro vamos conectar o display da seguinte forma:

Display LCD TFT 1.8”ESP8266 NodeMCU
VCC3.3V
GNDGND
CLKD5
SDAD7
RSD8
RSTD4
CSD3

Depois conecte o sensor BMP180 da seguinte forma:

Sensor BMP180ESP8266 NodeMCU
VIN3.3V
GNDGND
SCLD1
SDAD2

Por último, faça a conexão do sensor DHT11:

Sensor DHT11ESP8266 NodeMCU
Pino 13.3V
Pino 2 D6
Pino 4GND

Antes de encaixar todos os componentes na case da estação meteorológica, ligue o NodeMCU e verifique se tudo está funcionando corretamente.

Encaixe o display na parte frontal da case.

Estação Meteorológica com ESP8266 NodeMCU

Encaixe o NodeMCU na tampa da case. Note que a entrada micro USB do NodeMCU deve estar posicionada acima do chanfro da tampa.

Estação Meteorológica com ESP8266 NodeMCU

Também prenda os sensores DHT11 e BMP180 na tampa.

Estação Meteorológica com ESP8266 NodeMCU

Cuidadosamente, junte a parte frontal da case com a tampa. Quando tudo estiver no lugar, use os quatro parafusos para fechar a case.

Estação Meteorológica com ESP8266 NodeMCU

Por fim, insira o cabo micro USB (ou uma fonte DC chaveada 5V / 2A) para ligar sua estação meteorológica.

Funcionamento da sua estação meteorológica

Estação Meteorológica com ESP8266 NodeMCU

A estação meteorológica é formada por quatro telas:

  • A temperatura ambiente, que é coletada pelo sensor BMP180;
  • A umidade ambiente, que é coletada pelo sensor DHT11;
  • A pressão atmosférica, que é coletada pelo sensor BMP180;
  • A previsão do tempo dos próximos 3 dias.

Gostou do projeto da 6ª edição da BlueBox? Conte o que achou da estação meteorológica abaixo.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

6 Comentários

  1. Rosana, boa tarde. Recebi minha BlueBox, montei a estação metereológica, fiz os ajustes e, depois de carregar o programa utilizando a IDE do Arduino em meu Mac conforme instruções acima, o display não mostra nada… No módulo ESP8266 só vejo uma luz azul piscando ao ligar… Há outro led no módulo? Depois de algumas tentativas, não estou mais conseguindo carregar o programa. Será que a placa está com problemas. Como posso testar? Obrigado,

    Arduino: 1.8.13 (Mac OS X), Placa:”NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Legacy (new can return nullptr), All SSL ciphers (most compatible), 4MB (FS:2MB OTA:~1019KB), 2, v2 Lower Memory, Disabled, None, Only Sketch, 115200″

    Executable segment sizes:
    IROM : 275964 – code in flash (default or ICACHE_FLASH_ATTR)
    IRAM : 27988 / 32768 – code in IRAM (ICACHE_RAM_ATTR, ISRs…)
    DATA : 15456 ) – initialized variables (global, static) in RAM/HEAP
    RODATA : 1932 ) / 81920 – constants (global, static) in RAM/HEAP
    BSS : 31464 ) – zeroed variables (global, static) in RAM/HEAP
    O sketch usa 321340 bytes (30%) de espaço de armazenamento para programas. O máximo são 1044464 bytes.
    Variáveis globais usam 48852 bytes (59%) de memória dinâmica, deixando 33068 bytes para variáveis locais. O máximo são 81920 bytes.
    esptool.py v2.8
    Serial port /dev/cu.usbserial-1410
    Connecting…….._____….._____….._____….._____….._____….._____…..____Traceback (most recent call last):
    File “/Users/felixrib/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/tools/upload.py”, line 65, in
    esptool.main(cmdline)
    File “/Users/felixrib/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/tools/esptool/esptool.py”, line 2890, in main
    esp.connect(args.before)
    File “/Users/felixrib/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/tools/esptool/esptool.py”, line 483, in connect
    raise FatalError(‘Failed to connect to %s: %s’ % (self.CHIP_NAME, last_error))
    esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
    esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header

    1. Olá Felix,

      Sugiro que primeiro você refaça a instalação do conjunto de placas ESP8266. Depois, sem nenhum dos componentes conectados ao NodeMCU, carregue o exemplo Blink e veja o que acontece.

      Dê o retorno por aqui 😉

      Abraço!

      1. Rosana, obrigado pelo retorno. Depois de seguir sua dica, descobri que o problema estava no pino CS (Chip Select) de display (fui montando fio a fio e testando). Descobri que, ao tentar retirar a barra de pinos do display para trocar pela de 90o, deixei que um resíduo de solda fizesse contado com o resíduo do outro pino RST (Reset). Assim que fiz a limpeza, tudo passou a funcionar. Bem bacana esta estação. Grato, Felix.

        1. Fico feliz que tenha conseguido encontrar o problema!

          1. Rosana, a temperatura está marcando com uns 9oC a mais… o sensor de temperatura tem algum tipo de ajuste? Obrigado,

          2. Rosana, boa noite. Gostaria de usar o BMP280 no lugar do BMP180 neste projeto. Poderia me ajudar nos ajustes do hardware/software para esta alteração? Obrigado.