Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
Hola chicos, hoy haremos un sistema de monitoreo de humedad y temperatura usando el sensor de temperatura ESP 8266 NODEMCU y DHT11. La temperatura y la humedad se obtendrán del sensor DHT11 y se puede ver en un navegador cuya página web será administrada por esp 8266 alojándola en un servidor web local.
Paso 1: Cosas que necesita
Necesita lo siguiente para este proyecto: 1x ESP 8266 Nodemcu:
1x DHT11: https://www.utsource.net/itm/p/8831706.html 1x tablero:.:
Pocos puentes:
Paso 2: circuito
El circuito es muy fácil de conectar todo según se muestra en schmatics
Paso 3: Obtenga las bibliotecas
Abra su IDE de Arduino y vaya a Sketch> Incluir biblioteca> Administrar bibliotecas. El Administrador de bibliotecas debería abrirse. Busque "DHT" en el cuadro de búsqueda e instale la biblioteca DHT de Adafruit. Después de instalar la biblioteca DHT de Adafruit, escriba "Adafruit Unified Sensor" en el cuadro de búsqueda. Desplácese hacia abajo para encontrar la biblioteca e instálela. Después de instalar las bibliotecas, reinicie su IDE de Arduino.
Paso 4: Código
Después de hacer las cosas anteriores, cargue el siguiente código en ESP8266 nodemcu (seleccione el puerto y la placa adecuados) y antes de cargar el código, ingrese el ssid y la contraseña de su wifi en el código: // Incluyendo la biblioteca WiFi ESP8266 # incluya #include "DHT. h "// ¡Descomente una de las líneas siguientes para cualquier tipo de sensor DHT que esté usando! #define DHTTYPE DHT11 // DHT 11 // # define DHTTYPE DHT21 // DHT 21 (AM2301) // # define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 // Reemplazar con los detalles de su redconst char * ssid = "YOUR_NETWORK_NAME"; const char * password = "YOUR_NETWORK_PASSWORD"; // Servidor web en el puerto 80WiFiServer server (80); // DHT Sensorconst int DHTPin = 5; // Inicializar sensor DHT. DHT dht (DHTPin, DHTTYPE); // Variables temporalesstatic char celsiusTemp [7]; static char fahrenheitTemp [7]; static char humedadTemp [7]; // solo se ejecuta una vez en bootvoid setup () { // Inicializando el puerto serie con fines de depuración Serial.begin (115200); retraso (10); dht.begin (); // Conectando a la red WiFi Serial.println (); Serial.print ("Conectando a"); Serial.println (ssid); WiFi.begin (ssid, contraseña); while (WiFi.status ()! = WL_CONNECTED) {retraso (500); Serial.print ("."); } Serial.println (""); Serial.println ("WiFi conectado"); // Iniciando el servidor web server.begin (); Serial.println ("Servidor web en ejecución. Esperando la IP de ESP…"); retraso (10000); // Imprimiendo la dirección IP de ESP Serial.println (WiFi.localIP ());} // se ejecuta una y otra vezvoid loop () {// Escucha de nuevos clientes WiFiClient client = server.available (); if (cliente) {Serial.println ("Nuevo cliente"); // bolean para localizar cuándo finaliza la solicitud http boolean blank_line = true; while (client.connected ()) {if (client.available ()) {char c = client.read (); if (c == '\ n' && blank_line) {// Las lecturas del sensor también pueden tener hasta 2 segundos de 'antigüedad' (es un sensor muy lento) float h = dht.readHumidity (); // Leer la temperatura como Celsius (por defecto) float t = dht.readTemperature (); // Lee la temperatura como Fahrenheit (isFahrenheit = true) float f = dht.readTemperature (true); // Compruebe si alguna lectura falló y salga antes (para volver a intentarlo). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println ("¡No se pudo leer el sensor DHT!"); strcpy (celsiusTemp, "Falló"); strcpy (fahrenheitTemp, "Falló"); strcpy (TemperatureTemp, "Falló"); } else {// Calcula los valores de temperatura en Celsius + Fahrenheit y Humedad float hic = dht.computeHeatIndex (t, h, false); dtostrf (hic, 6, 2, celsiusTemp); flotador hif = dht.computeHeatIndex (f, h); dtostrf (hif, 6, 2, fahrenheitTemp); dtostrf (h, 6, 2, humedadTemp); // Puede eliminar los siguientes Serial.print's, es solo con fines de depuración Serial.print ("Humedad:"); Serial.print (h); Serial.print ("% / t Temperatura:"); Serial.print (t); Serial.print ("* C"); Serial.print (f); Serial.print ("* F / t Índice de calor:"); Serial.print (hic); Serial.print ("* C"); Serial.print (hif); Serial.print ("* F"); Serial.print ("Humedad:"); Serial.print (h); Serial.print ("% / t Temperatura:"); Serial.print (t); Serial.print ("* C"); Serial.print (f); Serial.print ("* F / t Índice de calor:"); Serial.print (hic); Serial.print ("* C"); Serial.print (hif); Serial.println ("* F"); } client.println ("HTTP / 1.1 200 OK"); client.println ("Tipo de contenido: texto / html"); client.println ("Conexión: cerrar"); cliente.println (); // su página web real que muestra el cliente de temperatura y humedad
Paso 5: Obtén la IP
Usted ve la temperatura y la humedad que necesitamos para obtener la IP de la página web. Entonces, para eso, asegúrese de que su esp8266 esté conectado a su PC y luego abra el monitor en serie y en el monitor en serie puede ver la IP de la página web de su servidor web ESP8266.
Paso 6: verifique su temperatura y humedad en el navegador
Entonces, después de obtener la IP de su ESP8266 nodemcu, simplemente abra el navegador en la PC o el dispositivo móvil, pero asegúrese de que su PC / dispositivo móvil esté conectado a la misma red que su Nodemcu / ESP8266 y luego vaya a su navegador (si está usando un dispositivo móvil, use el navegador predeterminado es decir, para Android use Chrome) y luego escriba la IP que obtuvimos en el paso anterior y la página web local se mostrará con la humedad y la temperatura como se muestra en la imagen. Así que diviértase haciendo su monitor de temperatura y humedad de la habitación.