Algumas partes deste site ainda não estão disponíveis no seu idioma. Estamos trabalhando para corrigir isso e pedimos desculpas por qualquer inconveniente.
Tutorial ESP32 43/55 - Estação Meteorológica IoT Internet | Kit de Aprendizado IoT ESP32 da SunFounder
Neste tutorial, construiremos uma estação meteorológica conectada à Internet usando o ESP32 e sua placa de extensão de câmera da SunFounder. Este projeto permite que o ESP32 recupere dados meteorológicos em tempo real, incluindo temperatura e umidade, e os exiba em uma tela LCD. Esta aplicação não apenas demonstra as capacidades do ESP32, mas também mostra como buscar e analisar dados de uma API externa.
À medida que avançamos pelo tutorial, vamos conectar os componentes, configurar o código e garantir que tudo funcione perfeitamente em conjunto. O resultado final será uma estação meteorológica totalmente funcional que atualiza suas medições a cada 10 segundos, fornecendo uma exibição clara e concisa das condições meteorológicas atuais (no vídeo em 00:30).
Hardware Explicado
Os principais componentes utilizados neste projeto incluem o microcontrolador ESP32, um display LCD e a fiação necessária. O ESP32 é equipado com Wi-Fi e Bluetooth integrados, permitindo que se conecte à Internet e recupere dados. O display LCD mostrará as informações atuais do tempo, incluindo temperatura e umidade.
O LCD que estamos usando é um display de caracteres 16x2, o que significa que pode mostrar duas linhas de 16 caracteres cada. Isso será suficiente para a saída das informações meteorológicas. O ESP32 se comunicará com o LCD via I2C, o que simplifica a fiação usando apenas duas linhas de dados.
Detalhes da Ficha Técnica
Fabricante
Espressif
Número da peça
ESP32-WROOM-32
Tensão lógica/IO
3,3 V
Tensão de alimentação
3,0-3,6 V
Corrente de saída (por canal)
12 mA máx
Corrente de pico (por canal)
40 mA
Orientação sobre frequência PWM
1 kHz
Limiares de lógica de entrada
0,3 V (baixo), 0,7 V (alto)
Queda de tensão / RDS(on)/ saturação
0,5 V
Limites térmicos
-40 a 85 °C
Pacote
QFN48
Notas / variantes
Inclui múltiplas variantes para diferentes aplicações.
Certifique-se de que o ESP32 está alimentado com uma fonte estável de 3,3 V.
Use um terreno comum para todos os componentes para evitar problemas de comunicação.
Verifique o endereço I2C do LCD usando um scanner I2C.
Monitore o status da conexão Wi-Fi para evitar desconexões durante a recuperação de dados.
Lidar com erros de análise JSON para robustez na recuperação de dados.
Instruções de Fiação
esp32-43-weather_station-wiring
Para conectar os componentes, comece ligando o LCD ao ESP32. O LCD usará a interface I2C, então conecte o pino SDA do LCD ao GPIO21 no ESP32 e o pino SCL ao GPIO22. Certifique-se de conectar os pinos de energia e terra do LCD aos pinos de 5V e GND no ESP32, respectivamente.
Em seguida, certifique-se de que o ESP32 esteja alimentado corretamente usando a bateria de lítio incluída ou uma conexão USB. A bateria oferece portabilidade, enquanto a conexão USB é útil para programação e depuração. Por fim, verifique se todas as conexões estão seguras para evitar problemas de fiação solta que possam interromper a funcionalidade.
Exemplos de Código & Tutorial
Na fase de configuração do nosso programa, inicializamos a comunicação serial e conectamos à rede Wi-Fi usando o SSID e a senha fornecidos. O trecho de código a seguir lida com a conexão Wi-Fi:
WiFi.begin(ssid, password);
while(WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("Connected to WiFi network with IP Address: ");
Serial.println(WiFi.localIP());
Este código garante que o ESP32 se conecte à rede Wi-Fi especificada antes de prosseguir com qualquer coleta de dados. Se a conexão falhar, ele tentará reconectar continuamente.
Em seguida, precisamos enviar uma solicitação HTTP GET para recuperar dados meteorológicos. Isso é realizado usando o seguinte trecho de código:
Aqui, construímos a URL para a solicitação da API, que inclui a cidade, o código do país e nossa chave da API.httpGETRequesta função é então chamada para buscar os dados meteorológicos.
Finalmente, analisamos a resposta JSON e exibimos os dados relevantes no LCD:
Este trecho de código atualiza o display LCD com a hora atual, condição meteorológica, temperatura e umidade. Ele limpa o display anterior e posiciona o cursor nas posições apropriadas para cada linha.
Demonstração / O que Esperar
Após a fiação e programação bem-sucedidas, sua estação meteorológica se conectará ao Wi-Fi e começará a buscar dados meteorológicos a cada 10 segundos. Você verá a temperatura atual, a umidade e as condições meteorológicas exibidas na tela LCD. Se o ESP32 não conseguir se conectar ao Wi-Fi, ele imprimirá uma mensagem de erro no monitor serial.
Fique atento aos limites de chamadas da API para evitar ser bloqueado pelo serviço OpenWeatherMap. Se você encontrar qualquer problema com a recuperação de dados, verifique sua chave da API e assegure-se de que sua cidade e o código do país estejam especificados corretamente (no vídeo às 15:45).
Marcadores de Vídeo
00:00 Início
2:00 introdução ao projeto
5:04 Conta do OpenWeather
6:11 Fiação
8:05 Código do Arduino explicado
14:13 JASON Elementos no código
20:23 Selecionando a placa ESP32 e a porta COM no Arduino IDE
22:05 Demonstração da Estação Meteorológica no LCD1602
23:45 Demonstração da Estação Meteorológica no LCD2004
Imagens
esp32-43-weather_station-main
esp32-43-weather_station-wiring
esp32-43-weather_station-main
esp32-43-weather_station-wiring
844-ESP32 Tutorial 43/55- Arduino code for IoT Internet Weather Station