ESP8266 y Firebase - Arduino

Crear proyectos de Electrónica enviando y recibiendo datos a través de una red Wifi suena interesante, monitorear variables o procesos de forma remota es un aspecto muy demandado hoy en día por las Industrias, pero muchas veces este tipo de cosas no se enseñan o pasan desapercibidas en las Universidades o genial que lo enseñasen en Colegios.

Pues bueno en este pequeño espacio les compartiré una serie de tutoriales que realicé para darles un abre bocas de lo fascinante que es este tipo de aplicaciones usando Arduino o específicamente la placa ESP8266.


Después de ver esto podrán tener el punto de partida para que impresionen a sus Maestros o Profesores con sus proyectos.

Bueno antes de ir de lleno primero es necesario que conozcan un poco de las herramientas que se van a utilizar, quizás es muy probable que ya estés familiarizado con Arduino o la Placa ESP8266, pero ademas de ello es importante que conozcan un poco la base de datos donde se alojarán las variables que enviaremos y recibiremos desde la placa ESP8266 (Arduino).

Firebase es una base de datos en tiempo real de Google, por su estructura es una base de datos NoSQL ya que se asemeja a un gran objeto JSON y no usa tablas para almacenar datos, bueno para no enredarlos mucho y hacer la explicación más amigable, hagan de cuenta que la base de datos Firebase es una estructura con ramificaciones, en las cuales se irán almacenando los datos, les dejare una imagen a modo de ejemplo...
La magia ocurre cuando se junta la Placa ESP8266 y Firebase, gracias a la capacidad de la tarjeta ESP8266 de conectarse a una red Wifi, los datos se pueden enviar directamente a la base de datos Firebase, pero eso no es todo también se pueden consultar para leer el estado actual de las variables almacenadas.

Les comparto las pruebas de funcionamiento antes de ver como programar el ESP8266, la conexión entre el ESP8266 y Firebase se probó con la red 4G del Celular y la Red Wifi de hogar.

ESP8266 y Firebase - Prueba de Conexión Arduino a WIFI (IoT)

Links IMPORTANTES:

CÓDIGO CONEXIÓN DE ESP8266 A FIREBASE



//
// Copyright 2015 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

// FirebaseDemo_ESP8266 is a sample that demo the different functions
// of the FirebaseArduino API.

#include <ESP8266WiFi.h>
#include <FirebaseArduino.h>

// Set these to run example.
#define FIREBASE_HOST "your-host"
#define FIREBASE_AUTH "your-key"
#define WIFI_SSID "your-wifi"
#define WIFI_PASSWORD "your-pass-wifi"

void setup() {
  Serial.begin(9600);

  // connect to wifi.
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  Serial.print("connecting");
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }
  Serial.println();
  Serial.print("connected: ");
  Serial.println(WiFi.localIP());
  
  Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);

  pinMode(2, OUTPUT);
  
}

int n = 0;

void loop() {

   // get value 
  if(Firebase.getFloat("led"))
  {
    digitalWrite(2, LOW);
  }
  else{
    digitalWrite(2, HIGH);
  }
  
  // set value
  Firebase.setFloat("number", 7);
  // handle error
  if (Firebase.failed()) {
      Serial.print("setting /number failed:");
      Serial.println(Firebase.error());  
      return;
  }
  delay(500);
  
  // update value
  Firebase.setFloat("number", 27.0);
  // handle error
  if (Firebase.failed()) {
      Serial.print("setting /number failed:");
      Serial.println(Firebase.error());  
      return;
  }
  delay(500);

 
  // remove value
  Firebase.remove("number");
  delay(100);

  // set string value
  Firebase.setString("message", "Alex7 Tutoriales");
  // handle error
  if (Firebase.failed()) {
      Serial.print("setting /message failed:");
      Serial.println(Firebase.error());  
      return;
  }
  delay(500);

  
  // set string value
  Firebase.setString("message", "Suscribete");
  // handle error
  if (Firebase.failed()) {
      Serial.print("setting /message failed:");
      Serial.println(Firebase.error());  
      return;
  }
  delay(500);
  
  // set bool value
  Firebase.setBool("truth", false);
  // handle error
  if (Firebase.failed()) {
      Serial.print("setting /truth failed:");
      Serial.println(Firebase.error());  
      return;
  }
  delay(1000);

  // append a new value to /logs
  String name = Firebase.pushInt("logs", n++);
  // handle error
  if (Firebase.failed()) {
      Serial.print("pushing /logs failed:");
      Serial.println(Firebase.error());  
      return;
  }
  Serial.print("pushed: /logs/");
  Serial.println(name);
  delay(1000);
  
}

