Cómo conectarse y enviar datos de IoT de manera rápida directamente a la nube y acceder de manera remota.

Por Bill Giovino

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

Muchos desarrolladores trabajan actualmente en proyectos de Internet de las Cosas (IoT) que requieren una conexión a la nube para el almacenamiento de datos, acceso remoto y, más recientemente, para servicios de inteligencia de datos. Sin embargo, resulta difícil para los desarrolladores encontrar el medio más eficiente y seguro para establecer esta conexión.

Este artículo describe cómo utilizar la placa de evaluación de Google Cloud de Microchip Technology como un nodo terminal de sensor de IoT para conectarse a la plataforma de IoT de Google Cloud. Esto permitirá a la placa almacenar datos que pueden ser leídos desde cualquier lugar utilizando una interfaz simple basada en un navegador.

Comenzar a utilizar el almacenamiento en la nube

Para un nodo terminal de IoT integrado, comenzar a utilizar el alojamiento en la nube requiere de un servidor en la nube con la conectividad y el software seguros requeridos. La plataforma Google Cloud (GCP) provee eso. Además, el nodo terminal de IoT integrado debe tener un firmware que permita el control remoto del nodo terminal. Microchip Technology simplificó el proceso de desarrollo al proveer todo el software necesario con la placa de evaluación de la nube AVR-IoT AC164160.

Imagen de placa de evaluación de la nube AVR-IoT de Microchip

Figura 1: La placa de evaluación de la nube AVR-IoT de Microchip es un nodo terminal de IoT que puede ser utilizado por un desarrollador para conectar rápidamente un proyecto a un servidor de IoT de Google Cloud. (Fuente de la imagen: Microchip Technology)

Mientras que la placa AVR-IoT es apropiada para un nodo terminal de IoT, una observación detallada de su funcionamiento muestra cómo funcionan los nodos terminales de IoT y la computación en la nube.

Funcionamiento de la placa AVR-IoT

La placa está configurada para conectarse a un servidor de Google Cloud a través de Wi-Fi. Una vez que se establece la conexión al servidor, los datos en tiempo real se pueden almacenar y mostrar.

Los componentes de la placa fueron elegidos para optimizar el empleo de poca potencia, por lo que es ideal para nodos terminales de IoT que funcionen a batería. El microcontrolador es un procesador ATMEGA4808-MFR de 8 bits AVR® de Microchip que funciona a 20 megahercios (MHz) y consume 8.5 miliamperios (mA). En Modo de Espera, con únicamente el reloj en tiempo real (RTC) en funcionamiento, consume 690 nanoamperios (nA).

El microcontrolador controla la placa y funciona como interfaz a todos los sensores y LED. El núcleo compatible con 48 kilobytes de memoria flash, 6 kilobytes de memoria estática de acceso aleatorio (SRAM) y 256 bytes de memoria programable y borrable de sólo lectura (EEPROM). La EEPROM se utiliza para almacenar datos de conectividad Wi-Fi. Un multiplicador de hardware de dos ciclos ahorra energía reduciendo los ciclos de la unidad central de procesamiento (CPU).

El ATMEGA4808 tiene un complemento completo de periféricos, incluidos cuatro temporizadores de 16 bits, tres emisores-receptores síncronos y asíncronos universales (USART), una interfaz periférica serial (SPI) y un comparador análogo, lo que la hace adecuada para aplicaciones de nodo terminal de sensor de IoT de baja potencia.

Para la conectividad Wi-Fi, el ATMEGA4808 se conecta a través del puerto serie SPI a un módulo Wi-Fi de IoT 802.11 b/g/n de 2.4 gigahercios (GHz) ATWINC1510-MR210UB1961 de Microchip Technology. Es completamente autónomo y es compatible con seguridad por privacidad equivalente a cableado (WEP), acceso protegido Wi-Fi (WPA) y acceso protegido Wi-Fi versión 2 (WPA2). Cuenta con una antena integrada para ayudar a los desarrolladores que no sean expertos en diseño de antenas de radiofrecuencia (RF). También es compatible con una antena externa si se requiere rango adicional. Las conexiones cifradas se soportan mediante seguridad de la capa de transporte (TLS).

Imagen de un módulo Wi-Fi WINC1510 de Microchip Technology

Figura 2: El módulo Wi-Fi WINC1510 de Microchip Technology tiene un espacio de 21.7 milímetros (mm) x 14.7 mm y es compatible con puntos de acceso inalámbrico 802.11 b/g/n de 2.4 GHz. Se conecta a un microcontrolador principal a través de un puerto serial SPI. (Fuente de la imagen: Microchip Technology)

