Implementar rápidamente una red segura de dispositivos de IoT conectados a la nube con capacidades de informática de punta.

Por Stephen Evanczuk

Colaboración de Editores de Digi-Key de América del Norte

Aunque tiene mucha demanda, la implementación de una red de Internet de las cosas (IO) con recursos informáticos de punta puede ser una empresa desalentadora con múltiples requisitos de dispositivos de punta, sistemas informáticos de punta y conectividad segura en la nube. Aunque los elementos discretos de la solución requerida están fácilmente disponibles, la integración de todos ellos en una aplicación de IoT sin fisuras y eficiente requiere una inmersión en las complejas tareas de implementar no solo las plataformas de hardware de punto final y de borde, sino también las interfaces de servicio, los métodos de comunicación y los protocolos de seguridad requeridos por los proveedores de nubes de IoT.

Recientemente, ha surgido un flujo constante de soluciones de IoT más integradas para ayudar a los desarrolladores a llegar al mercado más rápidamente. Por ejemplo, un conjunto de productos de computación de punta y de borde listos para la nube de Microchip Technology proporciona una solución estándar diseñada para conectarse fácilmente con los servicios de IoT de Amazon Web Services (AWS) y el servicio de computación de punta de AWS IoT Greengrass.

Este artículo discutirá brevemente por qué la inteligencia debe ser desplegada en el borde. A continuación, introducirá las placas calificadas AWS de Microchip que sirven como sistemas de punto final de sensores listos para la nube. El artículo mostrará luego cómo esos puntos finales pueden combinarse con una plataforma de computación de punta basada en un sistema inalámbrico en módulo (SOM) precargado con credenciales de AWS y software de servicio para proporcionar una conectividad casi transparente a la nube de AWS.

Combinar el sistema de punto final y de borde

La disponibilidad de sistemas de bajo costo y baja potencia ha simplificado la implementación de los llamados sistemas de punto final, que son los dispositivos de sensores y actuadores que constituyen los límites más lejanos de la periferia de la aplicación de IoT. Aunque estos sistemas de punto final se conectan directamente con la nube en muchas aplicaciones de IoT, las aplicaciones más complejas a menudo requieren la implementación de los llamados sistemas de borde, que se encuentran funcionalmente posicionados entre los puntos finales y la nube de IoT.

Al proporcionar capacidades de procesamiento local en estrecha proximidad a un conjunto de puntos finales de IoT, los sistemas de borde pueden reducir la latencia en bucles de retroalimentación estrechos o cumplir los requisitos de tiempo para los controles de los procesos industriales. Los sistemas de borde proporcionan los recursos locales necesarios para procesar algoritmos más complejos, como la inferencia de aprendizaje por máquina, o sofisticadas rutinas de preprocesamiento utilizadas para limpiar datos y reducir el volumen y la velocidad de los datos conducidos a la nube. Esta capacidad de procesamiento local resulta decisiva para respaldar las políticas de seguridad avanzadas y los requisitos de privacidad, como la reducción al mínimo de los datos antes de su transferencia a través de la Internet pública.

Mejorar las aplicaciones de IoT con AWS IoT Greengrass

Amazon Web Services (AWS) formaliza las capacidades de procesamiento de borde con su servicio AWS IoT Greengrass, que proporciona una parte de sus servicios de nube que se ejecutan como Greengrass Core en el dispositivo de borde. Diseñado para trabajar de cerca con servicios en la nube que se ejecutan en recursos de nube escalables de AWS, Greengrass proporciona un camino relativamente sencillo para desplegar y actualizar modelos de inferencia de aprendizaje automático construidos con herramientas como la plataforma de aprendizaje automático totalmente administrada de AWS SageMaker (Figura 1).

Diagrama de AWS IoT GreengrassFigura 1: AWS IoT Greengrass simplifica el procesamiento local y la implementación de borde de las funcionalidades avanzadas, incluyendo los modelos de aprendizaje automático entrenados en el entorno de aprendizaje automático de AWS SageMaker. (Fuente de la imagen: Amazon Web Services)

