Implementación e Integración de Tecnologias Emergente
Laboratorio 10 – ESP32 y Google Firebase
Alumno: Morales Ramos Santiago Alberto
Capacidades Terminales:
Al finalizar el laboratorio el estudiante será capaz de:
● Crear programas en Android Studio con el Lenguaje Kotlin.
● Crear una base de datos en Firebase para almacenamiento.
● Crear una aplicación en Android Studio para almacenar una imagen en Firebase.
● Crear una aplicación en Android Studio para recobrar una imagen en Firebase.
Seguridad:
USANDO SOFTWARE:
● Se hará uso de software en la computadora, tener mucho cuidado con las conexiones eléctricas
para su computadora.
● Prestar atención a las indicaciones del docente.
Equipos y Materiales:
● Una computadora con:
● Windows 7 o superior
● Software de Android Studio
● Conexión a Internet
Guía de Laboratorio Pág. 1
Implementación e Integración de Tecnologias Emergente
Procedimiento:
EJERCICIO 1: Crear una cuenta en Firebase
Creemos una cuenta en la base de datos de Google Firebase, la cuenta de preferencia debe ser
de Google o la cuenta proveída por nuestra institución.
1. Creemos nuestra cuenta en Google Firebase.
Ingresemos a nuestra cuenta de
Google
Utilizando nuestras credenciales
a una cuenta de Google ingrese a
Firebase
Captura una imagen del ingreso a
la consola.
EJERCICIO 2: Crear y configurar un proyecto en Google Firebase
Creamos un proyecto en Google Firebas e para vincularlo con nuestro proyecto de NodeRed
2. Creemos y configuremos un codigo en python y Google Firebase.
Crea un Proyecto en python
import firebase_admin
from firebase_admin import credentials
Con ayuda de ChatGPT crear un promt from firebase_admin import db
que te genere un codigo que te permita
ingresar un dato desde python a una # Ruta al archivo de credenciales descargado desde Firebase
cred = credentials.Certificate('credenciales/firebase.json')
Guía de Laboratorio Pág. 2
Implementación e Integración de Tecnologias Emergente
base de datos de firebase, utiliza
# Inicializar la app con las credenciales y la URL del Realtime Database
palabras clave como:
firebase_admin.initialize_app(cred, {
- Usa la libreria firebase-admin 'databaseURL': 'https://jimmyyanez-1f3d0-default-rtdb.firebaseio.com/'
- Permite setear las credenciales })
de firebase
# Solicitar datos al usuario
nombre = input("Ingresa el nombre del usuario: ")
Ejecuta el código y toma captura de edad = input("Ingresa la edad del usuario: ")
pantalla
# Crear el diccionario con los datos
nuevo_usuario = {
'nombre': nombre,
'edad': edad
}
# Referencia a la ruta 'usuarios' en la base de datos
ref = db.reference('usuarios')
# Insertar el nuevo usuario
ref.push(nuevo_usuario)
print("� Dato insertado correctamente en Firebase.")
Insertar dato en Firebase. import firebase_admin
from firebase_admin import credentials
from firebase_admin import db
Agregale un módulo de Firebase, seteale import paho.mqtt.client as mqtt
las credenciales y por medio del módulo import json
MQTT realiza en pueda insertar un dato
# Ruta a las credenciales
cred = credentials.Certificate('credenciales/firebase.json')
Tome captura de pantalla # Inicializar Firebase
firebase_admin.initialize_app(cred, {
'databaseURL': 'https://jimmyyanez-1f3d0-default-rtdb.firebaseio.com/'
})
# Referencia base en Firebase
ref = db.reference('datos_mqtt')
# Cambia esto si usas otro broker
BROKER = "broker.hivemq.com"
PORT = 1883
TOPIC = "meomeow/sender"
# Función que se ejecuta cuando llega un mensaje
def on_message(client, userdata, msg):
try:
payload = msg.payload.decode()
print(f"� Mensaje recibido en {msg.topic}: {payload}")
Guía de Laboratorio Pág. 3
Implementación e Integración de Tecnologias Emergente
# Suponiendo que el mensaje es un JSON
data = json.loads(payload)
# Insertar en Firebase
ref.push(data)
print("� Dato insertado en Firebase.")
except Exception as e:
print(f"� Error procesando el mensaje: {e}")
# Conexión exitosa
def on_connect(client, userdata, flags, rc):
if rc == 0:
print("� Conectado al broker MQTT.")
client.subscribe(TOPIC)
else:
print("� Fallo de conexión. Código:", rc)
# Inicializar cliente MQTT
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
# Conectar al broker
client.connect(BROKER, PORT, 60)
# Mantener el loop del cliente
client.loop_forever()
Configura el servicio de Google
import firebase_admin
Firebase para que cuando capte un
from firebase_admin import credentials
cambio en la base de datos, publique from firebase_admin import db
con MQTT en un tópico especifico import paho.mqtt.client as mqtt
import json
import threading
Tome captura de pantalla
import time
Guía de Laboratorio Pág. 4
Implementación e Integración de Tecnologias Emergente
cred = credentials.Certificate('credenciales/firebase.json')
firebase_admin.initialize_app(cred, {
'databaseURL': 'https://jimmyyanez-1f3d0-default-rtdb.firebaseio.com/'
})
BROKER = "broker.hivemq.com"
PORT = 1883
TOPIC_MQTT = "meomeow/notificaciones"
client = mqtt.Client()
client.connect(BROKER, PORT, 60)
def listener(event):
# event.event_type: "put" o "patch"
# event.path: ruta del cambio
# event.data: datos nuevos
if event.data:
try:
payload = {
'evento': event.event_type,
'ruta': event.path,
'dato': event.data
}
msg = json.dumps(payload)
client.publish(TOPIC_MQTT, msg)
print(f"� Publicado en MQTT: {msg}")
except Exception as e:
print("� Error al publicar MQTT:", e)
# Escuchar cambios en toda la base o una rama específica
ref = db.reference('/') # Puedes poner 'usuarios', 'logs', etc.
ref.listen(listener)
# Mantener el script vivo
while True:
time.sleep(1)
Guía de Laboratorio Pág. 5
Implementación e Integración de Tecnologias Emergente
INVESTIGACIÓN
Averigüe ¿Qué es Power Bi y como se acopla con Internet de las Cosas?
Power BI es una plataforma de análisis de datos desarrollada por Microsoft que permite transformar
datos sin procesar en informes interactivos y visualmente comprensibles. Es ampliamente utilizada
para business intelligence (BI), visualización de datos, monitoreo de indicadores clave y generación
de dashboards en tiempo real.
Características principales de Power BI:
• Conexión a múltiples fuentes de datos (bases SQL, Excel, servicios web, API REST, etc.).
• Creación de reportes interactivos con gráficos, filtros y paneles.
• Automatización en la actualización de datos.
• Integración con otros servicios como Azure, SharePoint, Google Analytics, y más.
Power BI e IoT (Internet de las Cosas):
La integración entre Power BI y el IoT permite visualizar en tiempo real los datos generados por
dispositivos conectados como sensores, microcontroladores (ej. ESP32), cámaras, etc. Esta sinergia
se hace posible mediante:
1. Bases de datos en la nube (como Firebase, AWS o Azure IoT Hub), donde los dispositivos
envían constantemente información.
2. Power BI Gateway o APIs para extraer estos datos y transformarlos en visualizaciones.
3. Servicios intermedios como Node-RED, Python o MQTT, que ayudan a enrutar, transformar
y almacenar los datos generados por sensores IoT hacia una base visualizable por Power BI.
Por ejemplo, al utilizar un ESP32 que mide temperatura, humedad o detecta movimiento, este puede
enviar los datos a Firebase, y luego Power BI puede leerlos periódicamente para generar gráficos y
reportes automáticos.
OBSERVACIONES (4 Observaciones como mínimo)
• El uso de MQTT como protocolo de comunicación permite una interacción ligera y eficiente
entre dispositivos IoT y plataformas en la nube, lo cual es especialmente útil en redes con
bajo ancho de banda.
• Firebase, aunque potente, puede requerir configuraciones adicionales de seguridad y
autenticación para prevenir accesos no autorizados, especialmente en proyectos con datos
sensibles.
• El entorno de desarrollo Android Studio con Kotlin proporciona una interfaz moderna para la
creación de aplicaciones móviles, siendo ideal para controlar o visualizar información IoT en
tiempo real.
• Es necesario un conocimiento sólido de JSON y estructuras de datos para manejar
correctamente la comunicación entre dispositivos, Firebase y plataformas de visualización
como Power BI.
• En un entorno académico, la implementación de soluciones integradas como ESP32 + Firebase
+ MQTT + Power BI simula escenarios reales de la industria tecnológica, desarrollando
habilidades cruciales para el futuro profesional del estudiante.
CONCLUSIONES. (4 Conclusiones como mínimo)
Guía de Laboratorio Pág. 6
Implementación e Integración de Tecnologias Emergente
• La integración de Firebase con aplicaciones móviles desarrolladas en Android Studio facilita
la gestión de datos en la nube, brindando escalabilidad y eficiencia en proyectos IoT.
• El uso del ESP32 como emisor de datos en tiempo real, junto con protocolos como MQTT,
permite la creación de aplicaciones robustas de telemetría y control remoto.
• Firebase ofrece herramientas de autenticación, almacenamiento y base de datos en tiempo
real, convirtiéndose en una solución versátil para proyectos de Internet de las Cosas.
• El empleo de bibliotecas como firebase-admin en Python permite la manipulación programática
de bases de datos en Firebase, lo cual es esencial para el procesamiento automatizado de
información desde dispositivos IoT.
• Las plataformas de visualización como Power BI aportan un valor significativo en el análisis e
interpretación de los datos capturados por dispositivos IoT, siendo ideales para sistemas de
monitoreo, reportes y toma de decisiones.
Guía de Laboratorio Pág. 7