Este proyecto muestra cómo conectar un ESP8266 con AWS IoT Core y usar MQTT para enviar datos de un sensor DHT22. Además, aprovecha Amazon Bedrock para generar chistes en respuesta a la temperatura. Para más detalles, consulta el blog en: Dev.to
first.version.mp4
version_final.mp4
- Módulo ESP8266 (con WiFi)
- Sensor DHT22
- LED, resistencias y cables
- Pantalla OLED opcional (SSD1306)
- Arduino IDE con librerías (PubSubClient, ArduinoJson, etc.)
- Certificados y llaves provistos por AWS IoT
- Cuenta en AWS con IoT Core y Lambda activados
-
Crear un objeto en AWS IoT Core
- Crear y configurar el objeto.
- Generar certificados y política con acciones esenciales (Connect, Publish, Receive, Subscribe).
- Guardar endpoint, Device Certificate y Private Key.
-
Configurar Arduino IDE
- Añadir soporte para ESP8266 en el “Gestor de URLs adicionales”.
- Instalar librerías necesarias.
- Crear “Main.ino” y “env.h” con el código y certificados.
-
Instalar drivers y subir el sketch
- Instalar drivers CP210x o CH340.
- Subir el código al ESP8266 con la configuración de WiFi y MQTT.
-
Crear Lambda e IAM Role
- Crear función Lambda (Python 3.x).
- Asignar rol con permisos (AmazonBedrockFullAccess, AWSIoTFullAccess).
- Añadir disparador “AWS IoT” con regla para filtrar datos (p.ej., temperatura > 30).
-
Incluir lógica en el código
- “Main.ino” maneja publicación y suscripción MQTT.
- “lambda.py” usa Amazon Bedrock para generar chistes y enviarlos por MQTT.
- El ESP8266 publica temperatura y humedad en “esp8266/pub”.
- AWS IoT invoca Lambda si la temperatura supera el umbral.
- Lambda genera un chiste y lo envía a “esp8266/joke”.
- El ESP8266 muestra el chiste en la pantalla OLED o por monitor serial.
Con MQTT y Lambda, este flujo es confiable y rentable. La clave está en configurar certificados, aprovechar Amazon Bedrock y unir IoT con Generative AI en un solo proyecto.