El procesamiento local es solo uno de los beneficios de un servicio de vanguardia como AWS Greengrass. Al proporcionar una especie de búfer de interfaz entre los sistemas de punto final y los recursos de la nube, los sistemas de borde también desempeñan un papel fundamental en el cumplimiento de los requisitos de las aplicaciones de IoT para reducir la latencia, mejorar la privacidad y la seguridad y aumentar la disponibilidad. AWS Greengrass proporciona la base para ofrecer estas capacidades.

En el modelo AWS Greengrass, después de una fase de descubrimiento de una sola vez con servicios en la nube, los dispositivos de punto final dentro de un grupo definido de Greengrass interactúan entre sí utilizando mensajería de Transporte de Telemetría MQ (MQTT) administrada por un dispositivo Greengrass Core (Figura 2).

Diagrama del grupo AWS IoT Greengrass, los dispositivos de punto final pueden comunicarse entre síFigura 2: Dentro de un grupo AWS IoT Greengrass, los dispositivos de punto final pueden comunicarse entre sí y con la nube mediante mensajes MQTT administrados por un dispositivo Greengrass Core. (Fuente de la imagen: Amazon Web Services)

Una vez desplegados en un grupo de Greengrass, los dispositivos pueden cooperar para evitar las largas demoras de ida y vuelta que se encuentran en las implementaciones de IoT usando dispositivos de IoT que se comunican directamente con la nube. En cambio, los dispositivos pueden emitir señales directamente a través de canales MQTT mediados por las capacidades de procesamiento local del dispositivo Greengrass Core.

Si se pierde la conectividad con la nube, los dispositivos pueden seguir funcionando bajo la gestión del dispositivo central de Greengrass. Por el contrario, si un dispositivo se desconecta, otros dispositivos y la aplicación basada en la nube pueden seguir funcionando utilizando los datos mantenidos por una sombra de dispositivo virtual asociada a cada dispositivo físico (Figura 3).

Diagrama de las arquitecturas de servicios de computación de borde, como AWS IoT GreengrassFigura 3: Las arquitecturas de servicios de computación de punta como la AWS IoT Greengrass ayudan a mantener la disponibilidad al proporcionar dispositivos de sombra que pueden mantener los últimos datos de estado de los dispositivos, permitiendo que las aplicaciones de IoT continúen funcionando incluso si el dispositivo físico asociado se desconecta. (Fuente de la imagen: Amazon Web Services)

Aunque es un concepto sencillo, la implementación de esta coordinación entre un conjunto de dispositivos de IoT puede ser un desafío. Para un típico desarrollador de IoT, aprovechar al máximo esta capacidad de computación de punta presenta una combinación desalentadora de desafíos de administración de hardware, software y sistemas. A nivel de hardware, es necesario construir y desplegar una red de dispositivos de computación de punta y de borde adecuados. Es necesario desarrollar software para implementar comunicaciones seguras dentro de la red local de puntos finales de IoT y dispositivos de borde, así como con servicios en la nube. Por último, esos dispositivos deben estar configurados adecuadamente, provistos de claves privadas y certificaciones adecuadas, y autenticados entre sí y con el servicio en la nube de IoT.

Para simplificar el proceso, un conjunto de placas de microchips proporcionan soluciones inmediatas cualificadas por AWS para dispositivos de punto final y de borde capaces de conectarse de forma sencilla y segura a AWS Greengrass Core localmente, y al AWS IoT Core en la nube.

Sistemas de punto final preparados para la nube

Diseñadas para una rápida implementación, como sistemas de punto final, las placas PIC-IoT WA y AVR-IoT WA de Microchip están diseñadas para proporcionar una conectividad inmediata con AWS IoT Core. Las dos placas ofrecen la misma funcionalidad general, pero están diseñadas para proporcionar plataformas familiares a los desarrolladores acostumbrados a trabajar con la familia de microcontroladores PIC de Microchip y a los que trabajan con la familia de microcontroladores AVR ATmega de Microchip. Basada en el microcontrolador ATMEGA4808 de 8 bits de Microchip, la placa AVR-IoT WA utiliza el mismo conjunto de componentes que el PIC-IoT WA (Figura 4), que se basa en el microcontroladorPIC24FJ128GA705 de 16 bits de Microchip.

