Arduino Nano ESP32 - AWS IoT
Este tutorial te enseña cómo conectar Arduino Nano ESP32 a AWS IoT Core. En detalle, aprenderemos:
- Cómo conectar el Arduino Nano ESP32 a AWS IoT Core.
- Cómo programar el Arduino Nano ESP32 para enviar mensajes a AWS IoT Core.
- Cómo programar el Arduino Nano ESP32 para recibir los mensajes de AWS IoT Core.

Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Acerca de Arduino Nano ESP32 y AWS IoT
Arduino Nano ESP32 se conecta a AWS IoT Core a través del protocolo MQTT. No es gran cosa porque las bibliotecas están disponibles, lo que facilita su uso.
Sin embargo, no es tan fácil como conectar el Arduino Nano ESP32 a un broker MQTT como Mosquitto instalado en tu PC. Esto se debe a que AWS IoT Core aplica estrictas medidas de seguridad. Se necesita configurar AWS IoT Core para obtener credenciales de autenticación y autorización antes de escribir el código del Arduino Nano ESP32. En resumen, debemos dar dos pasos importantes:
- Paso 1: Configuración de AWS IoT Core. Después de este paso, obtendremos las credenciales de autenticación, que se utilizarán en el código del Arduino Nano ESP32.
- Paso 2: Escribir el código para Arduino Nano ESP32.
Vamos a entrar en detalle.
Configuración de AWS IoT Core para su uso con Arduino Nano ESP32
Los propósitos de este paso son:
- Creando una representación del Arduino Nano ESP32 en AWS IoT Core (llamado Dispositivo).
- Configurando la autorización que otorga permiso para que el Arduino Nano ESP32 se conecte, publique y se suscriba a AWS IoT Core (llamada Política).
- Generando las credenciales de AWS que se utilizarán para la autenticación (llamados Certificados). Una vez creadas, descargaremos las credenciales y las colocaremos en el código del Arduino ESP32.
A continuación se muestra cómo configurar AWS IoT Core para su uso con Arduino Nano ESP32 a través de la Consola de AWS IoT Core. Tenga en cuenta que la interfaz de usuario de AWS puede cambiar con el tiempo, pero será similar a lo siguiente:
- Inicia sesión en la Consola AWS IoT
- Crear un dispositivo navegando a Gestionar Todos los dispositivos Things

- Haz clic en el botón Crear cosas.
- Selecciona Crear una sola cosa y haz clic en el botón Siguiente.

- Especifique el nombre del dispositivo, por ejemplo, ESP32-thing y haga clic en el Siguiente botón en la parte inferior de la página.

- Generar las credenciales al seleccionar la opción Generar automáticamente un nuevo certificado, y haga clic en el Siguiente botón.

- Ahora, se crea un certificado y se vincula al objeto.
- Crear una política haciendo clic en el Crear política botón.

- Se abrirá una nueva pestaña.

- Especifique el Nombre de la política, por ejemplo, ESP32-policy y haga clic en el JSON botón.
- Copie el contenido de la política JSON que se muestra a continuación y péguelo en el área Documento de políticas.
- Haz clic en el botón Crear en la parte inferior de la página para crear la política.
- Ahora, se ha creado una política y está adjunta al Certificado. Cierra esa página y vuelve a la página del dispositivo.
- Verifica la ESP32-policy y haz clic en el botón Crear dispositivo para crear el dispositivo.

- Aparece una ventana emergente que le permite descargar los archivos de credenciales. Descargue todos los archivos y guárdelos en una ubicación segura en su PC y manténgalos confidenciales.

