Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


No tiene titulo este documento, Resúmenes de Relaciones Laborales y Recursos Humanos

Es un documento para descargar

Tipo: Resúmenes

2025/2026

Subido el 07/04/2026

victor-rosell
victor-rosell 🇨🇱

1 documento

1 / 11

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
1
SENSORES, DISPOSITIVOS, REDES Y
PROTOCOLOS DE COMUNICACIONES
Actividad Grupal: Protocolos de comunicación en IOT y transmisión
de datos vía MQTT
Descripción breve
A lo largo de esta actividad seremos capaces de analizar, practicar y entender con el proceso de transmisión de
datos desde una serie de sensores hacia una plataforma IoT utilizando un protocolo de comunicaciones
concreto.
Elaboración
Nick Anderson Dominguez Gonzales
Wernher Raúl Aragón Núñes del Prado
Victor Hugo Cuba Gamarra
Joe John Cerna Medina
pf3
pf4
pf5
pf8
pf9
pfa

Vista previa parcial del texto

¡Descarga No tiene titulo este documento y más Resúmenes en PDF de Relaciones Laborales y Recursos Humanos solo en Docsity!

SENSORES, DISPOSITIVOS, REDES Y

PROTOCOLOS DE COMUNICACIONES

Actividad Grupal: Protocolos de comunicación en IOT y transmisión

de datos vía MQTT

Descripción breve

A lo largo de esta actividad seremos capaces de analizar, practicar y entender con el proceso de transmisión de

datos desde una serie de sensores hacia una plataforma IoT utilizando un protocolo de comunicaciones

concreto.

Elaboración

Nick Anderson Dominguez Gonzales

Wernher Raúl Aragón Núñes del Prado

Victor Hugo Cuba Gamarra

Joe John Cerna Medina

Contenido

    1. Investigación de protocolos de comunicación y transporte IOT
    1. Aplicación de protocolo MQTT utilizando Wokwi
    1. Creación de cuenta y transmisión de datos a io.adafruit
    1. Anexos

Este apartado del código abarca desde la línea 1 hasta la línea 29. Figura 2. Configuraciones iniciales en el código.

  • Se han incluido las librerías con las cuales se trabajo, entre ellas la utilizada para el sensor MPU6050, las librerías para trabajar con el protocolo MQTT y adafruit, etc.
  • Se han creado las variables utilizadas para las credenciales de conexión con adafruit.
  • Se ha creado una instancia de conexión con adafruit llamando al WifiClient y pasando las variables que contienen a las credenciales. Adicional a esto se ha creado el feed de visualización en adafruit, publicando las variables que se van a transmitir.
  • En la línea 24 se ha declara el sensor MPU6050 con el que se va trabajar.
  • En las líneas 27 y 28 se han definido las estructuras de la librería Adafruit_Sensor.h para trabajar con los datos de aceleración y temperatura. Creación de funciones de trabajo con WIFI y el protocolo MQTT:

Este apartado del código abarca desde la línea 30 hasta la línea 49 se ha creado una función para trabajar con el wifi y otra función de trabajo con el protocolo MQTT. Figura 3. Funciones de trabajo WIFI y MQTT.

  • De la línea 30 hasta la línea 36 se ha creado la función de trabajo para la conexión con el WIFI virtual “Wokwi-GUEST”, utilizando un bucle while para la conexión y un delay de 1100 ms.
  • De la línea 38 hasta la línea 49 se ha creado la función para la conexión MQTT con la plataforma adafruit, utilizando un bucle while. Cabe resaltar que estas funciones serán llamadas luego en los siguientes apartados del código. Configuración del Void Setup: Este apartado del código abarca desde la línea 51 hasta la línea 66.

Figura 5. Configuración del Bucle principal.

  • En la línea 70 se ejecuta la función conectar_mqtt, creada anteriormente.
  • En las líneas 72 y 73 se leen los de aceleración y temperatura capturados por el sensor MPU6050.
  • De la línea 75 hasta la línea 85, se imprimen por el monitor serial los datos de aceleración y temperatura.
  • De la línea 87 hasta la línea 92, se publican los datos de temperatura y aceleración en la plataforma adafruit, esperando 9 segundos para cada envió. 3. Creación de cuenta y transmisión de datos a io.adafruit Para esta parte de la actividad nos hemos creado una cuenta en la plataforma io.adafruit, donde podemos visualizar el feed creado por el código explicado anteriormente. A continuación, se muestra el feed.

Figura 6. Feed en io.adafruit. Hemos simulado con el sensor los valores de temperatura a 50 grados y de aceleración lamentablemente no se pudo ajustar el valor de aceleración a 0.01 g. Sin embargo, se trabajo con el valor cercano a 0.1 g. Figura 7. Simulación de valores de temperatura y aceleración. Adicionalmente se creo el siguiente Dashboard para una mejor visualización de los datos.

const char* adafruit_key = "aio_yquZ00KKQMmf0I6dVX7ZJqGV9LwK"; WiFiClient cliente; //Creación y configuración del feed en adafruit Adafruit_MQTT_Client mqtt(&cliente, dominio_adafruit, 1883 , usuario_adafruit, adafruit_key); Adafruit_MQTT_Publish temp = Adafruit_MQTT_Publish(&mqtt, "kuroazama/feeds/actividad-unir.temperatura"); Adafruit_MQTT_Publish x = Adafruit_MQTT_Publish(&mqtt, "kuroazama/feeds/actividad-unir.x"); Adafruit_MQTT_Publish y = Adafruit_MQTT_Publish(&mqtt, "kuroazama/feeds/actividad-unir.y"); Adafruit_MQTT_Publish z = Adafruit_MQTT_Publish(&mqtt, "kuroazama/feeds/actividad-unir.z"); //se declara al sensor MPU Adafruit_MPU6050 Sensor_mpu; // Se crean los eventos sensors_event_t evento_aceleracion; sensors_event_t evento_temp; void conectar_wifi(){ WiFi.begin("Wokwi-GUEST", ""); while (WiFi.status() != WL_CONNECTED) { delay( 1100 ); } Serial.println("Conectado al WiFi"); } void conectar_mqtt() { while (!mqtt.connected()) { Serial.print("Iniciando conexión MQTT..."); if (!mqtt.connect()){ Serial.println("Conectado"); } else { Serial.println("Conexión fallida"); Serial.println("Reintentando en 6 segundos"); delay( 6000 ); } } } void setup() { Serial.begin( 115200 ); // Inicializar los pines de la placa Wire.begin( 21 , 22 ); // Conectar al wifi conectar_wifi(); // Inicializar mpu if (!Sensor_mpu.begin()) { Serial.println("MPU6050 sin conectar..."); delay( 1000 ); } Serial.println("MPU6050 listo"); }

void loop() { conectar_mqtt(); Sensor_mpu.getAccelerometerSensor()->getEvent(&evento_aceleracion); Sensor_mpu.getTemperatureSensor()->getEvent(&evento_temp); Serial.print("X: "); Serial.print(String(evento_aceleracion.acceleration.x/9.80665) + " g, "); Serial.print(", Y: "); Serial.print(String(evento_aceleracion.acceleration.y/9.80665) + " g, "); Serial.print(", Z: "); Serial.print(String(evento_aceleracion.acceleration.z/9.80665) + " g, "); Serial.print("Temperature: "); Serial.print(evento_temp.temperature); Serial.println(" °C"); temp.publish(evento_temp.temperature); x.publish(evento_aceleracion.acceleration.x/9.80665); y.publish(evento_aceleracion.acceleration.y/9.80665); z.publish(evento_aceleracion.acceleration.z/9.80665); delay( 9000 ); }