Imagen de las placas AVR-IoT WA y PIC-IoT WA de MicrochipFigura 4: Las placas AVR-IoT WA y PIC-IoT WA de Microchip proporcionan sistemas de punto final listos para la nube que incluyen el mismo complemento de dispositivos de apoyo construidos alrededor de diferentes microcontroladores Microchip, incluyendo un microcontrolador PIC de 16 bits para la placa PIC-IoT WA que se muestra aquí. (Fuente de la imagen: Microchip Technology)

Para la conectividad, cada una de las placas incluye un módulo certificado de Wi-Fi ATWINC1510-MR210PB de Microchip diseñado específicamente para dispositivos de IoT de baja potencia. El módulo integra 8 megabits (Mbits) de flash y una cadena completa de señales de radiofrecuencia (RF) de transmisión y recepción que incluye un amplificador de potencia (PA), un amplificador de bajo ruido (LNA), un conmutador de RF, la gestión de la potencia y una antena impresa. Junto con la memoria de solo lectura (ROM) de arranque integrado para una rápida capacidad de arranque del firmware, la pila de red incorporada soporta los protocolos estándar de Internet utilizando aceleradores de hardware para acelerar los protocolos de seguridad de la capa de transporte (TLS) y de seguridad Wi-Fi.

Además de un sensor digital de temperatura de precisiónMCP9808 de Microchip y un sensor de fotodiodo TEMT6000X01 deVishay, cada placa incluye un conector mikroBUS. Al usar este conector, los desarrolladores pueden expandir fácilmente la base de hardware seleccionando tarjetas complementarias de la amplia selección de placas disponibles Mikroe Click. Para la administración de la energía y la batería, cada una de las placas incluye un dispositivo MCP73871T-2CCI/ML de Microchip, que proporciona tanto la energía del sistema como la carga de la batería de iones de litio desde una fuente de alimentación USB o un adaptador de pared.

Por seguridad, cada placa incluye un elemento de seguridadATECC608A de Microchip. Para estas placas, este dispositivo viene provisto previamente de claves y certificados para proporcionar soporte inmediato a los mecanismos de autenticación y seguridad de la IoT de AWS.

Usando su colección de componentes de hardware integrados y firmware precargado, las placas están diseñadas para conectarse con un mínimo esfuerzo al AWS IoT Core. Los desarrolladores solo tienen que encender la placa con un cable micro USB conectado a su computadora personal. Después de que la placa se conecta a un punto de acceso Wi-Fi local usando sus propias credenciales o las del desarrollador, se establece automáticamente una conexión MQTT con el AWS IoT Core usando la pila TCP/IP incorporada del módulo Wi-Fi y las credenciales de seguridad preprogramadas. Después de establecer esa conexión MQTT, la placa comienza inmediatamente a transmitir datos de sus sensores de temperatura y luz. Los desarrolladores pueden ver los resultados en una página específica del dispositivo en una cuenta de la caja de arena de Microchip.

Microchip proporciona esta aplicación de base en repositorios separados para el código PIC-IoT WA y el códigoAVR-IoT WA. Al examinar este código, los desarrolladores pueden obtener una rápida comprensión de los patrones básicos de diseño, como el uso de las conexiones MQTT cuando se comunican con la nube para enviar datos de sensores y para recibir comandos o datos (Lista 1).

