|     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

____________________________

90.- Nodemcu envía humedad y temperatura a Firebase por WiFi. En una página web se ve y actualiza en tiempo real.

- Mediante el sensor de humedad y temperatura DHT11 vamos a obtener esos datos, los presentamos en una LCD y los enviamos por WiFi a nuestra cuenta de Firebase.

- Firebase es una base de datos de Google en donde podemos subir datos y verlos en tiempo real en una página web sin necesidad de refrescarla, podemos ver la actualización de ese dato en esa página sin necesidad de refrescar la página.

IMPORTANTE: para seguir estos ejemplos es conveniente haber seguido anteriormente mis tutoriales de Firebase, se encuentran en una sección de App Inventor.

- Aquí he puesto las librerías que he utilizado en estos tutoriales: Librerias.zip

___________________________________________________
1.- Conexiones.

- Los terminales D1 y D2 los necesita la pantalla LCD para funcionar con el bus I2C.

- El sensor DHT11 lo conectamos al terminal D5 del NodeMCU que es el GPIO14 del ESP8266-E12.

___________________________________________________
2.- Código para enviar los datos por WiFi a Firebase.

- Uno de los datos importantes es la clave de secreto de la base de datos.

- Esa es la clave que luego debemos poner en el código del NodeMCU:

#define FIREBASE_AUTH "S82--Secreto de la base de datos----6I"

Código
Nodemcu_Firebase_LCD_Humedad.ino
// Juan Antonio Villalpando
// juana1991@yahoo.com
// KIO4.COM
// Envía humedad y temperatura a Firebase.
// Una web en tiempo real mostrará esos datos.

#include <ESP8266WiFi.h>
#include <FirebaseArduino.h>
// Configuracion de Firebase y WiFi.
#define FIREBASE_HOST "kio4.firebaseio.com"
#define FIREBASE_AUTH "S82----Secreto de la base de datos----6I"
#define WIFI_SSID "Tu_nombre_de_red_wifi"
#define WIFI_PASSWORD "La_clave_de_tu_red_wifi"

#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 "DHT.h"
// Lo conectamos al D3 que es el GPIO14
DHT dht(14, DHT11);

void setup() {
lcd.begin(16,2); // Columnas y filas de LCD
dht.begin();
Serial.begin(9600); 

// Conexión a WiFi.
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  Serial.print("Conectando");
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }
  Serial.println();
  Serial.print("Conectado: ");
  Serial.println(WiFi.localIP());
  
  Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
}

void loop(){
  float humedad = dht.readHumidity();
  float temperatura = dht.readTemperature();
  lcd.clear(); // Borra pantalla
  lcd.setCursor(0,0); // Inicio del cursor
  lcd.print("Temper. = ");
  lcd.print(temperatura);
  lcd.setCursor(0,1); // Siguiente renglón.
  lcd.print("Humedad = ");
  lcd.print(humedad);
  delay(1000); 

// Envío de información a Firebase:
Firebase.setFloat("/nodemecu/temperatura", temperatura);
Firebase.setFloat("/nodemecu/humedad", humedad);
  // Posibles errores.
  if (Firebase.failed()) {
      Serial.print("Errores en la subida: ");
      Serial.println(Firebase.error());  
      return;
  }
}

- Cada segundo se envía información de temperatura y humedad a Firebase. Si entramos en Firebase y consultamos esos valores veremos que cambian automáticamente en tiempo real.

___________________________________________________
3.- Página web para ver los datos actualizados en tiemp real, sin necesidad de refrescar la página.

Código de página web
Nodemcu_Firebase_LCD_Humedad.htm
<html>
  <head>
    <script src='https://cdn.firebase.com/js/client/2.2.1/firebase.js'></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
  </head>
  <body>
    <font face="Arial" color="#009900" size="4"><div id='aqui'>Aquí se verán los datos.</div></font>
    <script>
    var Basededatos = new Firebase('https://kio4.firebaseio.com/');
    Basededatos.on("child_changed", function(datos) {
   var los_datos = datos.val();
    $("#aqui").html("Temperatura: " + los_datos.temperatura + "  Humedad: " + los_datos.humedad);  
    }); 
// Juan Antonio Villalpando.
// KIO4.COM
    </script>
  </body>
</html>

- Esta página web no es necesaria subirla a un servidor web (aunque también se puede subir si queremos), la podemos ejecutar desde nuestro ordenador.

- Cada segundo el NodeMCU enviará temperatura y humedad por WiFi a Firebase.

- Cada vez que Firebase cambie uno de esos valores enviará a la página web el nuevo dato, sin necesidad de refrescar la página.

_________________
-
Comentarios.

- Se puede modificar el código para que cuanto la temperatura o humedad alcancen un determinado valor, se encienda un LED.

- Es importante el delay en el código para la pantalla LCD, si se pone un delay rápido no le dará tiempo mostrar los datos.

https://www.youtube.com/watch?v=jS8GTbr16Gw

- Con esta librería podemos enviar a Firebase

Firebase.setFloat("/nodemecu/humedad", humedad);
Firebase.setInt("/nodemecu/humedad", entero);
Firebase.setString("/nodemecu/humedad", palabra);

________________________________

 

- 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