0% encontró este documento útil (0 votos)
14 vistas7 páginas

Lab 10 Firebase

El laboratorio se centra en la implementación de tecnologías emergentes utilizando ESP32 y Google Firebase, donde los estudiantes aprenden a crear aplicaciones en Android Studio con Kotlin y gestionar bases de datos en Firebase. Se abordan procedimientos para configurar proyectos, insertar datos y utilizar MQTT para la comunicación entre dispositivos IoT y la nube. Además, se explora la integración de Power BI para la visualización de datos en tiempo real generados por dispositivos conectados.

Cargado por

santiago.morales
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
14 vistas7 páginas

Lab 10 Firebase

El laboratorio se centra en la implementación de tecnologías emergentes utilizando ESP32 y Google Firebase, donde los estudiantes aprenden a crear aplicaciones en Android Studio con Kotlin y gestionar bases de datos en Firebase. Se abordan procedimientos para configurar proyectos, insertar datos y utilizar MQTT para la comunicación entre dispositivos IoT y la nube. Además, se explora la integración de Power BI para la visualización de datos en tiempo real generados por dispositivos conectados.

Cargado por

santiago.morales
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 7

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

También podría gustarte