AWS IoT GreengrassBiblioteca de detección de
nota
Es posible que el contenido de esta página no esté actualizado. Consulte la página de la biblioteca de FreeRTOS.org
Descripción general
Los dispositivos de microcontrolador utilizan la biblioteca de detección de AWS IoT Greengrass para detectar un núcleo de Greengrass en su red. Con las API de detección de AWS IoT Greengrass su dispositivo puede enviar mensajes a un núcleo de Greengrass después de encontrar el punto de enlace del núcleo.
Dependencias y requisitos
Para utilizar la biblioteca de detección de Greengrass, debe crear un objeto en AWS IoT, incluido un certificado y una política. Para obtener más información, consulte Introducción a AWS IoT.
Debe definir valores para las siguientes constantes en el archivo :freertos/demos/include/aws_clientcredential.h
clientcredentialMQTT_BROKER_ENDPOINT-
El punto de enlace de AWS IoT.
clientcredentialIOT_THING_NAME-
Es el nombre de su objeto de IoT.
clientcredentialWIFI_SSID-
El SSID de su red wifi.
clientcredentialWIFI_PASSWORD-
La contraseña de wifi.
clientcredentialWIFI_SECURITY-
El tipo de seguridad utilizado por su red wifi.
También debe definir valores para las siguientes constantes en el archivo :freertos/demos/include/aws_clientcredential_keys.h
keyCLIENT_CERTIFICATE_PEM-
El certificado PEM asociado a su objeto.
keyCLIENT_PRIVATE_KEY_PEM-
El PEM de clave privada asociado a su objeto.
Debe tener un grupo de Greengrass y un dispositivo de núcleo configurado en la consola. Para obtener más información, consulte Introducción a AWS IoT Greengrass.
Aunque no se necesita una biblioteca de coreMQTT para la conectividad Greengrass, le recomendamos encarecidamente que la instale. La biblioteca se pueden utilizar para comunicarse con el núcleo de Greengrass después de que se haya detectado.
Referencia de la API
Para obtener una referencia de la API completa, consulte la Referencia de la API Greengrass.
Ejemplo de uso
Flujo de Greengrass
El dispositivo MCU inicia el proceso de detección solicitando un archivo JSON de AWS IoT que contiene los parámetros de conectividad del núcleo de Greengrass. Existen dos métodos para recuperar los parámetros de conectividad del núcleo de Greengrass del archivo JSON:
-
La selección automática realiza iteraciones por todos los núcleos de Greengrass enumerados en el archivo JSON y se conecta al primero disponible.
-
La selección manual utiliza la información en
aws_ggd_config.hpara conectarse al núcleo de Greengrass especificado.
Uso de la API de Greengrass
Todas las opciones de configuración predeterminadas para la API de Greengrass se definen en aws_ggd_config_defaults.h.
Si solo está presente un núcleo de Greengrass, llame a GGD_GetGGCIPandCertificate para solicitar el archivo JSON con información de conectividad del núcleo de Greengrass. Cuando se devuelve GGD_GetGGCIPandCertificate, el parámetro pcBuffer contiene el texto del archivo JSON. El parámetro pxHostAddressData contiene la dirección IP y el puerto del núcleo de Greengrass al que puede conectarse.
Para obtener más opciones de personalización, como la posibilidad de asignar certificados de forma dinámica, debe llamar a las siguientes API:
GGD_JSONRequestStart-
Realiza una solicitud HTTP GET a AWS IoT para iniciar la solicitud de detección para detectar un núcleo de Greengrass.
GD_SecureConnect_Sendse utiliza para enviar la solicitud a AWS IoT. GGD_JSONRequestGetSize-
Obtiene el tamaño del archivo JSON de la respuesta HTTP.
GGD_JSONRequestGetFile-
Obtiene la cadena de objeto JSON.
GGD_JSONRequestGetSizeyGGD_JSONRequestGetFileutilizanGGD_SecureConnect_Readpara obtener los datos JSON del socket. Se debe llamar aGGD_JSONRequestStart,GGD_SecureConnect_Send,GGD_JSONRequestGetSizepara recibir los datos JSON de AWS IoT. GGD_GetIPandCertificateFromJSON-
Extrae la dirección IP y el certificado del núcleo de Greengrass de los datos JSON. Puede activar la selección automática estableciendo
xAutoSelectFlagenTrue. La selección automática encuentra el primer dispositivo de núcleo al que puede conectarse su dispositivo FreeRTOS. Para conectarse a un núcleo de Greengrass, llame a la funciónGGD_SecureConnect_Connecty pase la dirección IP, el puerto y el certificado del dispositivo de núcleo. Para utilizar la selección manual, establezca los siguientes campos del parámetroHostParameters_t:pcGroupName-
El ID de grupo de Greengrass al que pertenece el núcleo. Puede utilizar el comando de la CLI
aws greengrass list-groupspara encontrar el ID de sus grupos de Greengrass. pcCoreAddress-
El ARN del núcleo de Greengrass al que se va a conectar.