Tutorial ESP32 48/55 - Monitoramento Remoto de Temperatura e Controle de LED MQTT | Kit IoT ESP32 da SunFounder
Neste tutorial, exploraremos como utilizar o módulo ESP32 em conjunto com a placa de extensão ESP32 da SunFounder para monitorar temperatura e umidade remotamente usando a plataforma Adafruit IO. Além disso, implementaremos a funcionalidade para controlar um LED através de uma interface web. Ao final deste projeto, você será capaz de visualizar dados de temperatura e umidade em tempo real e ativar ou desativar um LED a partir do seu navegador.
Este projeto aproveita o protocolo MQTT para uma comunicação eficiente entre o ESP32 e o serviço Adafruit IO. O MQTT é leve e bem adequado para aplicações de IoT, permitindo-nos publicar facilmente os dados do sensor e assinar os comandos para o controle do LED. Para mais esclarecimentos sobre o código e a fiação, não esqueça de conferir o vídeo que acompanha este tutorial (no vídeo às 00:00).
Hardware Explicado
Os principais componentes deste projeto incluem o microcontrolador ESP32, um sensor de temperatura e umidade DHT11 e um LED. O ESP32 é um microcontrolador poderoso que possui capacidades Wi-Fi e Bluetooth integradas, tornando-o uma escolha ideal para projetos de IoT. Ele pode lidar com várias tarefas e se conectar à internet de forma contínua.
O sensor DHT11 é responsável por medir a temperatura e a umidade. Ele emite sinais digitais que podem ser lidos pelo ESP32. O LED serve como um indicador e pode ser controlado remotamente para demonstrar a eficácia do protocolo MQTT na gestão de dispositivos pela internet.
Detalhes da Ficha Técnica
| Fabricante | Adafruit |
|---|---|
| Número da peça | DHT11 |
| Tensão lógica/IO | 3,3 V |
| Tensão de alimentação | 3,3 V |
| Corrente de saída (por canal) | 20 mA |
| Corrente de pico (por canal) | 50 mA |
| Orientação sobre frequência PWM | N/A |
| Limiares de lógica de entrada | 0,3 V (baixo), 0,7 V (alto) |
| Queda de tensão / RDS(on)/ saturação | N/A |
| Limites térmicos | 0 a 50 °C |
| Pacote | 3-pinos |
| Notas / variantes | Use DHT22 para maior precisão. |
- Certifique-se de que a fiação está correta para evitar danos.
- Use um resistor de 220 Ohms com o LED para limitar a corrente.
- Use resistores de pull-up para o pino de dados do DHT11, se necessário.
- Verifique as credenciais do Wi-Fi quanto a maiúsculas e minúsculas.
- Monitore a saída serial para depurar problemas de conexão.
- Mantenha os tópicos MQTT únicos para evitar conflitos.
- Teste as leituras do sensor para garantir que são válidas.
- Tenha cuidado com o tempo de resposta do DHT11; pode levar um tempo para estabilizar as leituras.
LED= controle LED;temperature= publicar dados de temperatura;humidity= publicar dados de umidade.
Instruções de Fiação
Para ligação dos componentes, comece conectando o sensor DHT11. Conecte o pino esquerdo do DHT11 ao trilho de alimentação de 3,3V na placa de ensaio usando um fio vermelho. O pino do meio do DHT11 deve ser conectado ao pino 13 no ESP32 usando um fio amarelo. Por fim, conecte o pino direito do DHT11 ao trilho de terra usando um fio azul.
Em seguida, para o LED, conecte o ânodo (perna mais longa) ao pino 15 do ESP32 através de um resistor de 220 Ohms. Conecte o cátodo (perna mais curta) diretamente ao barramento de terra na placa de ensaio. Certifique-se de que todas as conexões estejam seguras e verifique se há fios soltos.
Configurando o Painel de Controle
-
VisitaAdafruit IO, então clique emComece grátispara criar uma conta gratuita.

-
Preencha o formulário para criar uma conta.

-
Após criar uma conta Adafruit, você precisará reabrir o Adafruit io. Clique emPainéis de controle, em seguida clique emNovo Painel de Controle.

-
Criar umNovo Painel de Controle.

-
Insira o recém-criadoPainel de Controlee criar um novo bloco.

-
Criar 1Alternarbloco.

-
Em seguida, você precisará criar um novo feed aqui. Este interruptor será usado para controlar o LED, e chamaremos este feed de "LED".

-
Verifique oLEDalimente, então passe para a próxima etapa.

-
Complete as configurações do bloco (principalmente Título do Bloco, Texto Ligado e Texto Desligado), em seguida clique noCriar blocobotão no canto inferior direito para finalizar.

-
Também precisamos criar doisBlocos de Textopróximo. Eles serão usados para exibir temperatura e umidade. Então, crie dois feeds nomeadostemperaturaeumidade.

-
Após a criação, seu Painel deve parecer algo assim:

-
Você pode ajustar o layout usando oEditar Layoutopção no Painel.

-
Clique emCHAVE DA API, e você verá seu nome de usuário eCHAVE DA APIanotados. Lembre-se deles, pois você vai precisar para o seu código.

Exemplos de Código e Passo a Passo
O código começa incluindo as bibliotecas necessárias, configurando as credenciais do Wi-Fi e definindo os parâmetros MQTT. Identificadores-chave comoAIO_USERNAMEeAIO_KEYsão usados para autenticar com o serviço Adafruit IO.
#define AIO_USERNAME "YourUsername"
#define AIO_KEY "YourKey"Essas linhas definem seu nome de usuário e chave do Adafruit IO, que são essenciais para se conectar ao broker MQTT. Certifique-se de que esses valores estejam corretos para estabelecer uma conexão bem-sucedida.
No textosetup()função, a conexão Wi-Fi é inicializada e o cliente MQTT é configurado com o certificado CA raiz para comunicação segura.
WiFi.begin(WLAN_SSID, WLAN_PASS);
client.setCACert(adafruitio_root_ca);Este código conecta o ESP32 à rede Wi-Fi especificada e define a CA raiz para conexões MQTT seguras. Manipular corretamente essas conexões é crítico para uma transmissão de dados confiável.
Finalmente, oloop()a função gerencia a conexão MQTT e publica leituras de temperatura e umidade em intervalos regulares.
mqtt.processPackets(5000);Esta linha permite que o ESP32 processe mensagens recebidas para tópicos assinados, garantindo que o dispositivo permaneça responsivo a comandos enviados a partir da interface web.
Para o código completo, consulte o programa completo carregado abaixo do artigo.
Demonstração / O que Esperar
Após a configuração bem-sucedida, você deverá ver atualizações em tempo real da temperatura e umidade no seu painel do Adafruit IO. Você também pode ligar e desligar o LED através da interface web. Se o LED não responder como esperado, verifique sua fiação e garanta que os nomes dos tópicos MQTT correspondam aos definidos no código.
Esteja ciente de que certos erros de conexão MQTT podem ocorrer devido a certificados expirados. Certifique-se de ter o último certificado CA raiz em seu código para evitar esses problemas (no vídeo às 15:30).
Timestamps de Vídeo
- 00:00 Início
- 1:50 Introdução ao projeto
- 3:16 O que é MQTT
- 6:36 Configuração do Adafruit IO
- 11:13 fiação
- 13:38 Código Arduino explicado
- 22:03 Selecionando a placa ESP32 e a porta COM
- 23:44 Demonstração do projeto
- 27:05 Atualizando painel
Common Course Links
Common Course Files
Recursos e referências
-
Documentação
Arquivos📁
Nenhum arquivo disponível.