- Componentes necessários:
- Sensor de temperatura LM35:
- Conectando LM35 com NodeMCU:
- Explicação do código:
- Código HTML para exibir a temperatura na página da web:
- Trabalhando:
No tutorial anterior Getting start with NodeMCU, vimos O que é NodeMCU e como podemos programá-lo usando o IDE do Arduino . Como você sabe, o NodeMCU tem um chip Wi-Fi interno, então ele também pode se conectar à internet. É muito útil construir projetos IoT. Anteriormente, usamos o ThingSpeak com o Arduino para fazer o termômetro IoT, mas aqui criaremos nossa própria página da Web para exibir a temperatura.
Neste tutorial iremos explorar mais sobre este interessante MCU e, lentamente, mergulharemos no mundo da Internet das coisas conectando o NodeMCU com a Internet. Aqui usaremos este módulo para obter a temperatura ambiente no navegador da web, ou seja, faremos um servidor da web para exibir a temperatura usando o LM35 como sensor de temperatura.
Componentes necessários:
- NodeMCU - ESP12
- Sensor de temperatura LM35
- Tábua de pão
- Conectores macho-fêmea
Sensor de temperatura LM35:
LM35 é um sensor de temperatura linear analógico. Sua saída é proporcional à temperatura (em graus Celsius). A faixa de temperatura de operação é de -55 ° C a 150 ° C. A tensão de saída varia em 10mV em resposta a cada aumento ou queda de temperatura de o C. Ele pode ser operado com alimentação de 5 V ou 3,3 V e a corrente de espera é inferior a 60uA.
Observe que o LM35 está disponível em 3 variações da série, nomeadamente as séries LM35A, LM35C e LM35D. A principal diferença está na gama de medições de temperatura. A série LM35D é projetada para medir 0 a 100 graus Celsius, enquanto a série LM35A é projetada para medir uma faixa mais ampla de -55 a 155 graus Celsius. A série LM35C foi projetada para medir de -40 a 110 graus Celsius.
Já usamos o LM35 com muitos outros microcontroladores para medir a temperatura:
- Termômetro digital usando microcontrolador LM35 e 8051
- Medição de temperatura usando LM35 e microcontrolador AVR
- Termômetro digital usando Arduino e sensor de temperatura LM35
- Medição da temperatura ambiente com Raspberry Pi
Conectando LM35 com NodeMCU:
O diagrama de circuito para conectar LM35 com NodeMCU é dado abaixo:
O LM35 é um sensor analógico, então temos que converter esta saída analógica para digital. Para isso, usamos o pino ADC de NodeMCU, que é definido como A0. Vamos conectar a saída do LM35 ao A0.
Temos 3,3 V como tensão de saída nos pinos do NodeMCU. Portanto, usaremos 3,3 V como Vcc para o LM35.
Explicação do código:
O código completo com vídeo de demonstração é fornecido no final do artigo. Aqui estamos explicando algumas partes do código. Já explicamos como fazer upload do código no MCU usando Arduino IDE.
Primeiro, temos que incluir a biblioteca ESP8266wifi para acessar as funções Wi-Fi.
#incluir
Em seguida, digite seu nome e senha do Wi-Fi no campo SSID e senha . Também inicializou as variáveis e inicie o servidor na porta 80 com baud rate 115200.
const char * ssid = "*********"; // Seu ssid const char * password = "***********"; // Sua senha float temp_celsius = 0; float temp_fahrenheit = 0; Servidor WiFiServer (80); configuração vazia () { Serial.begin (115200);
A conexão de Wi-Fi é estabelecida chamando essas funções.
Serial.println (); Serial.println (); Serial.print ("Conectando a"); Serial.println (ssid); WiFi.begin (ssid, senha);
A conexão pode levar alguns segundos para ser estabelecida, então continue mostrando '…' até que a conexão não seja estabelecida. Então, o sistema continuará esperando e verificando se um cliente se conecta…
enquanto (WiFi.status ()! = WL_CONNECTED) { atraso (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi está conectado"); server.begin (); Serial.println ("Servidor iniciado"); Serial.println (WiFi.localIP ()); }
Na seção de loop , leia os valores do sensor e converta-os em Celsius e Fahrenheit e exiba esses valores no monitor serial.
void loop () { temp_celsius = (analogRead (A0) * 330,0) / 1023,0; // Para converter valores analógicos para Celsius Temos 3,3 V em nossa placa e sabemos que a tensão de saída do LM35 varia em 10 mV a cada aumento / queda de grau Celsius. Portanto, (A0 * 3300/10 ) / 1023 = celsius temp_fahrenheit = celsius * 1,8 + 32,0; Serial.print ("Temperatura ="); Serial.print (temp_celsius); Serial.print ("Celsius,");
Código HTML para exibir a temperatura na página da web:
Estamos exibindo a temperatura em uma página da web para que possa ser acessada de qualquer lugar do mundo através da internet. O código HTML é muito simples; só temos que usar a função client.println para ecoar cada linha do código HTML, para que o navegador possa executá-lo.
Esta parte mostra o código HTML para criar uma página da web que exibe o valor da temperatura.
Cliente WiFiClient = server.available (); client.println ("HTTP / 1.1 200 OK"); client.println ("Content-Type: text / html"); client.println ("Conexão: fechar"); // a conexão será fechada após a conclusão da resposta client.println ("Refresh: 10"); // atualiza a página após 10 segundos client.println (); client.println (""); client.println (""); client.print ("
Termômetro digital
"); client.print ("Temperatura (* C) = "); client.println (temp_celsius); client.print ("
Temperatura (F) = "); client.println (temp_fahrenheit); client.print ("
"); client.println (" "); atraso (5000); }Trabalhando:
Depois de enviar o código usando o Arduino IDE, abra o monitor serial e pressione o botão Reset no NodeMCU.
Agora você pode ver que a placa está conectada à rede Wi-Fi que você definiu no seu código e também que você obteve o IP. Copie este IP e cole em qualquer navegador da web. Certifique-se de que seu sistema no qual você está executando o navegador da web esteja conectado à mesma rede.
Seu termômetro digital está pronto e a temperatura será atualizada automaticamente no navegador da web a cada 10 segundos.
Para tornar esta página da Web acessível a partir da Internet, você só precisa definir o encaminhamento de porta em seu roteador / modem. Verifique o código completo e o vídeo abaixo.
Verifique também:
- Estação meteorológica Raspberry Pi: monitoramento de umidade, temperatura e pressão pela Internet
- Monitoramento ao vivo de temperatura e umidade pela Internet usando Arduino e ThingSpeak