Copiar
// This will get called every 1 second only while we have a valid Cloud connection
static void sendToCloud(void)
{
    static char json[PAYLOAD_SIZE];
    static char publishMqttTopic[PUBLISH_TOPIC_SIZE];
    ledTickState_t ledState;
    int rawTemperature = 0;
    int light = 0;
    int len = 0;    
    memset((void*)publishMqttTopic, 0, sizeof(publishMqttTopic));
    sprintf(publishMqttTopic, "%s/sensors", cid);
    // This part runs every CFG_SEND_INTERVAL seconds
    if (shared_networking_params.haveAPConnection)
    {
        rawTemperature = SENSORS_getTempValue();
        light = SENSORS_getLightValue();
        len = sprintf(json,"{\"Light\":%d,\"Temp\":%d.%02d}", light,rawTemperature/100,abs(rawTemperature)%100);
    }
    if (len >0) 
    {
        CLOUD_publishData((uint8_t*)publishMqttTopic ,(uint8_t*)json, len);        
        if (holdCount)
        {
            holdCount--;
        }
        else
        {
            ledState.Full2Sec = LED_BLIP;
            LED_modeYellow(ledState);
        }
        
    }
}
 
//This handles messages published from the MQTT server when subscribed
static void receivedFromCloud(uint8_t *topic, uint8_t *payload)
{
    char *toggleToken = "\"toggle\":";
    char *subString;
    ledTickState_t ledState;
   sprintf(mqttSubscribeTopic, "$aws/things/%s/shadow/update/delta", cid);
    if (strncmp((void*) mqttSubscribeTopic, (void*) topic, strlen(mqttSubscribeTopic)) == 0) 
    {
        if ((subString = strstr((char*)payload, toggleToken)))
        {
            if (subString[strlen(toggleToken)] == '1')
            {   
                setToggleState(TOGGLE_ON);
                ledState.Full2Sec = LED_ON_STATIC;
                LED_modeYellow(ledState);
            }
            else
            {
                setToggleState(TOGGLE_OFF);
                ledState.Full2Sec = LED_OFF_STATIC;
                LED_modeYellow(ledState);
            }
            holdCount = 2;
        }
    }
    debug_printer(SEVERITY_NONE, LEVEL_NORMAL, "topic: %s", topic);
    debug_printer(SEVERITY_NONE, LEVEL_NORMAL, "payload: %s", payload);
    updateDeviceShadow();
}

Listing 1: Los desarrolladores pueden examinar muestras de código en los repositorios de software de Microchip para obtener una mejor comprensión de los patrones de diseño clave, como el intercambio de mensajes MQTT con los servicios en la nube, como se muestra en estas dos funciones. (Fuente del código: Microchip Technology)

Los desarrolladores pueden ampliar este código utilizando una variedad de recursos de desarrollo. Microchip soporta el desarrollo de software personalizado con su entorno de desarrollo integrado (IDE) MPLAB X, IDE MPLAB Xpress basado en la nube y compiladores MPLAB XC gratuitos. Para la depuración, cada placa incluye el nano depurador PICkit On-Board (PKOB), que elimina la necesidad de una interfaz de hardware de depuración adicional. Los desarrolladores acceden al depurador PKOB a través de la conexión USB a su computadora personal mientras trabajan en el MPLAB X IDE.

Solución preparada para AWS Greengrass

Microchip hace que aumentar su red de IoT con recursos de computación de punta basados en AWS Greengrass sea casi tan simple como implementar puntos finales conectados a la nube.

Para la plataforma de informática de borde, Microchip proporciona su sistema en módulo (SoM) inalámbrico (WL)ATSAMA5D27-WLSOM1 con soporte de AWS Greengrass calificado. Al igual que las placas de punto final de Microchip, el ATSAMA5D27-WLSOM1 proporciona una completa plataforma de hardware integral diseñada para conectarse fácilmente a los servicios AWS IoT Core (Figura 5).

Diagrama del ATSAMA5D27-WLSOM1 de Microchip (haga clic para ampliar)Figura 5: El ATSAMA5D27-WLSOM1 de Microchip integra un completo complemento de dispositivos necesarios para ofrecer un sistema de informática de borde calificado AWS IoT Greengrass. (Fuente de la imagen: Microchip Technology)

Para el procesador anfitrión, el WLSOM1 utiliza el sistema en paquete de bajo consumo SAMA5D27 (SiP) ATSAMA5D27C-LD2G-CU, que integra el procesador de alto rendimiento SAMA5D27Arm Cortex-A5 de Microchip, que contiene dos gigabits (Gbits) de memoria dinámica síncrona de acceso aleatorio de doble velocidad de datos de baja potencia (LPDDR2-SDRAM).

