|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  AutoIt (Programación) Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  Teleco - Emisora de A.M. Visual Basic Cosas de Windows Webs interesantes
T Búsqueda en este sitio:


.

NodeMCU en español
NodeMCU - Juan Antonio Villalpando

-- Tutorial de NodeMCU en español --

Volver al índice del tutorial NodeMCU

____________________________

64.- NodeMCU, sensor de temperatura y humedad. Web Server. WiFi.

- Tenemos nuestro NodeMCU y un sensor de temperatura y humedad DHT11.

- Convertimos al NodeMCU en un Servidor Web en nuestra red doméstica WiFi, creamos una página web en ese servidor.

- Los usuarios que se conecten por WiFi a esa red y escriban la dirección web del Servidor Web NodeMCU, verán una página web con información de temperatura y humedad.

___________________________________________________
1.- Conexionado del NodeMCU y la pantalla LCD.

- Realizamos esta conexión.

- Fíjate, los datos están conectados al terminal D5 del NodeMCU, que se corresponde en el código al terminal 14 del ESP8266.

- Si conectamos el NodeMCU por USB al ordenador, tendremos en el terminal VV, una tensión de 5V, que son los que necesita el módulo DHT11.

___________________________________________________
2.- Librerías.

- Es muy importante buscar y encontrar las librerías apropiadas ya que de ellas resultará el funcionamiento o no del montaje.

- Aquí he puesto las librería que he utilizado con el IDE 1.8.2 de Arduino. Además de las librerías del DHT11, Adafruit_Unified_Sensor y ESP8288, he puesto otras dos Blynk y Liquid_Crystal_LCD que también son interesante tenerlas.

Varias_libraries.zip

___________________________________________________
3.- Código para crear un servidor web con el NodeMCU y enviar información de temperatura y humedad obtenidas con el sensor DHT11.

Código NodeMCU_wifi_temperatura.ino
// Adaptado y modificado por Juan A. Villalpando.
// KIO4.com
// Convierte al NodeMCU en un Servidor Web y capta temperatura y humedad.
// Presenta temperatura y humedad a clientes WiFi.
#include <ESP8266WiFi.h>
#include <DHT.h> // Necesita las librerías DHT y Adafruit_Unified_Sensor
#define DHTTYPE DHT11

// Configuración de tu red.
const char* ssid = "Tu_nombre_de_red_wifi";
const char* password = "La_clave_de_tu_red_wifi";

// Servidor Web, puerto 80
WiFiServer server(80);

// DHT Sensor
const int DHTPin = 14; // Es el terminal D5 del NodeMCU
DHT dht(DHTPin, DHTTYPE);

// Variables de tipo char.
static char char_temperatura[7];
static char char_humedad[7];
static char char_indice_calor[7];

void setup() {
  // Consulta el Serial Monitor para ver 
  // la IP asignada y las conexiones.
  Serial.begin(115200);
  delay(50);
  dht.begin();
  
  // Conexión WiFi
  Serial.println();
  Serial.print("Conectando con ");
  Serial.println(ssid);
  
  WiFi.begin(ssid, password);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi conectada.");
  
  // Arranque del Servidor Web
  server.begin();
  Serial.println("Servidor Web funcionando. Espera para ver tu IP...");
  delay(10000);
  
  // IP obtenida.
  Serial.println(WiFi.localIP());
}

void loop() {
  // Escucha a los  nuevos clientes que quieren conectar con Servidor Web.
  WiFiClient client = server.available();
  
  if (client) {
    Serial.println("Nuevo cliente.");
    boolean blank_line = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        
        if (c == '\n' && blank_line) {
            // LECTURA DE TEMPERATURA Y HUMEDAD
            float temperatura = dht.readTemperature();
            float humedad = dht.readHumidity();
            // Consulta si hay fallo y vuelve a leer si lo hay.
            if (isnan(humedad) || isnan(temperatura)) {
              Serial.println("Error en la lectura del sensor DHT.");
              strcpy(char_temperatura,"Error en el sensor de temperatura");
              strcpy(char_humedad,"Error en el sensor de humedad.");         
            }
            else{
              // Convierte float a String para presentarlos en la web.
              float indice_calor = dht.computeHeatIndex(temperatura, humedad, false);       
              dtostrf(indice_calor, 6, 2, char_indice_calor);                  
              dtostrf(humedad, 6, 2, char_humedad);
              dtostrf(temperatura, 6, 2, char_temperatura);
              // Información de Temperatura y Humedad en el Serial Monitor.
              Serial.print("Humedad: ");
              Serial.print(humedad);
              Serial.print(" %\t Temperatura: ");
              Serial.print(temperatura);
              Serial.print(" *C\t Índice de calor: ");
              Serial.print(indice_calor);
              Serial.print(" *C ");
            }
            // CREACIÓN DE LA PÁGINA WEB.
            client.println("HTTP/1.1 200 OK");
            client.println("Content-Type: text/html");
            client.println("Connection: close");
            client.println();
            client.println("<!DOCTYPE HTML>");
            client.println("<html>");
            client.println("<head><meta charset=utf-8></head>");
            client.println("<body><font face='Arial'><h1>ESP8266 - Temperatura y Humedad</h1>");
            client.println("<h2><font color='#009900'>KIO4.COM - Juan A. Villalpando</font></h2><h3>Temperatura: ");
            client.println(char_temperatura);
            client.println("&#176;C</h3><h3>Índice de calor: ");
            client.println(char_indice_calor);
            client.println("&#176;C</h3><h3>Humedad: ");
            client.println(char_humedad);
            client.println("%</h3><h3></font>");
            client.println("</body></html>");     
            break;
        }
        if (c == '\n') {
          // Lectura de nueva línea.
          blank_line = true;
        }
        else if (c != '\r') {
          // Fin de caracter de esa línea.
          blank_line = false;
        }
      }
    }  
    // Cerrar la conexión con ese cliente.
    delay(1);
    client.stop();
    Serial.println("Cliente desconectado.");
  }
}

___________________________________________________
4.- En el Serial Monitor obtenemos la IP asignada y las conexiones de los clientes.

- Debemos ir al Serial Monitor para ver la IP que le ha asignado nuestro Router al NodeMCU.

___________________________________________________
5.- ¿Podría funcionar en internet?

- Sí, para ello debes entrar en la configuración de tu Router con nombre y contraseña y asignar el puerto del NodeMCU a su IP.

________________________________

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información