Módulo 10

Integración con AWS IoT Core

Integración con la Nube y IoT

ESP32 Mecatrónica IoT UNAM

Introducción a AWS IoT Core

La Internet de las Cosas (IoT) ha revolucionado el mundo de la ingeniería y la mecatrónica, permitiendo la interconexión de dispositivos y sistemas a una escala sin precedentes.

AWS IoT Core

Servicio administrado en la nube que permite a los dispositivos conectarse de manera segura con aplicaciones y otros dispositivos.

Protocolo MQTT

Protocolo de mensajería ligero diseñado específicamente para dispositivos IoT y comunicación eficiente.

ESP32 Integration

Microcontrolador ideal por su flexibilidad, conectividad WiFi/Bluetooth y bajo costo para proyectos IoT.

Aplicaciones Industriales
Industria Manufacturera

Sensores de máquinas conectados a ESP32 transmiten datos a AWS IoT Core para análisis y monitoreo en tiempo real, mejorando eficiencia, productividad y seguridad.

Configuración Técnica

El ESP32 es ideal para proyectos IoT gracias a su conectividad WiFi/Bluetooth y bajo costo. La integración con AWS IoT Core requiere una configuración específica de dispositivo y certificados.

1
Crear Thing en AWS

Registra tu dispositivo ESP32 como un "Thing" en la consola de AWS IoT Core, que lo representa virtualmente en la nube.

2
Generar Certificados

Crea un certificado X.509 para autenticar las conexiones seguras entre tu ESP32 y AWS IoT Core.

3
Configurar ESP32

Carga el certificado en tu ESP32 y configura la librería AWS IoT para Arduino IDE.

Librería AWS IoT

Utiliza la librería oficial AWS IoT para ESP32 disponible en Arduino IDE, que facilita la conexión usando el protocolo MQTT de manera eficiente y segura.

Implementación de Código

Implementación básica para conectar ESP32 con AWS IoT Core usando la librería oficial:

Código Arduino - AWS IoT Core
#include <aws_iot.h>  // Importamos la librería AWS IoT

AWS_IOT esp;  // Creamos un objeto de la clase AWS_IOT

// Configuración de AWS IoT Core
char HOST_ADDRESS[]="YOUR_HOST_ADDRESS";  // Endpoint de AWS IoT Core
char CLIENT_ID[]= "YOUR_CLIENT_ID";       // ID único del cliente
char THING_NAME[]= "YOUR_THING_NAME";     // Nombre del Thing registrado

void setup() {
  Serial.begin(115200);
  Serial.println("Iniciando conexión con AWS IoT Core...");
  
  // Iniciar conexión con AWS IoT Core
  esp.begin("YOUR_SSID", "YOUR_PASSWORD", HOST_ADDRESS, CLIENT_ID, THING_NAME);
  
  Serial.println("Conexión establecida con AWS IoT Core");
}

void loop() {
  // Publicar mensaje en tópico específico
  esp.publish("esp32/data", "Hello from ESP32");
  Serial.println("Mensaje enviado a AWS IoT Core");
  
  delay(5000); // Enviar cada 5 segundos
}
Explicación del Código
  • HOST_ADDRESS: Endpoint único de tu instancia AWS IoT Core
  • CLIENT_ID: Identificador único para tu dispositivo ESP32
  • THING_NAME: Nombre del Thing registrado en AWS console
  • esp.publish(): Envía mensajes al tópico especificado en AWS

Ejercicios Prácticos

1

Conexión Básica AWS IoT Core

Básico

Establecer conexión entre ESP32 y AWS IoT Core para publicar mensajes básicos en un tópico.

Objetivo: Conectar ESP32 con AWS IoT Core y publicar mensajes
Materiales: ESP32, cables de conexión, cuenta AWS
Tiempo: 30-45 minutos
Código: Usar el ejemplo anterior de conexión AWS
2

Control de LED vía AWS IoT

Intermedio

Controlar remotamente el encendido y apagado de un LED mediante comandos enviados desde AWS IoT Core.

Objetivo: Control remoto de LED a través de AWS IoT Core
Materiales: ESP32, LED, resistencia 220Ω, cables
Tiempo: 60-90 minutos
Código: Suscripción a tópicos para recibir comandos
3

Sensor de Datos a AWS

Avanzado

Enviar datos de temperatura y humedad de un sensor DHT11 a AWS IoT Core para monitoreo remoto.

Objetivo: Transmisión de datos de sensores a AWS
Materiales: ESP32, sensor DHT11, cables de conexión
Tiempo: 90-120 minutos
Código: Lectura de sensores y envío de JSON estructurado
Resultados Esperados
ESP32 se conecta exitosamente con AWS IoT Core
Publicación de mensajes cada 5 segundos en tópicos específicos
Visualización de datos en la consola AWS IoT Core

Proyecto Aplicado

Sistema de Monitoreo con AWS IoT Core

Sistema completo de monitoreo de temperatura y humedad usando ESP32, sensor DHT11 y AWS IoT Core para análisis en tiempo real.

Objetivos del Proyecto
  • Integrar ESP32 con sensor DHT11 para captura de datos ambientales
  • Establecer conexión segura con AWS IoT Core
  • Publicar datos estructurados en tópicos MQTT
  • Visualizar datos en dashboard de AWS IoT Core
  • Implementar alertas automáticas por umbrales
Componentes Necesarios
ESP32 DevKit
Sensor DHT11
Cables de conexión
Cuenta AWS IoT Core

Evaluación y Troubleshooting

Problemas de Conexión
Alta

Dificultades para conectarse a AWS IoT Core

  1. Verificar credenciales y certificados X.509
  2. Confirmar endpoint correcto de AWS IoT Core
  3. Revisar configuración de políticas IAM
  4. Comprobar conectividad WiFi del ESP32
Problemas de Sensor
Media

Errores en lectura de datos del sensor DHT11

  1. Verificar conexiones físicas del sensor
  2. Comprobar voltaje de alimentación (3.3V o 5V)
  3. Revisar librería DHT11 instalada
  4. Añadir delay entre lecturas (>2000ms)
Problemas de Publicación
Baja

Mensajes no llegan a los tópicos MQTT

  1. Verificar nombre correcto del tópico
  2. Comprobar formato JSON de los mensajes
  3. Revisar políticas de publicación en AWS
  4. Confirmar estado de conexión MQTT
Criterios de Evaluación
25%
Configuración AWS IoT Core

Thing creado correctamente con certificados y políticas

25%
Conexión ESP32-AWS

Conexión estable y autenticación exitosa

25%
Publicación de Mensajes

Datos estructurados publicados correctamente

25%
Lectura de Sensores

Datos precisos y consistentes del DHT11

Referencias Adicionales