Al igual que sus placas de punto final, el WLSOM1 de Microchip incluye un módulo inalámbrico certificado. En este caso, Microchip utiliza su ATWILC3000, que soporta tanto la conectividad Wi-Fi como Bluetooth con coexistencia utilizando una combinación de aceleradores de hardware integrados, procesadores integrados y firmware apilado. El WLSOM1 también ofrece conectividad por cable gestionada por un transceptor de Ethernet KSZ8081RNAIA de Microchip. Microchip incluye su flash de 64 Mbit SST26VF064BEUI, que viene provisto previamente con un identificador único ampliado de 6 bytes asignado por el IEEE (EUI-48) y un EUI-64 de 8 bytes. Esto asegura una dirección MAC única a nivel mundial para conectarse de forma fiable a la Internet pública. (Ver "La memoria Flash con una dirección MAC incorporada puede realmente ayudar durante el desarrollo".)

Por último, el WLSOM1 incluye el elemento de seguridad ATECC608A para la seguridad basada en el hardware. Gracias a su alto nivel de integración, el WLSOM1 requiere relativamente pocos componentes más allá de los capacitores de desacoplamiento y las resistencias de arranque para implementar la interfaz de hardware en un diseño de placa.

Crear una placa basada en WLSOM1 en AWS IoT Greengrass requiere muy poco esfuerzo. De hecho, la mayor parte del esfuerzo implica la creación de servicios de AWS para su uso. Microchip proporciona a los desarrolladores guías paso a paso para ello, incluyendo cómo crear una cuenta AWS y cómo definir un grupo de Greengrass de dispositivos centrales y de punto final de Greengrass. Después de construir el sistema de destino en un sistema de desarrollo de Linux, los desarrolladores cargan la imagen de destino, el software Greengrass Core y los certificados en el WLSOM1, normalmente utilizando una unidad flash de tarjeta digital segura (SDCard).

La autenticación y las comunicaciones seguras funcionan de forma transparente para el desarrollador gracias a la seguridad basada en hardware que proporciona el elemento de seguridad ATECC608A. Sin embargo, para los sistemas de borde de Greengrass, el ATECC608A juega un papel importante en la protección de las claves privadas que subyacen a las comunicaciones seguras entre el Greengrass Core que se ejecuta en el sistema de borde y la nube AWS.

Los dispositivos de un grupo de Greengrass dependen de certificados digitales para autenticarse entre sí y autenticar sus mensajes dentro del grupo y con servicios de AWS basados en la nube (Figura 6). Si los mecanismos y protocolos de seguridad subyacentes se ven comprometidos debido a la exposición de claves privadas o certificados fraudulentos, el grupo e incluso los recursos basados en la nube pueden verse comprometidos a su vez.

