Web Temperature com Arduino Nano ESP32 e a Biblioteca DIYables ESP32 WebApps
Visão Geral
Este tutorial aborda a classe DIYablesWebTemperaturePage da Biblioteca DIYables ESP32 WebApps. A página do navegador exibe um termômetro de mercúrio que mostra o valor de temperatura em tempo real recebido do Arduino Nano ESP32 por WebSocket. A faixa de temperatura, as unidades e a escala são configuradas no construtor e transmitidas ao navegador na conexão.
Assista a uma demonstração do app Web Temperature com um sensor DS18B20:

O Que Este Tutorial Aborda
- Configurar a faixa e as unidades do termômetro no construtor
- Fornecer leituras de temperatura por meio de um callback
- Enviar valores atualizados de sensores reais (DS18B20, DHT22)
- Acessar a página do termômetro a partir de um navegador
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Buy Note: Many DS18B20 sensors available in the market are unreliable. We strongly recommend buying the sensor from the DIYables brand using the link provided above. We tested it, and it worked reliably.
Passos
Siga estas instruções passo a passo:
- Se esta é a primeira vez que você usa o Arduino Nano ESP32, consulte o tutorial sobre como configurar o ambiente de desenvolvimento do Arduino Nano ESP32.
- Conecte a placa Arduino Nano ESP32 ao seu computador usando um cabo USB.
- Abra o Arduino IDE no seu computador.
- Selecione a placa apropriada (por exemplo, Arduino Nano ESP32) e a porta COM.
- Vá até o ícone Libraries na barra à esquerda do Arduino IDE.
- Pesquise "DIYables ESP32 WebApps" e encontre a Biblioteca DIYables ESP32 WebApps da DIYables
- Clique no botão Install para instalar a biblioteca.
- Search for DIYables ESP32 WebApps created by DIYables and click the Install button.
- Você será solicitado a instalar algumas outras dependências da biblioteca
- Clique no botão Install All para instalar todas as dependências da biblioteca.
- No Arduino IDE, vá até o exemplo File Examples DIYables ESP32 WebApps WebTemperature, ou copie o código acima e cole no editor do Arduino IDE
- Atualize as credenciais de WiFi no sketch:
- Clique no botão Upload no Arduino IDE para fazer o upload do código para o Arduino Nano ESP32
- Abra o Serial Monitor
- A saída do Serial Monitor deve ser parecida com esta:
- Se nada aparecer, pressione o botão de reset da placa.
- Digite o endereço IP exibido no Serial Monitor em um navegador na mesma rede.
- Exemplo: http://192.168.0.2
- A página inicial mostra um card para o aplicativo de temperatura:

- Selecione o card Web Temperature para abrir a página do termômetro:

- A página também pode ser acessada diretamente em http://192.168.0.2/web-temperature.
Configuração do Termômetro
Construtor
Defina a temperatura mínima, a temperatura máxima e a string da unidade no construtor. Esses valores são enviados ao navegador na conexão e determinam a escala do termômetro.
Configurações comuns:
| Mín | Máx | Unidade |
|---|---|---|
| -10.0 | 50.0 | °C |
| 32.0 | 122.0 | °F |
| 263.15 | 323.15 | K |
Callback
Registre onTemperatureValueRequested para fornecer uma leitura cada vez que o navegador solicitar uma atualização:
Enviando um Valor
Dentro da função de callback, leia o sensor e chame sendTemperatureValue():
Lendo de Sensores Reais
DS18B20 (1-Wire)
DHT22 (Fio Único)
Solução de Problemas
O termômetro não mostra nenhum valor
- Verifique se onTemperatureValueRequested está registrado antes de webAppsServer.begin()
- Confirme que sendTemperatureValue() é chamado dentro do callback
O sensor retorna NaN
- Para o DS18B20: verifique o pino de dados OneWire e o resistor de pull-up (4.7 kΩ entre dados e 3.3 V)
- Para o DHT22: adicione um pull-up de 10 kΩ na linha de dados; o intervalo mínimo de leitura é 2 s
O nível de mercúrio não corresponde ao valor esperado
- Verifique se o valor informado está dentro da faixa mín/máx configurada
- Valores fora da faixa são limitados aos extremos do termômetro
Página inacessível
- Verifique o endereço IP exibido no Serial Monitor
- Confirme que a placa e o dispositivo com o navegador estão na mesma rede WiFi