Arduino UNO com Shield WiFi: Exibição de Temperatura em Tempo Real na Web via Serial
Componentes e Materiais
| Componente | Quantidade |
|---|---|
| Arduino UNO | 1 |
| PHPoC WiFi Shield 2 para Arduino | 1 |
| Sensor Temperatura DS18B20 (Adafruit) | 1 |
| Jumpers | 1 |
Sobre o Projeto
Usando apenas Serial.println(temperatura), enviamos temperatura via web. Com o Web Serial Plotter embutido, visualizamos temperatura na web SEM programação web.
Se é iniciante, aprenda sobre WiFi e sensor no Arduino: tutoriais WiFi e Arduino e Sensor DS18B20.
Demonstração
.
Como Funciona
- Arduino lê temperatura do sensor e envia via Serial.
- Acesse Web Serial Plotter no navegador do celular ou PC.
- Temperatura é encaminhada automaticamente para a Web.
- Web visualiza temperatura em gráfico.
- Por padrão, Web Serial Plotter funciona como Serial Plotter da IDE Arduino. Personalize para adicionar título eixos X/Y, faixa de temperatura e número de amostras exibidas. Feito via página de configurações.
Instruções Passo a Passo
1. Fiação
- Empilhe PHPoC WiFi Shield 2 ou PHPoC Shield 2 no Arduino.
- Fiação conforme imagens na seção Esquemáticos.
2. Compile e Carregue Código Arduino
Veja código em "Arduino Code - Short Sampling Period".
3. Personalize Web Serial Plotter
- Acesse Web Serial Plotter digitando endereço IP do PHPoC WiFi Shield.
- Clique link "Setup" para página de personalização.
- Personalize parâmetros como acima e Salve.
4. Resultado
- Clique botão Connect para ver resultado.
Monitoramento de Temperatura em Longo Período
Se amostragem em intervalo pequeno (ex: segundos), basta imprimir temperatura no Serial, pois podemos esperar o gráfico.
E se quisermos monitorar diariamente ou por hora? Não dá para esperar ver todo gráfico.
Solução: armazene as últimas N amostras no Arduino e imprima frequentemente.
Exemplo: queremos gráfico de 100 horas, unidade = hora. Leia sensor a cada hora, armazene em fila circular (tamanho 100). A cada segundo, imprima todas as 100 amostras. Assim vemos gráfico das últimas 100 horas sem esperar 100 horas.
Código em "Arduino Code - Long Sampling Period".
Melhor Kit Arduino Iniciante
Veja Melhor Kit Arduino para Iniciantes.
Código
Arduino Code - Short Sampling Period
#include
#include
#include
#define SAMPLE_INTERVAL 1000 // em ms
// Fio de dados no pino 8 do Arduino
OneWire oneWire(8);
DallasTemperature sensors(&oneWire);
unsigned long lastSampleTime;
void setup() {
Serial.begin(9600);
while(!Serial);
sensors.begin();
Phpoc.begin();
lastSampleTime = millis();
}
void loop() {
if ((millis() - lastSampleTime) > SAMPLE_INTERVAL) {
sensors.requestTemperatures();
float temp = sensors.getTempCByIndex(0);
Serial.println(temp);
lastSampleTime = millis();
}
}
Arduino Code - Long Sampling Period (diário, horário...)
#include
#include
#include
#define UPDATE_INTERVAL 1000 // em ms
#define SAMPLE_INTERVAL 60*60*1000 // 1 hora
OneWire oneWire(8);
DallasTemperature sensors(&oneWire);
unsigned long lastSampleTime;
unsigned long lastUpdateTime;
float temps[100];
int index;
void setup() {
Serial.begin(9600);
while(!Serial);
sensors.begin();
Phpoc.begin();
lastSampleTime = millis();
lastUpdateTime = millis();
index = 0;
}
void loop() {
// Amostragem a cada hora
if ((millis() - lastSampleTime) > SAMPLE_INTERVAL) {
sensors.requestTemperatures();
float temp = sensors.getTempCByIndex(0);
temps[index] = temp;
index = (index + 1) % 100;
lastSampleTime = millis();
}
// Atualização web a cada segundo
if ((millis() - lastUpdateTime) > UPDATE_INTERVAL) {
for (int i = 0; i < 100; i++) {
Serial.println(temps[(index - i + 100) % 100]);
}
lastUpdateTime = millis();
}
}
Esquemáticos
- Empilhe PHPoC WiFi Shield 2 ou PHPoC Shield 2 no Arduino.
- Fiação conforme imagem abaixo.
Processo de manufatura
- Monitoramento em Tempo Real de Temperatura e Umidade via Web no Raspberry Pi 4
- Monitoramento Contínuo de Temperatura e Umidade no Raspberry Pi com EzTemp
- Sistema de Iluminação DMX Controlado via Web – Controlador Mestre Arduino
- Programe Facilmente a Série Atmel AT89 com Arduino Uno – Guia Passo a Passo
- Registrador de Temperatura e Umidade com Arduino, DHT11 e Ethernet Shield
- Portão de Triagem de Temperatura Sem Contato para Monitoramento Rápido e Preciso
- Proteja seu Arduino com Desbloqueio por Padrão Web – Configuração Fácil e Controle Remoto
- Sistema Inteligente de Monitoramento de Temperatura para Escolas: Preciso, Tempo Real e Seguro
- Kit Defumador a Carvão com Controle Preciso de Temperatura – Construa sua Obra-Prima de BBQ
- Plotter XY Controlado via Web com Arduino e Motores de Passo