Arduino - Enviar temperatura para a Web via serial
Componentes e suprimentos
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Sobre este projeto
Apenas usando Serial.println (temperatura), podemos enviar temperatura via web. Usando um Web Serial Plotter integrado, podemos visualizar a temperatura na web SEM programação para a web.
Se você é um iniciante, pode aprender sobre wi-fi e sensor nos tutoriais de sensores de temperatura Arduino - Wifi e Arduino - DS18B20
Demonstração
.
Como funciona
- Arduino lê o valor da temperatura do sensor e o envia via serial
- Acesse o plotter serial da web a partir de um navegador no celular ou PC
- A temperatura é encaminhada automaticamente para a Web.
- A web visualiza a temperatura na web
- Por padrão, o Web Serial Plotter funciona da mesma forma que o Serial Plotter no Arduino IDE. Precisamos personalizá-lo para adicionar o título do eixo X, título do eixo Y, faixa de temperatura e o número das amostras de dados exibidas também. Isso pode ser feito por meio de uma página de configuração.
Instruções passo a passo
1. Fiação
- Empilhar PHPoC Wifi Shield 2 ou PHPoC Shield 2 no Arduino
- Fiação como imagens na parte esquemática
2. Compilar e fazer upload do código do Arduino
Veja o código em "Código Arduino - Short Sampling Period"
3. Personalize o plotter serial da web
- Acesse o plotter serial da web digitando o endereço IP do PHPoC WiFi Shield
- Clique no link "Configuração" para a página de personalização
- Personalize os parâmetros acima e salve
4. Resultado
- Clique no botão conectar para ver o resultado
Monitorando a temperatura durante um longo período
Se a temperatura for amostragem em um intervalo pequeno (por exemplo, segundos), precisamos apenas imprimir o valor da temperatura em Serial porque podemos esperar para ver o gráfico.
O que acontecerá se quisermos monitorar a temperatura diariamente ou de hora em hora? NÃO podemos esperar para ver todo o gráfico.
Solução :armazenamos o número das últimas temperaturas de amostragem no Arduino e o imprimimos com frequência.
Por exemplo, queremos ver a temperatura exibida no gráfico durante 100 horas. A unidade é uma hora. Precisamos ler os dados do sensor a cada hora, armazená-los em uma fila circular (o comprimento da fila é 100). A cada segundo, imprimimos todos os 100 dados de amostra. Portanto, podemos ver o gráfico de temperatura durante as últimas 100 horas sem esperar por 100 horas.
Você pode ver o código em "Código Arduino - Long Sampling Period"
O melhor Arduino Starter Kit para iniciantes
Veja o melhor kit Arduino para iniciantes
Código
- Código Arduino - curto período de amostragem
- Código Arduino - longo período de amostragem (diário, de hora em hora ...)
Código Arduino - Período de amostragem curto Arduino
#include#include #include #define SAMPLE_INTERVAL 1000 // em ms // O fio de dados está conectado à porta 8 no ArduinoOneWire oneWire (8); DallasTemperature sensores (&oneWire); unsigned long lastSampleTime; void setup () {Serial.begin (9600); while (! Serial); sensores.begin (); Phpoc.begin (); lastSampleTime =millis ();} void loop () {if ((millis () - lastSampleTime)> SAMPLE_INTERVAL) {sensores.requestTemperatures (); float temp =sensores.getTempCByIndex (0); Serial.println (temp); lastSampleTime =millis (); }}
Código Arduino - Longo período de amostragem (diário, de hora em hora ...) Arduino
#include#include #include #define UPDATE_INTERVAL 1000 // em ms # define SAMPLE_INTERVAL 60 * 60 * 1000 // 1 hora // O fio de dados está conectado na porta 8 no ArduinoOneWire oneWire (8); Sensores DallasTemperature (&oneWire); unsigned long lastSampleTime; unsigned long lastUpdateTime; float temps [100]; int index; void setup () {Serial.begin (9600); while (! Serial); sensores.begin (); Phpoc.begin (); lastSampleTime =millis (); lastUpdateTime =millis (); índice =0;} void loop () {if ((millis () - lastSampleTime)> SAMPLE_INTERVAL) {sensores.requestTemperatures (); float temp =sensores.getTempCByIndex (0); temps [índice] =temp; índice =(índice + 1)% 100; lastSampleTime =millis (); } if ((millis () - lastUpdateTime)> UPDATE_INTERVAL) {for (int i =0; i <100; i ++) {Serial.println (temps [(índice - i + 100)% 100]); } lastUpdateTime =millis (); }}
Esquemas
1. Empilhar PHPoC Wifi Shield 2 ou PHPoC Shield 2 no Arduino2. Fiação como a imagem abaixo
Processo de manufatura
- Obter umidade / temperatura da web
- Temperatura e umidade fáceis no Raspberry Pi
- Controlador DMX operado pela web
- Programação da série Atmel AT89 via Arduino
- Registrador de dados de temperatura e umidade
- Porta de monitoramento de temperatura sem contato
- Arduino - Desbloqueio de Padrão da Web
- Monitoramento de temperatura SMART para escolas
- Fumador de carvão com temperatura controlada
- Arduino - Desenho via Web usando o controlador de motor de passo