Exemplo ESP32 WebPlotter - Tutorial de Visualização de Dados em Tempo Real
Visão Geral
O exemplo WebPlotter cria uma interface de visualização de dados em tempo real acessível por qualquer navegador web. Projetado para a plataforma educacional ESP32, com recursos avançados de processamento de dados, plotagem em tempo real e integração perfeita com sistemas de monitoramento de sensores. Perfeito para visualizar dados de sensores, depurar algoritmos ou monitorar o desempenho do sistema em tempo real.
Assista a este tutorial em vídeo passo a passo mostrando como usar um sensor DHT com o app Web Plotter:
Recursos
Plotagem de Dados em Tempo Real: Visualize os dados do sensor conforme eles chegam do Arduino
Várias Séries de Dados: Plote até 8 fluxos de dados diferentes ao mesmo tempo
Escala Automática: Escala automática do eixo Y com base na faixa dos dados
Interface Interativa: Amplie, desloque e analise as tendências dos dados
Comunicação WebSocket: Atualizações instantâneas com latência mínima
Design Responsivo: Funciona em desktop, tablet e celular
Configuração Personalizável: Títulos do gráfico, rótulos dos eixos e faixas ajustáveis
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.
Clique no botão Upload na Arduino IDE para carregar o código no ESP32
Abra o Serial Monitor
Veja o resultado no Serial Monitor. Ele será parecido com o abaixo
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
DIYables WebApp - Web Plotter Example
INFO: Added app /
INFO: Added app /web-plotter
DIYables WebApp Library
Platform: ESP32
Network connected!
IP address: 192.168.0.2
HTTP server started on port 80
Configuring WebSocket server callbacks...
WebSocket server started on port 81
WebSocket URL: ws://192.168.0.2:81
WebSocket server started on port 81
==========================================
DIYables WebApp Ready!
==========================================
📱 Web Interface: http://192.168.0.2
🔗 WebSocket: ws://192.168.0.2:81
📋 Available Applications:
🏠 Home Page: http://192.168.0.2/
📊 Web Plotter: http://192.168.0.2/web-plotter
==========================================
Ln 11, Col 1
ESP32 Dev Module on COM15
2
Se você não vir nada, reinicie a placa ESP32.
Anote o endereço IP exibido e digite esse endereço na barra de endereços de um navegador web no seu celular ou PC.
Exemplo: http://192.168.0.2
Você verá a home page como na imagem abaixo:
Clique no link Web Plotter e você verá a interface do app Web Plotter como abaixo:
Você também pode acessar a página diretamente pelo endereço IP seguido de /web-plotter. Por exemplo: http://192.168.0.2/web-plotter
Veja o ESP32 gerar dados de sensor simulados e plotá-los em tempo real. Você verá várias linhas coloridas representando diferentes fluxos de dados.
Personalização Criativa - Visualize Seus Dados de Forma Criativa
Transforme a interface de plotagem para atender aos requisitos exclusivos do seu projeto e crie visualizações de dados impressionantes:
Configuração da Fonte de Dados
Substitua os dados simulados por leituras reais de sensores:
Método 1: Leitura de um Único Sensor
void sendTemperatureData() {float temperature = analogRead(A0) * (5.0 / 1023.0) * 100; // LM35 temperature sensor webPlotterPage.sendPlotData(temperature);}
float movingAverage(float newValue) {staticfloat readings[10];staticint index = 0;staticfloat total = 0; total -= readings[index]; readings[index] = newValue; total += readings[index]; index = (index + 1) % 10;return total / 10.0;}void sendFilteredData() {float rawValue = analogRead(A0);float filteredValue = movingAverage(rawValue); webPlotterPage.sendPlotData(rawValue / 10.0, filteredValue / 10.0);}
Registro de Dados com Timestamps
void sendTimestampedData() {unsignedlong currentTime = millis() / 1000;float sensorValue = analogRead(A0) / 10.0;// Send time and value as separate data series webPlotterPage.sendPlotData(currentTime, sensorValue);// Also log to Serial for debuggingSerial.print("Time: ");Serial.print(currentTime);Serial.print("s, Value: ");Serial.println(sensorValue);}
Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!