- Luego, haga clic en el botón Hecho.
Entre los archivos descargados, hay tres archivos que se utilizarán en el código de Arduino Nano ESP32 en los próximos pasos:
- xxxxxxxxxx-certificado.pem.crt
- xxxxxxxxxx-privada.pem.key
- AmazonRootCA1.pem
Estos archivos se pueden abrir con cualquier editor de texto, como Notepad o Notepad++.
Escribiendo el código de Arduino Nano ESP32 para conectarse a AWS IoT Core
Pasos R\u00e1pidos
- Si es la primera vez que usas Arduino Nano ESP32, consulta cómo configurar el entorno para Arduino Nano ESP32 en el IDE de Arduino.
- Abre el Administrador de Bibliotecas haciendo clic en el icono Administrador de Bibliotecas en la barra de navegación izquierda del IDE de Arduino
- Escribe MQTT en el cuadro de búsqueda, luego busca la biblioteca MQTT de Joel Gaehwiler.
- Haz clic en el botón Instalar para instalar la biblioteca MQTT.

- Escribe ArduinoJson en la caja de búsqueda, y luego busca la biblioteca ArduinoJson de Benoit Blanchon.
- Haz clic en el botón Instalar para instalar la biblioteca ArduinoJson.

- Copie el código anterior y péguelo en Arduino IDE.
- Cree el archivo secrets.h en Arduino IDE haciendo:
- Haga clic en el botón justo debajo del icono del monitor serie y elija Nueva pestaña, o use las teclas Ctrl+Shift+N keys.
- Especifica el nombre del archivo secrets.h y haz clic en el botón OK
- Copia el código a continuación y pégalo en el archivo secrets.h creado.
- Actualice la siguiente información en el secrets.h
- Las WIFI_SSID y WIFI_PASSWORD de tu red WiFi
- Las AWS_CERT_CA, AWS_CERT_CRT y AWS_CERT_PRIVATE. Esta información se encuentra en los archivos que descargaste en el paso anterior.
- El AWS_IOT_ENDPOINT. Esta información se puede encontrar en la consola de AWS IoT navegando a Configuración, como se muestra en la imagen a continuación:
- Compilar y subir el código a la placa Arduino Nano ESP32 haciendo clic en el botón Subir en el IDE de Arduino



Enviando datos desde Arduino Nano ESP32 a AWS IoT
El código anterior de Arduino Nano ESP32 lee periódicamente datos de un pin analógico y los envía a AWS IoT cada 4 segundos. Si abres el Monitor Serial en el IDE de Arduino, verás el registro como el que aparece a continuación:
Para verificar si los datos son recibidos por AWS IoT o no, siga los siguientes pasos:
- En la consola de AWS IoT, navegue a Prueba Cliente de Prueba MQTT

- Haz clic en el botón Suscribirse a un tema.
- Escribe esp32/esp32-to-aws en el Filtro de tema. Puedes cambiar el tema, pero DEBES que coincida con el tema del código de Arduino Nano ESP32.
- Haz clic en el botón Suscribirse.
- Podrás ver los datos enviados desde Arduino Nano ESP32 en la Consola de AWS IoT.
Enviando datos desde AWS IoT a Arduino Nano ESP32
Puedes enviar los datos desde la consola de AWS IoT al Arduino Nano ESP32 siguiendo los siguientes pasos:
- En el IDE de Arduino, abre el Monitor Serial
- En la Consola de AWS IoT, navega a Prueba Cliente de Prueba MQTT

- Haz clic en el botón Publicar en un tema.
- Escribe esp32/aws-to-esp32 en el Nombre del tema. Puedes cambiar el tema, pero DEBE coincidir con el tema del código Arduino Nano ESP32.
- Opcionalmente, puedes cambiar la carga útil del mensaje, o simplemente dejarla por defecto.
- Haz clic en el botón Publicar.
- Abra el Monitor serie en el IDE de Arduino; verá el mensaje enviado desde la Consola de AWS IoT.
Haz más con AWS
Ahora ya puedes enviar datos desde el Arduino Nano ESP32 a AWS IoT Core y viceversa. Luego, puedes configurar IoTRule para conectar el Arduino Nano ESP32 con otros servicios de AWS como Lambda, DynamoDB, Amplify, RDS...