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.
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.
Generar Certificados
Crea un certificado X.509 para autenticar las conexiones seguras entre tu ESP32 y AWS IoT Core.
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:
#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
Conexión Básica AWS IoT Core
BásicoEstablecer conexión entre ESP32 y AWS IoT Core para publicar mensajes básicos en un tópico.
Control de LED vía AWS IoT
IntermedioControlar remotamente el encendido y apagado de un LED mediante comandos enviados desde AWS IoT Core.
Sensor de Datos a AWS
AvanzadoEnviar datos de temperatura y humedad de un sensor DHT11 a AWS IoT Core para monitoreo remoto.
Resultados Esperados
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
Evaluación y Troubleshooting
Problemas de Conexión
AltaDificultades para conectarse a AWS IoT Core
- Verificar credenciales y certificados X.509
- Confirmar endpoint correcto de AWS IoT Core
- Revisar configuración de políticas IAM
- Comprobar conectividad WiFi del ESP32
Problemas de Sensor
MediaErrores en lectura de datos del sensor DHT11
- Verificar conexiones físicas del sensor
- Comprobar voltaje de alimentación (3.3V o 5V)
- Revisar librería DHT11 instalada
- Añadir delay entre lecturas (>2000ms)
Problemas de Publicación
BajaMensajes no llegan a los tópicos MQTT
- Verificar nombre correcto del tópico
- Comprobar formato JSON de los mensajes
- Revisar políticas de publicación en AWS
- Confirmar estado de conexión MQTT
Criterios de Evaluación
Configuración AWS IoT Core
Thing creado correctamente con certificados y políticas
Conexión ESP32-AWS
Conexión estable y autenticación exitosa
Publicación de Mensajes
Datos estructurados publicados correctamente
Lectura de Sensores
Datos precisos y consistentes del DHT11