Tabla de contenido
resumen
Este es un tutorial introductorio Servicios web de AmazonEs decir AWS IoT Core Y ESP32. AWS IoT Core está administrado. Servicios en la nube Le permite operar dispositivos conectados de manera fácil y segura Aplicaciones en la nube y otros dispositivos.
En este tutorial, aprenderá cómo conectarse. ESP32 con AWS IoT Core y publicar lecturas de sensores AWS MQTTEn la demostración, Sensor DHT11 Lea los datos de humedad y temperatura. El ESP32 se conecta a la red WiFi local y envía los datos del sensor DHT11 a Nube de AWS IoTAdemás de publicar datos, también puede recibir datos de paneles de AWS. Anteriormente, solíamos publicar datos de sensores en el panel de AWS. AWS IoT Core y ESP8266.
Este tutorial se divide en varias secciones
- Registro y configuración de Amazon Web Services
- Instalación requerida biblioteca IDE de Arduino y escribir un boceto de Arduino para el proyecto
- Creación de un cosa es AWS.
- creación política Adjuntar a una cosa
- generación Certificado
- Modifique Arduino Sketch de acuerdo con los datos y credenciales de la cosa
- subscribir & escribir Datos hacia y desde paneles de AWS
Este tutorial es para principiantes que quieren aprender. Núcleo de IoT de Amazon AWS para Aplicaciones de IoTAnteriormente, aprendimos sobre plataformas de IoT como: Google Firebase Y Arduino IoT CloudSin embargo, puede utilizar AWS IoT Core para crear y administrar dispositivos para aplicaciones comerciales.
Configuración de hardware
El hardware necesario para este proyecto es el módulo ESP32 Wifi. Además, se utiliza un sensor de humedad y temperatura DHT11 para la parte del sensor.
Conecte el sensor DHT11 a la placa ESP32 de acuerdo con este esquema.
Puede usar una placa de pruebas o un cable conector macho a hembra para la conexión.
¿Qué es Amazon AWS IoT Core?
AWS proporciona servicios y soluciones de Internet de las cosas (IoT) para conectar y administrar miles de millones de dispositivos. Estos servicios en la nube conectan dispositivos IoT con otros dispositivos y servicios en la nube de AWS. AWS IoT proporciona software de dispositivo para ayudarle a integrar dispositivos IoT en soluciones basadas en AWS IoT. Si su dispositivo puede conectarse a AWS IoT, AWS IoT puede conectar su dispositivo a los servicios en la nube proporcionados por AWS.
Con AWS IoT, puede elegir la tecnología más adecuada y moderna para su solución. Para ayudarle a administrar y admitir dispositivos IoT en el campo, AWS IoT Core admite los siguientes protocolos:
- MQTT (Message Queue Server y transporte de telemetría)
- MQTT sobre WSS (Websockets Secure)
- HTTPS (Protocolo de transferencia de hipertexto – Seguro)
- LoRaWAN (Red de área amplia de largo alcance)
Introducción a Amazon AWS IoT Core con ESP32
Comenzar a utilizar AWS IoT Core es muy fácil. Para configurar correctamente su placa ESP32 y comenzar con su primer proyecto, siga los pasos a continuación.
Inicia sesión
Vaya a su navegador web y búsquelo visitando el siguiente enlace: aws.amazon.com/iot-core/.
Básicamente, debe configurar su cuenta de AWS ahora. Por lo tanto, cree una cuenta con su ID de correo electrónico y contraseña. Su cuenta también requerirá la información de su tarjeta de crédito bancaria. No hay cargo, pero AWS requiere verificación mediante una cuenta bancaria. También se te pedirá que verifiques tu número de teléfono. Por lo tanto, la cuenta se ha creado correctamente.
Panel de AWS IoT Core
Después de iniciar sesión correctamente, se abre la ventana de la Consola de administración de AWS. Escriba “IoT Core” en la pestaña de búsqueda de servicios en la parte superior y presione Entrar.
Haga clic en IoT Core para ver el panel de AWS IoT.
En el lado izquierdo del tablero, hay muchas opciones. Sin embargo, aquí debe usar dos opciones. Una es control Opción y la otra es cárcel Opción.
Creando cosas
Ahora necesitamos crear un thiNG relacionado con nuestro proyecto. Para ello, siga estos pasos:
- Especificación de propiedades Things
- Configurar certificados de dispositivo
- Adjuntar una directiva a un certificado
Haga clic en Cosa en Administrar opciones. A continuación, necesitas crear una cosa aquí. Entonces, haga clic en Crear cosas aquí.
Puede elegir crear una sola cosa o varias cosas. Sin embargo, en la solicitud,[1 つのものを作成する]Escoger próximo[次へ]Clic.
Especificación de propiedades Things
Aquí debe especificar la propiedad Thing. Primero, dale un nombre a la cosa. Puedes nombrarlo cualquier cosa. Por ejemplo, nombre ESP32_DHT11.
Para una configuración adicional, no se requieren cambios.
En la opción Device Shadow, seleccione Sin sombra como primera opción. próximo[次へ]Clic.
Generar un certificado de dispositivo
A continuación, debe configurar el certificado del dispositivo. Por lo tanto, aquí puede generar automáticamente un nuevo certificado, usar su propio certificado, cargar una CSR u omitir esto.
Sin embargo, la recomendación de AWS es elegir generar automáticamente un nuevo certificado. próximo[次へ]Clic.
Crear y adjuntar política
A continuación, debe adjuntar una política a la que creó. Pero actualmente no hay una política aquí. Por lo tanto, primero debe crear una directiva.
por consiguiente[ポリシーの作成]Clic. Aquí, asigne cualquier nombre a la política. Por ejemplo, asígnele el nombre siguiente “ESP32_Policy“.
Aquí es donde la parte de la instrucción add es muy importante. En Acciones, escriba IoT. Por lo tanto, aparecerán múltiples opciones. Desde aquí, solo necesita publicar, suscribirse, conectarse y recibir.
próximo[作成]para crear una directiva. Ahora ha creado correctamente la directiva.
próximo[モノの作成]Vuelve a Opciones. Por lo tanto, verá las opciones de directiva. Debe adjuntar una directiva al certificado. Por lo tanto, seleccione la directiva mostrada y haga clic en[モノの作成]Clic.
Descargar certificados y claves
A continuación, debe descargar el certificado requerido de esta lista.
Al principio Certificados de dispositivo A continuación, cámbiele el nombre como certificado de dispositivo para su identificación.
Además, descargar Clave pública Cámbiele el nombre como clave pública. próximo Clave privada Cambie el nombre y cambie a clave privada.
El certificado de CA raíz tiene dos certificados aquí. Pero solo necesitamos Certificado CA1 raíz, descárgalo también.
Por lo tanto, descargamos todos los certificados necesarios para el proyecto.
Instalación de las bibliotecas de Arduino necesarias
1. Biblioteca JSON de Arduino
Así que primero vaya al Administrador de bibliotecas, busque “JSON” e instale la biblioteca como se muestra en la imagen de abajo.
2. Publicar biblioteca de subclientes
Vaya al Administrador de bibliotecas nuevamente, busque “PubSubClient” e instale la biblioteca de Nick O’Leary.
3. Biblioteca de sensores DHT11
Busque “dht11” e instale la biblioteca de la siguiente manera:
Código fuente/programa para conectar AWS IoT Core y ESP32
Código/Programa Interfaz entre los sensores ESP32 y DHT11 y se conecta a Núcleo de IoT de Amazon AWS Escrito en IDE Arduino. El código se divide en dos secciones. Uno es el archivo ino principal y el otro es el archivo de cabecera.
Archivo .ino principal
Abra un nuevo boceto en el IDE de Arduino, pegue el siguiente código y guárdelo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | #include “Secret.h” #include <WiFiClientSecure.h> #include <PubSubClient.h> #include <ArduinoJson.h> #include “WiFi.h” #include “DHT.h” #define Pin digital conectado a DHTPIN 14 // Sensor DHT #define DHT Tipo DHT11 // DHT 11 #define AWS_IOT_PUBLISH_TOPIC “ESP32/pub” #define AWS_IOT_SUBSCRIBE_TOPIC “ESP32/SUB” flotar h ; flotar t; Teletipo Teletipo(Teletipo, Tipo AJC); Cliente WiFi seguro red = Cliente WiFi seguro(); Subcliente de pub cliente(red); No válido Conecte AWS() { LAN inalámbrica.modo(WIFI_STA); LAN inalámbrica.empezar(WIFI_SSID, WIFI_PASSWORD); serial.Printrung(“Conectarse a Wi-Fi”); mientras (LAN inalámbrica.posición() != WL_CONNECTED) { demorar(500); serial.Impresión(“.”); } Configuración de WiFiClientSecure para utilizar credenciales de dispositivo de AWS IoT red.setCACert(AWS_CERT_CA); red.Establecer certificado(AWS_CERT_CRT); red.Establecer clave secreta(AWS_CERT_PRIVATE); Conéctese al agente MQTT para el punto de enlace de AWS que definió anteriormente cliente.Establecer servidor(AWS_IOT_ENDPOINT, 8883); Crear un controlador de mensajes cliente.Establecer devoluciones de llamada(Controladores de mensajes); serial.Printrung(Conexión a AWS IoT); mientras (!cliente.conectar(Nombre de la cosa)) { serial.Impresión(“.”); demorar(100); } Si (!cliente.conexión()) { serial.Printrung(¡Tiempo de espera de AWS IoT!); devolución; } Suscribirse a un tema cliente.subscribir(AWS_IOT_SUBSCRIBE_TOPIC); serial.Printrung(「¡AWS IoT conectado!」); } No válido Publicar un mensaje() { Documentación estática de Json<200> …doc; …doc[“humidity”] = h; …doc[“temperature”] = t; chamuscar jsonBuffer[512]; Serialización Json(…doc, jsonBuffer); Salida al cliente cliente.escribir(AWS_IOT_PUBLISH_TOPIC, jsonBuffer); } No válido Controladores de mensajes(chamuscar* tema, byte* carga útil, Unsigned entero largura) { serial.Impresión(“Entrante: “); serial.Printrung(tema); Documentación estática de Json<200> …doc; Deserialización Json(…doc, carga útil); constante chamuscar* Mensaje = …doc[“message”]; serial.Printrung(Mensaje); } No válido arreglo() { serial.empezar(115200); Conecte AWS(); Teletipo.empezar(); } No válido bucle() { h = Teletipo.Leer humedad(); t = Teletipo.Temperatura de lectura(); Si (Isnan(h) || Isnan(t) ) Compruebe si la lectura falló y salga temprano (para intentarlo de nuevo). { serial.Printrung(F(“¡No se pudo leer desde el sensor DHT!”)); devolución; } serial.Impresión(F(“Humedad: “)); serial.Impresión(h); serial.Impresión(F(“% Temperatura: “)); serial.Impresión(t); serial.Printrung(F(“°C”)); Publicar un mensaje(); cliente.bucle(); demorar(1000); } |
secret.h
Abra una nueva pestaña en el IDE de Arduino y asígnele el nombre Secrets.h. Y pegue el siguiente código en este archivo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #include <pgmspace.h> #defineシークレット #define Nombre de la cosa “********” // Cambiar esto constante chamuscar WIFI_SSID[] = “***************”; Cambiar esto constante chamuscar WIFI_PASSWORD[] = “***************”; Cambiar esto constante chamuscar AWS_IOT_ENDPOINT[] = “***************”; Cambiar esto CA raíz de Amazon 1 estático constante chamuscar AWS_CERT_CA[] Programa = R“EOF( —– iniciar el certificado—– —–Terminación del certificado—– )EOF”; Certificados de dispositivo Cambiar esto estático constante chamuscar AWS_CERT_CRT[] Programa = R“clave( —– iniciar el certificado—– —–Terminación del certificado—– ) clave”; Secreto del dispositivo // Cambiar esto estático constante chamuscar AWS_CERT_PRIVATE[] Programa = R“clave( —– inicia la clave privada RSA—– —–Terminación de clave privada RSA—– ) clave”; |
Cambiar el boceto de Arduino según la cosa
A continuación, modifique el archivo de boceto de Arduino. Ir secret.h Haga clic en la pestaña para iniciar el cambio.
Debes incluir el nombre de la cosa aquí. Puede copiar el nombre de un objeto en la sección de objetos de la consola de AWS.
Pegue el nombre del objeto en la siguiente línea de código:
#define Nombre de la cosa “******” |
[WiFi SSID]y[パスワード], introduzca el SSID de WiFi y la contraseña de su red local.
constante chamuscar WIFI_SSID[] = “***************”; constante chamuscar WIFI_PASSWORD[] = “***************”; |
A continuación, debe insertar un punto de enlace de AWS IoT aquí. Para obtener el punto de enlace, vaya a la parte de configuración del panel de AWS. Yow obtiene el punto final.
Haga clic en el icono de copia para copiar el punto de enlace. Vuelva al IDE de Arduino y péguelo en la siguiente línea:
constante chamuscar AWS_IOT_ENDPOINT[] = “***************”; |
Debe insertar el CA1 raíz de Amazon entre las siguientes líneas:
CA raíz de Amazon 1 estático constante chamuscar AWS_CERT_CA[] Programa = R“EOF( —– iniciar el certificado—– —–Terminación del certificado—– )EOF”; |
Por lo tanto, para ello tendremos que volver al certificado que hemos descargado previamente. Abra este archivo en Notepad ++ y copie todo el texto.
Luego regrese al IDE de Arduino e inserte el texto copiado entre los certificados de inicio y fin.
「Devic eCertificate, debe pegar el texto del certificado del dispositivo. Allí, abra el archivo de certificado de dispositivo que descargó anteriormente. A continuación, copie el texto de nuevo y péguelo entre las secciones de certificado inicial y final del certificado.
Certificados de dispositivo estático constante chamuscar AWS_CERT_CRT[] Programa = R“. ..KEY( —–empezar certificado—– —–Fin certificado—– |
「Clave secreta del dispositivo, debe insertar la clave privada del dispositivo. Así que vaya a la carpeta descargada nuevamente y use Notepad ++ para abrir el archivo de clave privada en su dispositivo. Copie el texto de nuevo y péguelo entre las partes inicial y final.
Clave secreta del dispositivo estático constante chamuscar AWS_CERT_PRIVATE[] Programa = R“. ..KEY( —–empezar Teletipo privado . ..KEY—– —–Fin Teletipo privado . ..KEY—– |
Por lo tanto, todas las modificaciones del boceto de Arduino ESP32 relacionadas con AWS IoT Core están completas.
Probar los datos de publicación y las suscripciones
Una vez realizados todos los cambios, conecte el ESP32 al ordenador. Luego vaya a la herramienta que está utilizando para este proyecto y seleccione la placa ESP32. Además, seleccione el puerto COM. Luego haga clic en la opción de carga para cargar el código en la placa ESP32.
Una vez que el código haya terminado de cargarse, abra el monitor serie. El ESP32 intentará conectarse a la red WiFi. Cuando está conectado a una red WiFi, intenta conectarse a un servidor de AWS IoT.
Los valores de humedad y temperatura se muestran en el monitor serie.
Suscripción a AWS Dshboard para datos de sensores
También debe publicar lo mismo en el servidor de AWS. Para comprobarlo, vaya a la sección de pruebas del panel de AWS. En la sección de prueba, tiene la opción de suscribirse y publicar.
Para ver los datos, debe suscribirse a un tema. Para ese tipo “ESP32/Pub“ [トピック フィルター]sección. Para configuraciones adicionales, puede realizar cambios según sea necesario.
próximo[サブスクライブ]Clic. Pulse el botón de suscripción y los datos del ESP32 se cargarán inmediatamente en el panel de AWS. Por lo tanto, ha enviado correctamente los datos del sensor DHT11 a Amazon AWS IoT Core mediante ESP32.
Los datos se actualizan cada 1 segundo. Esto es realmente genial porque puede recibir datos en el panel central de AWS IoT enviados desde ESP32 a través del protocolo MQTT. Así es como puede leer los datos suscritos.
Publicación de datos en un monitor serie
Ahora veamos si puede exponer datos de AWS IoT Core a ESP32.
Para ver los datos, debe publicar en un tema. Para ese tipo “ESP32/Submarino“ [トピック フィルター]sección. Ninguna configuración adicional hace nada. próximo[公開]Clic.
Puede ver inmediatamente el mensaje enviado al monitor serie. Esto también es increíble. Con este método, puede: Controlar los LEDs Utilice el método de publicación.
Así es como puedes Transmisión o Recibir Datos de Núcleo de IoT de Amazon AWS uso ESP32.uso AWS MQTT, puede suscribirse a varios temas de lectura de sensores Nodos IoTEste es un tutorial básico para principiantes para usuarios que desean comenzar. Servicios web de Amazon Para ellos Dispositivos IoT.
Video Tutorial y Guía
Introducción a Amazon AWS IoT Core con ESP32 ||Creación de una cosa, política y certificado