Logotipo





TP2 - ESP32: Estação Meteorológica

Logo

  • A monitorização das condições meteorológicas são essenciais em diversas áreas, desde a agricultura, turismo, navegação, até à simples gestão do nosso dia à dia. Neste projeto desenvolvemos uma Estação Meteorológica utilizando o microcontrolador ESP32.

    O ESP32 oferece uma solução sólida e prática para construir dispositivos de Internet das Coisas (IoT). A utilização de sensores meteorológicos de alta precisão com a capacidade de processamento do ESP32, a estação meteorológica desenvolvida neste projeto é capaz de fornecer informações detalhadas sobre temperatura, luminosidade, humidade e chuva.

    O projeto não se limita apenas ao desenvolvimento de uma estação meteorológica funcional, mas também aprofunda os conceitos fundamentais de hardware e software. Apresentaremos informação detalhada dos componentes, da configuração do ESP32 para comunicação sem fio, a implementação de sensores e a implementação do um ambiente de software Blynk para visualização e análise dos dados obtidos.

    Com a informação e conhecimentos adquiridos no desenvolvimento de projetos deste género, são adquiridos conhecimentos práticos de IoT, programação e aplicações práticas no âmbito meteorológico, contribuindo para o enriquecimento acadêmico e profissional de todos os envolvidos.

    • (1x) DOIT ESP32 Devkit V1;
    • (2x) Breadboard;
    • Cabos macho-macho;
    • (4x) Botões;
    • (1x) Sensor de chuva;
    • (1x) DHT11;
    • (1x) MH Photoresistor Light Sensor Module (Sensor de LDR);
    • (1x) Display LCD 16x2 com adaptador I2C;
    • (1x) Telemóvel

    Image

    Figura 1 - DOIT ESP32 Devkit V1.

    Image

    Figura 2 - Breadboard.

    Image

    Figura 3 - Cabo macho.


    Image

    Figura 4 - Botões.

    Image

    Figura 5 - Sensor de chuva.

    Image 3

    Figura 6 - Sensor DHT11.


    Image

    Figura 7 - Sensor de LDR.

    Image

    Figura 8 - Display LCD 16x2 com adaptador I2C.


  • DHT Sensor Library: Biblioteca que permite obter os valores de humidade e temperatura captados por um sensor DHT.
    https://www.arduino.cc/reference/en/libraries/dht-sensor-library/

    Wire: Biblioteca utilizada para permitir a comunicação do esp32 com dispositivos I2C/TWI.
    https://www.arduino.cc/reference/en/language/functions/communication/wire/

    WiFi: Biblioteca utilizada para possibilitar a conexão do esp32 a uma rede local ou à Internet.
    https://www.arduino.cc/reference/en/libraries/wifi/

    LiquidCrystal_I2C: Biblioteca que permite o controlo de displays LCD com adaptador I2C.
    https://github.com/johnrickman/LiquidCrystal_I2C

    •BlynkSimpleEsp32: Biblioteca utilizada para permitir a comunicação do esp32 com a plataforma Blynk.
    https://github.com/blynkkk/blynk-library/tree/master


  • Image

    Figura 9 – Diagrama do projeto.




  • Com o intuito de criar uma estação meteorológica utilizando um ESP32 foi necessária uma metodologia baseada em testes. No início da implementação deste projeto, decidiu-se apenas ler os valores captados pelos sensores utilizados e fazer print dos mesmos no Serial Monitor sendo que de forma a testar se os mesmos estavam a funcionar corretamente foram-se causando pequenas interferências para verificar como os valores captados pelos mesmos variavam.

    Após verificar o correto funcionamento dos sensores, criaram-se funções para a leitura e exposição dos valores obtidos, isto foi seguido pela decisão de utilizar a plataforma Blynk para o mesmo fim. Nesta plataforma foi necessário definir como a mesma deveria mostrar os valores obtidos; isto envolveu escolher a unidade de cada valor, o valor máximo e mínimo que o mesmo pode assumir, o pino virtual associado a este e o tipo de variável e o número de casas decimais que iriam ser mostradas. No final, decidiu-se que todos os valores enviados para o Blynk seriam do tipo double, apresentariam 2 casas decimais e estariam limitados a assumir valores de 0 a 100.

    As limitações implementadas no Blynk revelaram-se problemáticas para valores obtidos pelos sensores da chuva e de LDR uma vez que ambos podem assumir valores entre 0 e 4095 e quanto mais baixo o valor mais intenso seria o objeto de leitura do mesmo. Para superar este problema foi necessário utilizar a função map() a qual permitiu remapear os valores obtidos nestes sensores limitando-os entre 0 e 100 e fazendo com que quanto mais próxima a leitura fosse de 4095 mais próxima a mesma estaria de 0 e quanto mais próxima a leitura fosse de 0 mais próximo a mesma estaria de 100. Após o tratamento dos valores obtidos os mesmos seriam enviados para a plataforma Blynk.

    A fase final deste projeto consistiu na implementação de um display LCD 16x2 com adaptador I2C que mostra os resultados para tal foram utilizadas as funções print() e setCursor() disponibilizadas pela biblioteca LiquidCrystal_I2C. Após garantir o bom funcionamento do display decidiu-se que apenas uma leitura seria mostrada por vez para tal criou-se um booleano associado a cada leitura e uma condição que mostra apenas uma leitura se o booleano que lhe está associado for verdadeiro. Para impedir que múltiplas leituras surgissem no LCD em rápida sucessão definiu-se que apenas um booleano iria assumir o valor true de cada fez, os valores destes booleanos podem ser alterados ao carregar num de quatro botões montados numa breadboard cada um deste associado a uma leitura sendo que ao carregar num deles o booleano associado a este é alterado para verdadeiro e os restantes alterados para falso.





  • Image

    Figura 10 - Montagem do projeto.


    Image 1

    Figura 11 - Output do sensor da temperatura.


    Image 1

    Figura 12 - Output do sensor da luminosidade.


    Image 1

    Figura 13 - Output do sensor da chuva.


    Image 1

    Figura 14 - Output do sensor da humidade.


    Image 1

    Figura 15 - Output da App Blynk.



    Video 1 - Video do Projeto.



    Video 2 - Output da Temperatura.



    Video 3 - Output da Luminosidade e da chuva.



    Video 4 - Vários Outputs.



    • Estação Meteorológica.
    • Dispositivo de leitura de sensores
    • Sistemas de segurança


  • O Futuro será um futuro informado e conectado fornecendo aos utilizadores da tecnologia informações precisas ao segundo, tudo graças à emergente tecnologia de dispositivos IoT, como por exemplo, a plataforma ESP32.

    Com este projeto foi possível obter uma visão clara do potencial revolucionário da integração entre tecnologia e a monotorização ambiental. A capacidade do ESP32 em gerir uma rede de sensores meteorológicos proporcionou não apenas uma estação funcional, mas um instrumento preciso e acessível para a obtenção de dados meteorológicos em tempo real.

    Ao longo deste projeto, exploramos minuciosamente as escolhas de hardware, desde a seleção criteriosa dos sensores até a integração eficiente dos mesmos com a plataforma ESP32. A configuração para a comunicação sem fios, a criação de uma interface de utilizador intuitiva e a análise dos dados obtidos foram elementos cruciais que contribuíram para o êxito do projeto.

    Mais do que uma simples estação meteorológica, o desenvolvimento deste projeto permitiu-nos explorar a grande variedade aplicacional do ESP32 e da tecnologia IoT no contexto meteorológico.

    Este projeto contribuiu para fortalecer as nossas competências na utilização de tecnologias IoT, na programação de dispositivo e hardware e contribuindo também para a conscientização da importância da tecnologia na compreensão do nosso ambiente. Este projeto representa um passo significativo em direção a um futuro meteorológico conectado, onde a tecnologia é utilizada não apenas para registar dados da natureza, mas também nos alertando para um futuro mais sustentável e informado.


  • Sensor DHT11:
    https://www.youtube.com/watch?v=K98h51XuqBE&list=PL9LvcY9iaJ_pvo435QoZAzvPvPQay8GZs&index=3

    Sensor LDR:
    https://www.youtube.com/watch?v=Va-psZoTBkY&list=PL9LvcY9iaJ_pvo435QoZAzvPvPQay8GZs&index=4

    Implementação de uma Estação Meteorológica (youtube):
    https://www.youtube.com/watch?v=N38VBr4i0tI&list=PL9LvcY9iaJ_pvo435QoZAzvPvPQay8GZs&index=3&t=378s

    Implementação de uma Estação Meteorológica:
    https://srituhobby.com/how-to-make-a-weather-monitoring-system-with-esp32-board/

    Integração da plataforma Blynk com o ESP32:
    https://www.youtube.com/watch?v=W1xG_XJb0FU

    Comunidade Blynk:
    https://community.blynk.cc/t/problem-sending-sensor-data-to-blynk/63042/21

Ver Relatório