- Componentes requeridos:
- Sensor de temperatura LM35:
- Conexión de LM35 con NodeMCU:
- Explicación del código:
- Código HTML para mostrar la temperatura en la página web:
- Trabajando:
En el tutorial anterior de Introducción a NodeMCU, vimos Qué es NodeMCU y cómo podemos programarlo usando Arduino IDE . Como sabe, NodeMCU tiene un chip Wi-Fi en su interior, por lo que también puede conectarse a Internet. Es muy útil para construir proyectos de IoT. Anteriormente usamos ThingSpeak con Arduino para hacer un termómetro de IoT, pero aquí crearemos nuestra propia página web para mostrar la temperatura.
En este tutorial exploraremos más sobre este interesante MCU y lentamente nos sumergiremos en el mundo de Internet de las cosas conectando NodeMCU con Internet. Aquí usaremos este módulo para obtener la temperatura ambiente en el navegador web, es decir, crearemos un servidor web para mostrar la temperatura usando LM35 como sensor de temperatura.
Componentes requeridos:
- NodeMCU - ESP12
- Sensor de temperatura LM35
- Tablero de circuitos
- Conectores macho-hembra
Sensor de temperatura LM35:
LM35 es un sensor de temperatura lineal analógico. Su salida es proporcional a la temperatura (en grados Celsius). El rango de temperatura de funcionamiento es de -55 ° C a 150 ° C. El voltaje de salida varía en 10 mV en respuesta a cada o C de subida o bajada de temperatura. Puede funcionar con una fuente de alimentación de 5 V y 3,3 V y la corriente en espera es inferior a 60uA.
Tenga en cuenta que LM35 está disponible en 3 variaciones de la serie, a saber, las series LM35A, LM35C y LM35D. La principal diferencia está en su rango de medidas de temperatura. La serie LM35D está diseñada para medir de 0 a 100 grados Celsius, mientras que la serie LM35A está diseñada para medir un rango más amplio de -55 a 155 grados Celsius. La serie LM35C está diseñada para medir de -40 a 110 grados Celsius.
Ya hemos utilizado LM35 con muchos otros microcontroladores para medir la temperatura:
- Termómetro digital con microcontrolador LM35 y 8051
- Medición de temperatura con microcontrolador LM35 y AVR
- Termómetro digital con sensor de temperatura Arduino y LM35
- Medición de temperatura ambiente con Raspberry Pi
Conexión de LM35 con NodeMCU:
El diagrama de circuito para conectar LM35 con NodeMCU se muestra a continuación:
El LM35 es un sensor analógico, por lo que tenemos que convertir esta salida analógica en digital. Para esto usamos el pin ADC de NodeMCU que se define como A0. Conectaremos la salida del LM35 a A0.
Tenemos 3.3 V como voltaje de salida en los pines de NodeMCU. Entonces, usaremos 3.3V como Vcc para LM35.
Explicación del código:
El código completo con video de demostración se encuentra al final del artículo. Aquí estamos explicando algunas partes del código. Ya explicamos cómo cargar código en MCU usando Arduino IDE.
Primero, tenemos que incluir la biblioteca ESP8266wifi para acceder a las funciones de Wi-Fi.
#incluir
Luego ingrese su nombre y contraseña de Wi-Fi en el campo ssid y contraseña . También inicializó las variables e inicie el servidor en el puerto 80 con una velocidad de 115200 baudios.
const char * ssid = "*********"; // Su ssid const char * password = "***********"; // Su contraseña float temp_celsius = 0; float temp_fahrenheit = 0; Servidor WiFiServer (80); configuración vacía () { Serial.begin (115200);
La conexión de Wi-Fi se establece llamando a estas funciones.
Serial.println (); Serial.println (); Serial.print ("Conectando a"); Serial.println (ssid); WiFi.begin (ssid, contraseña);
La conexión puede tardar unos segundos en establecerse, así que siga mostrando "…" hasta que no se establezca la conexión. Luego, el sistema seguirá esperando y verificando que un cliente se conecte…
while (WiFi.status ()! = WL_CONNECTED) { retraso (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi está conectado"); server.begin (); Serial.println ("Servidor iniciado"); Serial.println (WiFi.localIP ()); }
En la sección de lazo , lea los valores del sensor y conviértalos en grados Celsius y Fahrenheit y muestre estos valores en el monitor en serie.
bucle vacío () { temp_celsius = (analogRead (A0) * 330.0) / 1023.0; // Para convertir valores analógicos a Celsius Tenemos 3.3 V en nuestra placa y sabemos que el voltaje de salida de LM35 varía en 10 mV por cada grado Celsius de subida / bajada. Entonces, (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 mostrar la temperatura en la página web:
Estamos mostrando la temperatura en una página web para que sea accesible desde cualquier parte del mundo a través de Internet. El código HTML es muy simple; solo tenemos que usar la función client.println para hacer eco de cada línea del código HTML, para que el navegador pueda ejecutarlo.
Esta parte muestra código HTML para crear una página web que muestra el valor de temperatura.
Cliente WiFiClient = servidor disponible (); client.println ("HTTP / 1.1 200 OK"); client.println ("Tipo de contenido: texto / html"); client.println ("Conexión: cerrar"); // la conexión se cerrará después de completar la respuesta client.println ("Refresh: 10"); // actualiza la página después de 10 segundos client.println (); client.println (""); client.println (""); client.print ("
Termómetro digital
"); client.print ("Temperatura (* C) = "); cliente.println (temp_celsius); cliente.print ("
Temperatura (F) = "); cliente.println (temp_fahrenheit); cliente.print ("
"); client.println (" "); retraso (5000); }Trabajando:
Después de cargar el código usando Arduino IDE, abra el monitor serial y presione el botón Reset en NodeMCU.
Ahora, puede ver que la placa está conectada a la red Wi-Fi que ha definido en su código y también tiene la IP. Copie esta IP y péguela en cualquier navegador web. Asegúrese de que su sistema en el que está ejecutando el navegador web esté conectado a la misma red.
Su termómetro digital está listo y la temperatura se actualizará automáticamente en el navegador web después de cada 10 segundos.
Para que esta página web sea accesible desde Internet, solo necesita configurar el reenvío de puertos en su enrutador / módem. Verifique el código completo y el video a continuación.
Verifique también:
- Estación meteorológica Raspberry Pi: monitoreo de humedad, temperatura y presión a través de Internet
- Monitoreo de temperatura y humedad en vivo a través de Internet usando Arduino y ThingSpeak