Diagrama de múltiples certificados respaldados por claves privadas almacenadas en los puntos finalesFigura 6: Para garantizar la seguridad de las transacciones de comunicaciones, los servicios en la nube de AWS y los grupos AWS IoT Greengrass dependen de múltiples certificados respaldados por claves privadas almacenadas en los puntos finales y en el dispositivo Greengrass Core. (Fuente de la imagen: Amazon Web Service

La AWS se protege a sí misma y a las aplicaciones de sus usuarios permitiendo interacciones solo con dispositivos de confianza que incorporen un elemento de hardware seguro capaz de proteger las claves privadas utilizadas para las comunicaciones seguras entre el dispositivo Greengrass Core y el AWS IoT Core, y entre el dispositivo Greengrass Core y los puntos finales (Figura 7).

El diagrama del dispositivo Greengrass Core se basa en el almacenamiento seguro de claves privadas.Figura 7: Un dispositivo Greengrass Core se basa en el almacenamiento seguro de claves privadas mediante elementos seguros como el dispositivo ATECC608A integrado en el SOM inalámbrico ATSAMA5D27-WLSOM1 de Microchip. (Fuente de la imagen: Amazon Web Services)

AWS ha identificado el WLSOM1 así como el elemento de seguridad ATECC608A como soluciones calificadas de Greengrass capaces de cumplir con sus requisitos de seguridad. De hecho, el ATECC608A soporta la capacidad de seguridad mejorada de AWS proporcionada en la Integración de Seguridad de Hardware (HSI) de IoT Greengrass. HSI utiliza los Estándares de Criptografía de Clave Pública n.º 11, que definen una interfaz de programación de aplicaciones (API) estándar de la industria para las comunicaciones entre un procesador y un módulo de seguridad de hardware (HSM) utilizado para almacenar claves privadas. En el WLSOM1, el ATECC608A está designado como un HSM calificado por AWS Greengrass. El soporte para esta interfaz de seguridad estándar es particularmente importante para los sistemas basados en Linux utilizados en los sistemas de borde en general y en los dispositivos Greengrass Core en particular.

Al usar esta base de software seguro, los desarrolladores pueden extender con seguridad sus sistemas de borde de Greengrass Core con capacidades de procesamiento local utilizando las funciones AWS Lambda, que proporcionan un modelo de programación impulsado por eventos relativamente simple. Mientras que el código personalizado que se ejecuta en el dispositivo Greengrass Core puede soportar requisitos de aplicación específicos, las funciones AWS Lambda permiten que estos dispositivos interactúen directamente con los servicios de nube de AWS. Por ejemplo, los desarrolladores pueden implementar fácilmente las funciones Lambda que conectan los puntos finales con los servicios de AWS, como el sistema de gestión de bases de datos NoSQL DynamoDB de Amazon para el almacenamiento de datos u otros servicios del amplio conjunto de ofertas de AWS (Figura 8).

El diagrama de AWS IoT Greengrass permite a los sistemas de borde proporcionar un procesamiento local.Figura 8: AWS IoT Greengrass permite que los sistemas de borde proporcionen un procesamiento local incluyendo el uso de las funciones Lambda de AWS para una integración sencilla con los servicios en la nube de AWS para el almacenamiento de datos, aprendizaje de máquinas y otras capacidades. (Fuente de la imagen: Amazon Web Services)

Conclusión:

La implementación de una red de IoT con recursos de informática de punta puede resultar una empresa desalentadora con múltiples requerimientos de dispositivos de punta, sistemas de informática de punta y conectividad segura en la nube. Existen piezas individuales de la solución requerida, pero su integración en una aplicación coordinada de IoT ha dejado a los desarrolladores enfrentados a las complejas tareas de implementar las interfaces de servicio, los métodos de comunicación y los protocolos de seguridad requeridos por los proveedores de nubes de IoT.

Como se muestra, un conjunto de productos de computación de punta y de borde listos para la nube de Microchip Technology proporciona una solución estándar diseñada para conectarse fácilmente con los servicios de IoT de AWS y el servicio de computación de punta de AWS IoT Greengrass. Los desarrolladores pueden utilizar las tarjetas de punto final calificadas AWS de Microchip y una plataforma de computación de borde del sistema inalámbrico del módulo para proporcionar una conectividad casi transparente a la nube AWS y acelerar la implementación de la red de IoT.

Más información

  1. La memoria Flash con una dirección MAC incorporada puede realmente ayudar durante el desarrollo

Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de Digi-Key Electronics o de las políticas oficiales de Digi-Key Electronics.

Acerca de este autor

Stephen Evanczuk

Stephen Evanczuk tiene más de 20 años de experiencia escribiendo para y sobre la industria de electrónica en un amplio rango de temas, entre ellos hardware, software, sistemas y aplicaciones, que incluyen IoT. Se doctoróen neurociencias (redes neuronales) y trabajó en la industria aeroespacial en sistemas seguros con distribución masiva y métodos de aceleración de algoritmos. Actualmente, cuando no escribe artículos sobre tecnología e ingeniería, trabaja en aplicaciones de aprendizaje profundo sobre sistemas de reconocimiento y recomendaciones.

Acerca de este editor

Editores de Digi-Key de América del Norte