Monitoramento em Tempo Real: Dados do ESP32 e Sensor
Atualização Dinâmica com AJAX no ESP32: Tutorial Prático
Introdução🔗
Imagine acessar uma página web hospedada no seu ESP32 e ver dados sendo atualizados em tempo real
Exibindo Dados no Monitor Serial com ESP32Aprenda a configurar e exibir dados no Monitor Serial com ESP32, utilizando exemplos práticos e técnicas de depuração para otimizar seus projetos IoT., sem a necessidade de recarregar a página inteira. Isso é possível graças ao uso de AJAX (Asynchronous JavaScript and XML). Neste artigo, vamos explorar como implementar a atualização dinâmica de páginas web utilizando AJAX no ESP32. Vamos passo a passo entender os conceitos por trás dessa tecnologia e como aplicá-la em um projeto prático
💧 Sistema de Reúso de Água CinzaDescubra como implementar um sistema inteligente de reúso de água cinza com ESP32, monitoramento via sensores e integração IoT para sustentabilidade..
O que é AJAX?🔗
AJAX é um conjunto de técnicas que permite a troca de dados entre o cliente (navegador) e o servidor de forma assíncrona, sem a necessidade de recarregar a página inteira. Em outras palavras, AJAX permite atualizar partes específicas de uma página web dinamicamente, melhorando a experiência do usuário e tornando as aplicações
📞 Interfone IP com Vídeo ChamadaDescubra como integrar interfone IP com vídeo chamada utilizando ESP32 para segurança residencial e corporativa, com streaming e criptografia avançada. web mais responsivas.
AJAX utiliza principalmente:
- JavaScript: Para manipulação de elementos da página e solicitação de dados ao servidor.
- XMLHttpRequest ou Fetch API: Para realizar solicitações assíncronas ao servidor.
- JSON ou XML: Para formatar os dados trocados entre o cliente e o servidor.
Por que usar AJAX com ESP32?🔗
O ESP32 é um microcontrolador
Características Técnicas e Funcionalidades do ESP32Descubra as especificações completas e os recursos avançados do ESP32, a plataforma ideal para automação, IoT e projetos modernos com segurança. poderoso com capacidade de se conectar à internet e hospedar um servidor web. Ao utilizar AJAX com o ESP32, podemos:
- Atualizar dados em tempo real
Exibindo Dados de Sensores em Tempo Real no NavegadorAprenda a configurar o ESP32 para monitorar sensores em tempo real via navegador, integrando Wi-Fi e AJAX para visualização dinâmica.: Ideal para monitoramento de sensores
Monitoramento Remoto de Sensores com ESP32 e MQTTAprenda a configurar ESP32 com MQTT para monitorar sensores IoT, garantindo comunicação eficiente e coleta de dados em tempo real.. - Reduzir o tráfego de dados: Apenas informações necessárias são transferidas.
- Melhorar a experiência do usuário: Páginas mais fluidas sem recarregamentos completos.
Configurando o Ambiente🔗
Antes de começarmos, certifique-se de:
- Ter o Arduino IDE
Instalando o Arduino IDE para ESP32 no WindowsEste tutorial passo a passo ensina como instalar o Arduino IDE e configurar o ESP32 no Windows, garantindo um ambiente ideal para IoT. instalado. - Ter as bibliotecas
Hospedando Múltiplas Páginas Web no ESP32Descubra como hospedar múltiplas páginas web no ESP32 com um guia passo a passo. Aprenda a configurar rotas e interagir via HTTP. do ESP32
O que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia! configuradas no Arduino IDE
Instalando o Arduino IDE para ESP32 no WindowsEste tutorial passo a passo ensina como instalar o Arduino IDE e configurar o ESP32 no Windows, garantindo um ambiente ideal para IoT.. - Dispor de um ESP32
O que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia! e um cabo USB para programação.
Criando um Web Server Simples no ESP32🔗
Vamos iniciar criando um servidor web
Introdução ao Desenvolvimento de um Web Server com ESP32Desenvolva seu web server com ESP32 e gerencie dispositivos IoT com controle remoto. Siga o tutorial passo a passo e garanta segurança e eficiência. básico que servirá uma página HTML ao cliente.
Código no ESP32
#include <WiFi.h>
// Substitua pelos dados da sua rede Wi-Fi
const char* ssid = "SEU_SSID";
const char* password = "SUA_SENHA";
WiFiServer server(80);
void setup()
{
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(1000);
Serial.println("Conectando ao Wi-Fi...");
}
Serial.println("Conectado!");
Serial.print("Endereço IP: ");
Serial.println(WiFi.localIP());
server.begin();
}
void loop()
{
WiFiClient client = server.available();
if (client)
{
String request = client.readStringUntil('\r');
client.flush();
String response = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n";
response += "<!DOCTYPE HTML><html><body><h1>Olá do ESP32!</h1></body></html>";
client.print(response);
delay(1);
client.stop();
Serial.println("Cliente desconectado.");
}
}
Este código estabelece uma conexão Wi-Fi
Configurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoAprenda passo a passo a conectar seu ESP32 à rede Wi-Fi com segurança e estabilidade. Descubra dicas práticas e estratégias de otimização., inicia um servidor na porta 80 e serve uma página HTML simples com a mensagem "Olá do ESP32!".
Implementando AJAX para Atualização Dinâmica🔗
Agora, vamos modificar o código
Desafios Práticos: Experimentando com Múltiplos LEDsAprenda a controlar múltiplos LEDs com ESP32 em projetos IoT. Descubra desafios práticos, montagem de circuitos, programação e efeitos visuais incríveis! para incluir uma atualização dinâmica de dados usando AJAX.
Código em Arduino para o ESP32
Primeiramente, precisamos preparar o ESP32
O que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia! para responder às solicitações AJAX enviadas pelo cliente.
#include <WiFi.h> const char* ssid = "SEU_SSID"; const char* password = "SUA_SENHA"; WiFiServer server(80); String header; int valorSensor = 0; void setup() { Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Conectando ao Wi-Fi..."); } Serial.println("Conectado!"); Serial.print("Endereço IP: "); Serial.println(WiFi.localIP()); server.begin(); } void loop() { WiFiClient client = server.available(); if (client) { String currentLine = ""; while (client.connected()) { if (client.available()) { char c = client.read(); header += c; if (c == '\n') { if (currentLine.length() == 0) { if (header.indexOf("GET /dados") >= 0) { valorSensor = analogRead(34); // Exemplo de leitura de sensor String jsonResponse = "{\"valor\":" + String(valorSensor) + "}"; client.println("HTTP/1.1 200 OK"); client.println("Content-Type: application/json"); client.println("Connection: close"); client.println(); client.println(jsonResponse); break; } else { client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connection: close"); client.println(); client.println(index_html); break; } } else { currentLine = ""; } } else if (c != '\r') { currentLine += c; } } } header = ""; client.stop(); } } const char* index_html = R"rawliteral( <!DOCTYPE HTML><html> <head> <title>ESP32 com AJAX</title> <meta http-equiv="refresh" content="30"> </head> <body> <h1>Leitura do Sensor</h1> <p>Valor: <span id="valorSensor">0</span></p> <script>setInterval(function() { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { var jsonResposta = JSON.parse(this.responseText); document.getElementById("valorSensor").innerHTML = jsonResposta.valor; } }; xhttp.open("GET", "/dados", true); xhttp.send(); }, 1000);</script> </body> </html> )rawliteral";
Explicação do Código
No código
Desafios Práticos: Experimentando com Múltiplos LEDsAprenda a controlar múltiplos LEDs com ESP32 em projetos IoT. Descubra desafios práticos, montagem de circuitos, programação e efeitos visuais incríveis! acima, fizemos as seguintes alterações:
- Leitura do Sensor
Programando o ESP32 para Integração de SensoresAprenda a programar o ESP32 e integrar sensores com técnicas de leitura e controle para projetos de IoT, do hardware ao código.: Simulamos a leitura de um sensor
Programando o ESP32 para Integração de SensoresAprenda a programar o ESP32 e integrar sensores com técnicas de leitura e controle para projetos de IoT, do hardware ao código. usando analogRead(34), onde o pino 34 é um pino analógico do ESP32
O que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia!. - Resposta a Solicitações AJAX: Quando o servidor recebe um
GET /dados, ele responde com um JSON contendo o valor do sensor
Programando o ESP32 para Integração de SensoresAprenda a programar o ESP32 e integrar sensores com técnicas de leitura e controle para projetos de IoT, do hardware ao código.. - Página HTML
Implementando Formulários Web para Controle no ESP32Descubra como utilizar formulários web no ESP32 para controlar dispositivos e automatizar seu ambiente de forma simples e eficaz. com JavaScript: A página servida inclui um script que faz solicitações AJAX periódicas ao servidor para atualizar o valor do sensor
Programando o ESP32 para Integração de SensoresAprenda a programar o ESP32 e integrar sensores com técnicas de leitura e controle para projetos de IoT, do hardware ao código. na página.
Entendendo o Código JavaScript🔗
No trecho de código
Desafios Práticos: Experimentando com Múltiplos LEDsAprenda a controlar múltiplos LEDs com ESP32 em projetos IoT. Descubra desafios práticos, montagem de circuitos, programação e efeitos visuais incríveis! HTML, o script JavaScript faz o seguinte:
<script>setInterval(function() { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { var jsonResposta = JSON.parse(this.responseText); document.getElementById("valorSensor").innerHTML = jsonResposta.valor; } }; xhttp.open("GET", "/dados", true); xhttp.send(); }, 1000);</script>
- setInterval: Define uma função para ser executada a cada 1000 milissegundos (1 segundo).
- XMLHttpRequest: Cria um objeto para realizar a solicitação AJAX.
- onreadystatechange: Define uma função que é chamada sempre que o estado da solicitação muda.
- responseText: Obtém a resposta do servidor como texto.
- JSON.parse: Converte o texto JSON recebido em um objeto JavaScript.
- Atualização do DOM: Atualiza o conteúdo do elemento com id
valorSensorcom o valor recebido.
Exemplo Prático: Monitorando Temperatura em Tempo Real🔗
Vamos agora implementar um exemplo prático onde o ESP32 lê a temperatura
🦠 Analisador de Qualidade da Água PortátilConfira o tutorial completo que integra sensores IoT e ESP32 para monitorar pH, turbidez, condutividade e temperatura em tempo real com relatórios PDF. de um sensor (por exemplo, o DHT11
Exibindo Dados de Sensores em Tempo Real no NavegadorAprenda a configurar o ESP32 para monitorar sensores em tempo real via navegador, integrando Wi-Fi e AJAX para visualização dinâmica.) e atualiza essa informação em uma página web
Integração com Aplicativos Móveis e WebDescubra como integrar ESP32 com aplicativos móveis e dashboards web, garantindo interatividade, controle remoto e segurança em seus projetos IoT. usando AJAX.
Componentes Necessários
- ESP32
O que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia! - Sensor DHT11
Exibindo Dados no Monitor Serial com ESP32Aprenda a configurar e exibir dados no Monitor Serial com ESP32, utilizando exemplos práticos e técnicas de depuração para otimizar seus projetos IoT. - Jumpers
Circuito
Conecte o sensor DHT11
Exibindo Dados no Monitor Serial com ESP32Aprenda a configurar e exibir dados no Monitor Serial com ESP32, utilizando exemplos práticos e técnicas de depuração para otimizar seus projetos IoT. ao ESP32 da seguinte forma:
- VCC
Conectando Sensores de Movimento PIR ao ESP32Aprenda a integrar sensores PIR com ESP32 neste tutorial completo, explorando montagem, ajustes e programação na Arduino IDE. do DHT11
Exibindo Dados de Sensores em Tempo Real no NavegadorAprenda a configurar o ESP32 para monitorar sensores em tempo real via navegador, integrando Wi-Fi e AJAX para visualização dinâmica. ao 3.3V do ESP32
O que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia! - GND
Conectando Sensores de Movimento PIR ao ESP32Aprenda a integrar sensores PIR com ESP32 neste tutorial completo, explorando montagem, ajustes e programação na Arduino IDE. do DHT11
Exibindo Dados de Sensores em Tempo Real no NavegadorAprenda a configurar o ESP32 para monitorar sensores em tempo real via navegador, integrando Wi-Fi e AJAX para visualização dinâmica. ao GND
Conectando Sensores de Movimento PIR ao ESP32Aprenda a integrar sensores PIR com ESP32 neste tutorial completo, explorando montagem, ajustes e programação na Arduino IDE. do ESP32
O que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia! - Data do DHT11
Exibindo Dados de Sensores em Tempo Real no NavegadorAprenda a configurar o ESP32 para monitorar sensores em tempo real via navegador, integrando Wi-Fi e AJAX para visualização dinâmica. ao pino GPIO
Desafios Práticos: Experimentando com Múltiplos LEDsAprenda a controlar múltiplos LEDs com ESP32 em projetos IoT. Descubra desafios práticos, montagem de circuitos, programação e efeitos visuais incríveis! 4 do ESP32
O que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia!
Código no ESP32
Inclua a biblioteca do DHT11 e ajuste o código
Desafios Práticos: Experimentando com Múltiplos LEDsAprenda a controlar múltiplos LEDs com ESP32 em projetos IoT. Descubra desafios práticos, montagem de circuitos, programação e efeitos visuais incríveis!:
#include <WiFi.h> #include "DHT.h" #define DHTPIN 4 #define DHTTYPE DHT11 const char* ssid = "SEU_SSID"; const char* password = "SUA_SENHA"; WiFiServer server(80); String header; DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(115200); dht.begin(); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Conectando ao Wi-Fi..."); } Serial.println("Conectado!"); Serial.print("Endereço IP: "); Serial.println(WiFi.localIP()); server.begin(); } void loop() { WiFiClient client = server.available(); if (client) { String currentLine = ""; while (client.connected()) { if (client.available()) { char c = client.read(); header += c; if (c == '\n') { if (currentLine.length() == 0) { if (header.indexOf("GET /dados") >= 0) { float temperatura = dht.readTemperature(); String jsonResponse = "{\"temperatura\":" + String(temperatura) + "}"; client.println("HTTP/1.1 200 OK"); client.println("Content-Type: application/json"); client.println("Connection: close"); client.println(); client.println(jsonResponse); break; } else { client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connection: close"); client.println(); client.println(index_html); break; } } else { currentLine = ""; } } else if (c != '\r') { currentLine += c; } } } header = ""; client.stop(); } } const char* index_html = R"rawliteral( <!DOCTYPE HTML><html> <head> <title>Monitor de Temperatura</title> </head> <body> <h1>Temperatura Atual</h1> <p>Temperatura: <span id="temperatura">--</span> °C</p> <script>setInterval(function() { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { var jsonResposta = JSON.parse(this.responseText); document.getElementById("temperatura").innerHTML = jsonResposta.temperatura; } }; xhttp.open("GET", "/dados", true); xhttp.send(); }, 2000);</script> </body> </html> )rawliteral";
Explicação Adicional
- Leitura do Sensor de Temperatura
Introdução aos Sensores de Temperatura e Umidade com ESP32Descubra como integrar sensores de temperatura e umidade ao ESP32 em projetos IoT. Tutorial prático com dicas, conexões e código para soluções inteligentes.: Utilizamos dht.readTemperature()para obter a temperatura
🦠 Analisador de Qualidade da Água PortátilConfira o tutorial completo que integra sensores IoT e ESP32 para monitorar pH, turbidez, condutividade e temperatura em tempo real com relatórios PDF. atual. - JSON: A resposta agora inclui o campo
"temperatura.
🦠 Analisador de Qualidade da Água PortátilConfira o tutorial completo que integra sensores IoT e ESP32 para monitorar pH, turbidez, condutividade e temperatura em tempo real com relatórios PDF." - Intervalo de Atualização: Ajustamos o intervalo para a cada 2 segundos (2000 milissegundos).
- Frontend: A página HTML
Implementando Formulários Web para Controle no ESP32Descubra como utilizar formulários web no ESP32 para controlar dispositivos e automatizar seu ambiente de forma simples e eficaz. exibe a temperatura atual em graus Celsius.
Considerações sobre Desempenho e Otimização🔗
Ao implementar atualização dinâmica com AJAX, é importante considerar:
- Intervalo de Atualização: Intervalos muito curtos podem sobrecarregar o servidor. Ajuste conforme a necessidade.
- Formato dos
Segurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Proteja a conexão Wi-Fi do ESP32 com dicas de criptografia, senhas fortes e monitoramento, garantindo segurança e integridade dos dados. Dados: Utilizar JSON é eficiente para troca de dados estruturados. - Tratamento de Erros
Tratamento de Erros e VerificaçãoDescubra como implementar tratamento de erros eficaz no ESP32, garantindo sistemas IoT mais seguros, confiáveis e de fácil manutenção.: Implemente verificações para lidar
🚧 Barreira Virtual com Sensores LidarExplore o uso de sensores Lidar integrados ao ESP32 para monitorar espaços, detectar intrusos e aprimorar a segurança com tecnologia de ponta. com falhas na comunicação. - Segurança
Segurança em MQTT: Autenticação e Criptografia no ESP32Descubra como proteger conexões MQTT em aplicações IoT com ESP32, implementando autenticação e criptografia TLS para segurança máxima.: Em aplicações reais, considere autenticação
Segurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Proteja a conexão Wi-Fi do ESP32 com dicas de criptografia, senhas fortes e monitoramento, garantindo segurança e integridade dos dados. e uso de HTTPS.
Conclusão🔗
A atualização dinâmica de páginas com AJAX no ESP32 permite criar interfaces web interativas e eficientes para monitoramento e controle de dispositivos
Controle de Dispositivos com ESP32 via BluetoothDescubra como controlar dispositivos com ESP32 via Bluetooth em projetos IoT. Aprenda a configurar circuitos e programar funcionalidades de automação. em tempo real. Ao entender os conceitos de AJAX e como aplicá-los no ESP32, você pode expandir seus projetos IoT, oferecendo experiências ricas aos usuários sem a necessidade de recarregar páginas inteiras.
Experimentar com diferentes sensores e ajustar os intervalos de atualização conforme suas necessidades permitirá que você otimize seu projeto para melhor desempenho
Dual-Core do ESP32: Como Funciona e BenefíciosDescubra como a arquitetura dual-core do ESP32 otimiza a performance em IoT e automação, distribuindo tarefas e gerenciando recursos com eficiência. e usabilidade. Continue explorando e inovando em suas aplicações com o ESP32 e as possibilidades que o AJAX oferece.
Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.
Referências🔗
- Arduino IDE Official Website: arduino.cc
- Documentação da Espressif: docs.espressif.com
- Documentação de Apresentação do ESP32: espressif.com/en/products/socs/esp32
- Documentação do ESP32 Arduino Core: docs.espressif.com/projects/arduino-esp32
há 12 meses atrás
há 12 meses atrás
há 12 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 12 meses atrás
há 12 meses atrás
há 12 meses atrás
há 12 meses atrás
há 12 meses atrás
há 12 meses atrás
há 12 meses atrás
há 12 meses atrás
há 12 meses atrás
há 12 meses atrás
há 12 meses atrás
há 12 meses atrás
há 12 meses atrás
há 12 meses atrás
há 12 meses atrás