El WINC1510 funciona con un suministro de entre 2.7 y 3.6 voltios, y en funcionamiento consume 290 mA. El modo de ahorro de batería disminuye el gasto de energía del dispositivo y guarda todas las configuraciones. En este modo, el módulo consume 380 microamperios (µA), lo que es útil para aplicaciones de muy poca potencia que encienden y apagan el radio, como el control de balizas. El WINC1510 tiene la capacidad de conectarse a un acceso Wi-Fi en 150 milisegundos (ms). La interfaz completa a un microcontrolador principal utiliza ocho pines: una interfaz secundaria SPI de 4 cables y cuatro entradas y salidas de uso general (GPIO) para señales de control. El módulo posee todas las certificaciones para su uso en América, Europa y Asia. Esto simplifica enormemente el proceso para obtener la aprobación del diseño final por parte de la Comisión Federal de Comunicaciones (FCC).

La placa AVR-IoT tiene un espacio de 63.5 mm x 25.4 mm y se conecta a una computadora a través de un cable USB para transferencia tanto de energía como de datos. Es compatible con Windows, Linux y MacOS. Al encenderla, las cuatro luces LED de la placa (azul, verde, amarilla y roja) se mostrarán rápidamente en orden secuencial de izquierda a derecha dos veces para indicar el correcto funcionamiento de la placa.

La placa figura como una memoria flash conectada a la computadora, y mostrará cinco archivos. Para conectarse a Internet, el desarrollador hace clic sobre el archivo oportunamente llamado CLICK-ME.HTM. Esto abre una página en el servidor predeterminado que permite al desarrollador conectarse al Wi-Fi local (Figura 3).

Imagen de placa Microchip AVR-IoT

Figura 3: La placa Microchip AVR-IoT se conecta a la red Wi-Fi local ingresando la información del punto de acceso Wi-Fi en la parte inferior izquierda del archivo CLICK-ME.HTM. (Fuente de la imagen: Microchip Technology)

Luego de ingresar el nombre de la red, seleccionar el tipo de red e ingresar la contraseña, el LED azul se encenderá, lo que indicará que la placa está conectada a la red Wi-Fi local. Luego, el LED verde se encenderá, lo que indicará que la placa está conectada al servidor de Google Cloud. Cada vez que la placa envía datos al servidor de Google Cloud, el LED amarillo se encenderá momentáneamente. Toda la información enviada entre la AVR-IoT y el servidor de Google Cloud está cifrada.

IoT, conexiones cifradas y cifrado de datos

El tráfico de Internet entre puntos ocurre a través de una conexión segura que normalmente es cifrada utilizando seguridad de la capa de transporte (TLS). Sin embargo, aun así es posible que un hacker encuentre una falla en la conexión cifrada y obtenga los datos a través de un “ataque de intermediario”. Para prevenir que un diseño sea víctima de uno de estos ataques, los datos también deben ser cifrados, normalmente utilizando los estándares de cifrado AES o SHA.

Para cifrar los datos transmitidos a Google Cloud, la AVR-IoT incluye un chip de autenticación de cifrado de seguridad Security CryptoAuthentication™ ATECC608A-MAHCZ-T de Microchip Technology, que funciona como interfaz hacia el microcontrolador AVR a través de una interfaz I2C. El ATECC608A es un chip de memoria criptográfica compatible con una variedad de estándares de cifrado, incluidos el AES-128 y el SHA-256. Se utiliza para almacenar las claves públicas y privadas usadas para comunicarse con el servidor de Google Cloud.

Cada ATECC608A en todas las AVR-IoT viene preprogramado por Microchip Technology con sus propias claves públicas y privadas únicas. La clave privada en el ATECC608A se encuentra en un almacenamiento seguro y no puede ser revelada, incluso si se controla y conecta la interfaz I2C con un analizador lógico. La clave pública se encuentra en la URL enviada a Google Cloud, y también en un archivo PUBKEY.TXT que puede ser leído a través de la interfaz USB de la computadora anfitriona conectada a la AVR-IoT. El funcionamiento detallado del ATECC608A está disponible a través de Microchip Technology solo mediante un acuerdo de confidencialidad.

