|     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

____________________________

68.- NodeMCU, sensor de presión y temperatura BMP180. Pantalla LCD. WiFi.

- Vamos a adaptar el código anterior al ESP8266 para poder enviar los datos mediante WiFi, es parecido a lo que vimos en el tutorial:
65.- NodeMCU, sensor de temperatura y humedad. Web Server. WiFi. Pantalla LCD.

___________________________________________________
1.- Conexionado del NodeMCU al sensor de temperatura y presión BMP 180 y a la pantalla LCD. WiFi.

- Realizamos esta conexión.

- 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.

- Fíjate en el NodeMCU el bus I2C los componen los terminales D1 que es el SCL y el D2 que es el SDA. A este bus está conectado la pantalla LCD y el módulo del sensor.

- Los valores de la pantalla se actualizarán cuando entre algún cliente desde la página web.

- Es conveniente tener una pantalla LCD, pero si no la tienes puedes comprobar el funcionamiento en el Serial Monitor

___________________________________________________
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, ESP8288 y Liquid_Crystal_LCD.

Varias_libraries.zip

Librería del sensor de presión y temperatura: SFE.zip

___________________________________________________
3.- Código para pantalla el sensor de presión y temperatura BMP 180 y la pantalla LCD.

Código
Nodemcu_presion_lcd_wifi.ino
// Adaptado y modificado por Juan A. Villalpando.
// KIO4.com
// Convierte al NodeMCU en un Servidor Web y capta temperatura y presión con el sensor BMP180.
// Presenta temperatura y presión a clientes WiFi.
// Los datos también se ve en una pantalla LCD.
#include <ESP8266WiFi.h>
#include <DHT.h> // Necesita las librerías DHT y Adafruit_Unified_Sensor
#define DHTTYPE DHT11
// Pantalla LCD
#include <Wire.h>                 
#include <LiquidCrystal_I2C.h>    
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
// LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
#include <SFE_BMP180.h> // Sensor de presión.
SFE_BMP180 bmp180;

// 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);

// Variables de tipo char.
static char char_temperatura[6];
static char char_presion[6];

void setup() {
  // Consulta el Serial Monitor para ver 
  // la IP asignada y las conexiones.
  Serial.begin(115200);
  delay(50);
  bmp180.begin(); // Inicio del Sensor.
  lcd.begin(16,2);// Columnas y filas de LCD 
  
  // 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 BMP180
//////////////////////////////////////////////////////////////////
  char status;
  double T,P;
  status = bmp180.startTemperature();
  if (status != 0)
  {   
    delay(status);
    status = bmp180.getTemperature(T);
    if (status != 0)
    {
      status = bmp180.startPressure(3);
      if (status != 0)
      {        
        delay(status);
        status = bmp180.getPressure(P,T);
        if (status != 0)
        {                  
          dtostrf(T, 5, 1, char_temperatura);   
          dtostrf(P, 5, 1, char_presion);      
        }}}}
              Serial.print("Humedad: ");
              Serial.print(char_presion);
              Serial.print(" %\t Temperatura: ");
              Serial.print(char_temperatura);
              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 Presión.</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>Presión: ");
            client.println(char_presion);
            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.");
  }
/// Muestra en la pantalla LCD.
lcd.clear(); // Borra pantalla
lcd.setCursor(0,0); // Inicio del cursor
lcd.print("Temper. = ");
lcd.print(char_temperatura);
lcd.setCursor(0,1); // Siguiente renglón.
lcd.print("Presion = ");
lcd.print(char_presion);
delay(200);
}

___________________________________________________
4.- Serial Monitor.

________________________________

 

- 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