Bueno ahora les dejo la serie de vídeos explicando paso a paso como lograr conectar la Placa ESP8266 y Firebase, debes tener en cuenta todos los pasos en secuencia como se muestran los vídeos...

Relé 5V con ESP8266 y Firebase Conexión (IoT) Tutorial:

https://alex7tutoriales.blogspot.com/2020/03/rele-5v-con-esp8266-y-firebase-conexion.html


ESP8266 y FIREBASE Conexión Leer y Escribir Datos [RealTime Database - IoT]

ESP8266 y Firebase Conexión Base de Datos Tiempo Real (IoT - Wifi)


Relé 5V con ESP8266 y Firebase Conexión (IoT)



ESP8266 y FIREBASE Conexión a base de datos (setting /number failed)


Tarjeta ESP8266 No Encontrada ERROR (SOLUCIÓN)

Programar ESP8266 NodeMCU y Configurar Arduino IDE [IoT]

ESP8266 NodeMCU - Encender LED Interno [ARDUINO]

Crear un Proyecto en FIREBASE [ESP8266 y Firebase IoT]


Espero que esta serie de tutoriales les permita haber formado una concepción de todo lo que pueden crear en sus proyectos de Universidad o Colegio integrando la Placa ESP8266 y Firebase.


ESP8266 y Firebase Conexión a Base de Datos Tiempo Real (IoT) como un Arduino con Wifi. Conecta tu Placa ESP8266 o Arduino a la Base de Datos en Tiempo Real (Real Time DataBase) de forma fácil y rápida con la base de datos de Google llamada Firebase, corrige en FirebaseHttpClient.h static const char kFirebaseFingerprint [] el certificado de conexión y transmite datos en tiempo real.
El folder esta en ~ Arduino / bibliotecas / firebase-arduino-master / src / FirebaseHttpClient.h Realiza proyectos interesantes de IoT, Internet of Things, Internet de las cosas y Electrónica con esta tarjeta de desarrollo llamada ESP8266 que trae Wifi Integrado.
Este Tutorial corrige el problema que muchos tenían con el certificado de conexión a Firebase de Google. Actualizando un pequeño código de programación en FirebaseHttpClient.h es posible restablecer la conexión a la base de datos.

A medida que pueda seguir haciendo vídeos, si Dios me lo permite les compartire más cosas interesantes en esta página web y en mi canal de YouTube Alex7 Tutoriales.

Incluso conociendo esto y se animan a aprender un poco de HTML, JavaScript y CSS, podrán integrar y controlar el ESP8266 y Firebase en una página web como si fuese un sistema SCADA.

No solo eso, si deciden ir un poco más allá, al integran algunos frameworks para dar un aspecto visual más agradable, los resultados pueden ser muy interesantes. (VueJS, Angular, React, entre otros.)

Si realizas algún proyecto a partir de todo esto que explique me gustaría conocerlo, puedes enviarme fotos o vídeos de tu proyecto a mis redes sociales y podría compartirlo.

No olvides Suscribirte a mi canal de YouTube, Alex7 Tutoriales para más contenido…. Saludos :)


Alex7 Tutoriales

Tutoriales que en algún momento te pueden ser útiles.... Suscribete!

2 Comentarios

  1. Buena información tengo una duda con tu información los use para activar y desactivar un led como el ejemplo funciona pero después de unos intentos se reinicia la placa y se reconecta por que sera

    ResponderEliminar
  2. Muy buen proyecto!! una consulta sabes como inyectar datos a Firestore en vez de Realtime Database?

    ResponderEliminar
Publicar un comentario
Artículo Anterior Artículo Siguiente