Termómetro Digital
Termómetro Digital
Termómetro Digital
IOT
LM35 es un sensor analógico, así que tenemos que convertir esta salida analógica a digital. Para esto
usamos el pin ADC de NodeMCU que se define como A0. Conectaremos la salida de 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:
Debemos incluir la biblioteca ESP8266wifi para acceder a las funciones de Wi-Fi.
#include <ESP8266WiFi.h>
float temp_celsius = 0;
float temp_fahrenheit = 0;
WiFiServer server(80);
void setup() {
Serial.begin(115200);
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
La conexión puede tardar unos segundos en establecerse, así que siga mostrando "..."
hasta que la conexión no se establezca. Entonces el sistema seguirá esperando y
buscando un cliente para conectarse ...
delay(500);
Serial.print(".");
Serial.println("");
Serial.println("WiFi is connected");
server.begin();
Serial.println("Server started");
Serial.println(WiFi.localIP());
En la sección de bucle, lea los valores de los sensores y conviértalos a grados Celsius
y Fahrenheit y muestre estos valores en el monitor serie.
void loop() {
Serial.print(temp_celsius);
Estamos mostrando la temperatura en una página web para que pueda ser 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 repetir cada línea del código HTML,
de modo que el navegador pueda ejecutarlo. Esta parte muestra el código HTML para
crear una página web que muestra el valor de la temperatura.
client.println("Content-Type: text/html");
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println(temp_celsius);
client.println(temp_fahrenheit);
client.print("</p>");
client.println("</html>");
delay(5000);
}
Trabajando:
Después de cargar el código con Arduino IDE, abra el monitor serie y presione el botón
Restablecer 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. Copia esta IP y pégala en cualquier navegador web. Asegúrese
de que su sistema en el que está ejecutando el navegador web esté conectado a la
misma red.
Code
#include <ESP8266WiFi.h>
const char* ssid = "*********"; // Your ssid
const char* password = "***********"; // Your Password
float temp_celsius = 0;
float temp_fahrenheit = 0;
WiFiServer server(80);
void setup() {
Serial.begin(115200);
pinMode(A0, INPUT);
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi is connected");
server.begin();
Serial.println("Server started");
Serial.println(WiFi.localIP());
}
void loop() {
temp_celsius = (analogRead(A0) * 330.0) / 1023.0; // To convert analog values to Celsius We
have 3.3 V on our board and we know that output voltage of LM35 varies by 10 mV to every
degree Celsius rise/fall. So , (A0*3300/10)/1023 = celsius
temp_fahrenheit = celsius * 1.8 + 32.0;
Serial.print(" Temperature = ");
Serial.print(temp_celsius);
Serial.print(" Celsius, ");
Serial.print(temp_fahrenheit);
Serial.println(" Fahrenheit");
WiFiClient client = server.available();
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close"); // the connection will be closed after completion of the
response
client.println("Refresh: 10"); // update the page after 10 sec
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.print("<p style='text-align: center;'><span style='font-size: x-large;'><strong>Digital
Thermometer</strong></span></p>");
client.print("<p style='text-align: center;'><span style='color: #0000ff;'><strong style='font-size:
large;'>Temperature (*C)= ");
client.println(temp_celsius);
client.print("<p style='text-align: center;'><span style='color: #0000ff;'><strong style='font-size:
large;'>Temperature (F) = ");
client.println(temp_fahrenheit);
client.print("</p>");
client.println("</html>");
delay(5000);
}