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 46/55 - Monitoramento Remoto de Temperatura usando HiveMQ MQTT | Kit ESP32 da SunFounder
Neste tutorial, criaremos um sistema de monitoramento de temperatura remoto usando o ESP32 e o protocolo MQTT. Este projeto nos permite publicar dados de temperatura em um broker MQTT e controlar um LED remotamente usando uma interface web. Ao pressionar um botão, podemos enviar leituras de temperatura para a nuvem, e também podemos receber comandos para ligar ou desligar o LED.
esp32-47-mqt-1
O ESP32 é um microcontrolador poderoso que possui Wi-Fi e Bluetooth integrados, tornando-o ideal para aplicações de Internet das Coisas (IoT). Nesta configuração, usaremos um termômetro NTC para medir a temperatura, um botão pressionado para acionar as leituras e um LED para indicar o status. Os dados serão enviados para o HiveMQ, um popular broker MQTT, onde podem ser acessados remotamente (no vídeo em 00:45).
esp32-47-mqt-2
Hardware Explicado
Para este projeto, utilizaremos os seguintes componentes:
Microcontrolador ESP32:Esta placa serve como a unidade central de processamento, gerenciando conexões Wi-Fi e comunicações MQTT.
Termistor NTC:Este sensor de temperatura varia sua resistência com base na temperatura. Ele fornece um sinal analógico que o ESP32 pode ler para determinar a temperatura atual.
LED:Este diodo emissor de luz será usado para indicar o status com base em comandos recebidos via MQTT.
Botão de Pressionar:Este botão fará com que o ESP32 leia a temperatura e a publique no broker MQTT.
Detalhes da Ficha Técnica
Fabricante
SunFounder
Número da peça
ESP32
Tensão de lógica/IO
3,3 V
Tensão de alimentação
5 V (via USB)
Corrente de saída (por canal)
12 mA máximo
Orientação sobre frequência PWM
Até 40 kHz
Limiar de lógica de entrada
0,3 V (baixo), 2,4 V (alto)
Limites térmicos
-40 a 85 °C
Pacote
ESP32-WROOM-32
Garanta níveis de tensão adequados para evitar danos.
Use resistores de pull-up para o botão de pressão para garantir leituras estáveis.
Capacitores de desacoplamento podem ajudar a estabilizar a fonte de alimentação.
Tenha cuidado com a fiação do termistor para evitar leituras incorretas.
Verifique os detalhes do seu broker MQTT para uma conexão bem-sucedida.
Instruções de fiação
esp32-47-mqtt-wiring
Para conectar os componentes, comece ligando o termistor NTC. Conecte um pino do termistor ao supply de 3,3 V no ESP32. O outro pino conecta-se ao pino 36 no ESP32 e deve também ser conectado a um resistor de 10 kΩ, que por sua vez está ligado ao terra. Isso cria um divisor de tensão que permite que o ESP32 leia a resistência do termistor.
Em seguida, conecte o LED. O pino mais longo (ânodo) do LED se conecta ao pino 4 no ESP32 através de um resistor de 220 Ω, enquanto o pino mais curto (cátodo) se conecta ao terra. Para o botão, conecte um lado a 3.3 V e o outro lado ao pino 14 no ESP32. Além disso, conecte um resistor de 10 kΩ do pino do botão ao terra para garantir um estado LOW estável quando o botão não estiver pressionado.
Instale a biblioteca necessária
OPubSubClienta biblioteca é usada aqui, você pode instalá-la a partir doGerente de Biblioteca.
esp32-47-biblioteca-mqtt
Exemplos de Código e Tutorial
Na configuração, inicializamos a comunicação serial, estabelecemos a conexão Wi-Fi e configuramos o servidor MQTT. Aqui está um trecho do código de configuração:
Esta parte do código estabelece a conexão com a rede Wi-Fi e configura o servidor MQTT. Os modos dos pinos para o botão e o LED também são configurados aqui.
A função loop verifica continuamente o estado do botão e publica dados de temperatura quando pressionado. Aqui está um trecho focado do loop:
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
if (digitalRead(buttonPin)) {
long now = millis();
if (now - lastMsg > 5000) {
lastMsg = now;
char tempString[8];
dtostrf(thermistor(), 1, 2, tempString);
client.publish("SF/TEMP", tempString);
}
}
}
Nesse loop, verificamos se o ESP32 está conectado ao broker MQTT. Se o botão for pressionado, ele lê a temperatura do termistor e a publica no tópico "SF/TEMP" a cada 5 segundos.
Demonstração / O que Esperar
Quando o projeto estiver configurado e em funcionamento, pressionar o botão publicará a temperatura atual no broker MQTT. Você pode monitorar esses dados de qualquer cliente MQTT. Além disso, você pode enviar mensagens para controlar o LED; enviar "on" o acenderá, enquanto "off" o desligará. Fique atento ao comportamento esperado no vídeo às 15:30, onde as leituras de temperatura são exibidas após cada pressionar do botão.
Marcas de Tempo do Vídeo
00:00 Início
2:05 Introdução ao projeto
7:06 Serviço HiveMQ gratuito
7:56 Fiação explicada
11:11 Código Arduino explicado
18:46 Selecionando placa ESP32 e porta COM no Arduino IDE
20:30 Demonstração do broker HiveMQ Free
Imagens
esp32-47-mqt-1
esp32-47-mqt-2
esp32-47-mqtt-library
esp32-47-mqtt-wiring
esp32-47-mqt-1
esp32-47-mqt-2
esp32-47-mqtt-library
esp32-47-mqtt-wiring
847-ESP32 Tutorial 46/55- Arduino code for IoT Communication with MQTT