Sin embargo, el firmware en el controlador ATMEGA4808 en la AVR-IoT viene configurado para utilizar de manera eficiente el ATECC608A en un proyecto de Google Cloud seguro. Esto hace que los detalles de las funciones criptográficas del ATECC608A sean en general transparentes para el desarrollador, lo que simplifica y acelera enormemente el desarrollo.

Para nodos terminales de IoT de alta seguridad, el ATECC608A protege tanto la aplicación como a sí mismo. Es altamente resistente al hackeo físico y puede detectar y proteger de muchos ataques de canal lateral, como la aplicación de frío extremo para mantener contenidos de la memoria o un reloj I2C más rápido o lento de lo normal. También puede detectar intentos de quitar el cartucho del dispositivo para examinar su arquitectura interna. Los contenidos de la memoria interna del dispositivo también están cifrados. El ATECC608A también contiene mecanismos de seguridad confidenciales que son conocidos únicamente por los ingenieros de Microchip Technology.

Trabajar con el servidor de IoT de Google Cloud

Luego de que la AVR-IoT se conecta al servidor de IoT de Google Cloud, comienza a intercambiar datos. La AVR-IoT incluye un sensor de luz y uno de temperatura. La información de estos sensores es enviada al servidor de Google Cloud y puede mostrarse en tiempo real (Figura 4). Para visualizar la información desde cualquier navegador, el desarrollador debe entrar a la siguiente página URL:

avr-iot.com/device/{publickey}

Aquí, {publickey} es la clave pública asignada a la placa AVR-IoT.

El servidor de Google Cloud utilizado es una cuenta en un entorno de pruebas de muestra, para que la información enviada desde la AVR-IoT a Google Cloud no se almacene de manera permanente y se elimine cuando la conexión con el servidor se caiga.

Imagen de un servidor de IoT de Google Cloud

Figura 4: La página web utilizada desde el servidor de IoT de Google Cloud muestra la información de los sensores de temperatura y luz tomada de la AVR-IoT. (Fuente de la imagen: Microchip Technology)

Para un servidor en nube más completo, el kit AVR-IoT contiene instrucciones para adquirir una cuenta privada de Google Cloud. Con una cuenta privada de Google Cloud, el desarrollador puede almacenar información permanentemente en Google Cloud para utilizarla más tarde. El desarrollador también puede crear una interfaz web en la versión privada de Google Cloud que se puede comunicar con la AVR-IoT, lo que permite a la interfaz web hospedar aplicaciones en línea que envíen comandos a un firmware personalizado en la placa. El desarrollador puede, por ejemplo, controlar cualquiera de los pines GPIO en el ATMEGA4808 desde cualquier lugar del mundo, que pueden estar conectados a un equipo electrónico.

Conclusión

Aunque hay muchos libros y sitios web que explican el almacenamiento en la nube, así como el acceso y el uso, lo más fácil es aprender con ejemplos. La placa AVR-IoT de Microchip hace que conectarse a la nube sea fácil, a la vez que demuestra los puntos básicos del almacenamiento en la nube, el cifrado y el control de nodos terminales de IoT.

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.

Información sobre el autor

Bill Giovino

Bill Giovino es ingeniero electrónico con un BSEE de la universidad de Syracuse y es uno de los pocos profesionales capaz de pasar de ingeniería en diseño a ingeniería de aplicación en campo a marketing tecnológico de forma exitosa.

Durante más de 25 años, Bill ha disfrutado promocionar las nuevas tecnologías a audiencias técnicas y no técnicas por igual en muchas empresas, entre ellas STMicroelectronics, Intel y Maxim Integrated. Mientras trabajó en STMicroelectronics, Bill ayudó a dirigir los primeros éxitos de la empresa en la industria de microcontroladores. En Infineon, Bill estuvo a cargo de que el diseño del primer controlador de la empresa tuviera éxito en la industria automotriz de EE. UU. Como consultor de marketing para CPU Technologies, Bill ha ayudado a muchas empresas a convertir sus productos con bajo rendimiento en casos de éxito.

Bill fue uno de los primeros en adoptar el Internet de las cosas, incluso colocar la primera pila de TCP/IP en un microcontrolador. Bill es un ferviente creyente de "Vender a través de la educación" y de la gran importancia de contar con comunicaciones claras y bien escritas a la hora de promocionar productos en línea. Es moderador del grupo en Linkedin denominado Semiconductor Sales & Marketing (Marketing y ventas de semiconductores) y habla sobre el concepto B2E (empresa-empleado) de manera fluida.

Información sobre la editorial

Editores de Digi-Key de América del Norte