Tutorial ESP32 48/55 - Monitoramento Remoto de Temperatura e Controle de LED MQTT | Kit IoT ESP32 da SunFounder

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

  1. VisitaAdafruit IO, então clique emComece grátispara criar uma conta gratuita.

    ../../_images/sp230516_102503.png
  2. Preencha o formulário para criar uma conta.

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

    ../../_images/sp230516_103347.png
  4. Criar umNovo Painel de Controle.

    ../../_images/sp230516_103744.png
  5. Insira o recém-criadoPainel de Controlee criar um novo bloco.

    ../../_images/sp230516_104234.png
  6. Criar 1Alternarbloco.

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

    ../../_images/sp230516_105641.png
  8. Verifique oLEDalimente, então passe para a próxima etapa.

    ../../_images/sp230516_105925.png
  9. 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.

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

    ../../_images/sp230516_110657.png
  11. Após a criação, seu Painel deve parecer algo assim:

    ../../_images/sp230516_111134.png
  12. Você pode ajustar o layout usando oEditar Layoutopção no Painel.

    ../../_images/sp230516_111240.png
  13. 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.

    ../../_images/sp230516_111641.png

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
849-ESP32 Tutorial 48/55- Arduino code for Remote Temperature Monitoring and LED control MQTT
Idioma: C++
850-ESP32 Tutorial 48/55- Basic Adafruit MQTT code (watch video)
Idioma: C++
Copiado!

Arquivos📁

Nenhum arquivo disponível.