Tecnología de servidor web eficiente para microcontroladores con recursos limitados
Hace algún tiempo publicamos un artículo titulado Una nueva mirada a la incrustación de un servidor web, donde sugerimos usar WebSockets en lugar de HTTP con sus comandos tradicionales GET y POST. Un comentarista criticó el artículo por no ser adecuado para una categoría amplia de pequeños sistemas integrados basados en microcontroladores.
El protocolo WebSocket, cuando se utiliza correctamente, utiliza menos recursos que un servidor web tradicional. De hecho, creemos que WebSockets es la única opción viable si alguna vez planea habilitar TLS para el servidor web integrado. Es posible que ya esté utilizando un servidor web integrado en su dispositivo, pero habilitar TLS en un servidor web estándar para un dispositivo con recursos limitados generalmente termina en desastre. Para comprender por qué TLS crea tal problema para la tecnología de servidor web estándar, consulte nuestro tutorial Cuándo no incrustar un servidor web en un dispositivo.
Diseño de referencia de aplicaciones web modernas para microcontroladores
Recientemente comprometimos nuestro servidor HTTP y WebSocket integrado a GitHub. El servidor Embedded HTTP y WebSocket, llamado Minnow Server, ha sido diseñado específicamente para microcontroladores diminutos con recursos limitados.
Más importante aún, también incluimos un ejemplo de referencia que muestra cómo construir una interfaz de usuario web moderna en tiempo real para la administración de dispositivos. La aplicación web es una aplicación de página única (SPA) que utiliza exclusivamente el protocolo WebSocket para la gestión de dispositivos. El protocolo HTTP se usa solo para cargar el SPA. En otras palabras, el navegador utiliza inicialmente HTTP cuando se carga la aplicación a pedido desde el dispositivo.
El ejemplo de referencia incluye actualizaciones en tiempo real de los LED y un medidor de termostato, y muestra cómo realizar la carga de firmware a través de WebSockets. El SPA completo requiere solo 41 Kbytes de espacio de almacenamiento de memoria flash. Además, el servidor WebSocket requiere muy poca RAM para la comunicación.
La siguiente captura de pantalla muestra la página de carga del firmware del SPA. La página es una de varias páginas de ejemplo que muestran cómo beneficiarse del nuevo protocolo WebSocket. La página de carga de firmware muestra cómo crear una lógica de carga de JavaScript de arrastrar y soltar y cómo enviar el archivo cargado al servidor a través de la conexión WebSocket. Todos los mensajes enviados a través de la conexión WebSocket se envían como mensajes de texto JSON, excepto la carga, que se envía como datos binarios. El JavaScript moderno puede administrar fácilmente datos binarios y el protocolo WebSocket admite marcos de texto y binarios.
Introducción al servidor Minnow
Dirígete a GitHub, descarga Minnow Server y comienza a escribir tu propio SPA para tu propio diseño de microcontrolador. El ejemplo de referencia se ha diseñado de modo que se pueda reutilizar fácilmente para su propia aplicación de gestión de dispositivos integrados. Los componentes básicos de CSS y HTML5 de esta aplicación se han diseñado para su reutilización. Además, la biblioteca de JavaScript de comunicación WebSocket incluida en el ejemplo está diseñada para ser genérica y puede reutilizarse fácilmente en otras aplicaciones.
Nota:
El servidor Minnow está diseñado para microcontroladores pequeños, pero dado que el ejemplo de referencia está diseñado principalmente con fines educativos, hemos limitado el entorno de compilación listo para usar a Windows y Linux. Puede migrar la aplicación a un sistema integrado, pero tiene más sentido usar las ideas de diseño en el ejemplo de referencia. Por supuesto, puede utilizar las partes genéricas "tal cual".
Aunque el servidor Minnow se puede configurar para administrar varias conexiones, el ejemplo de referencia está configurado para administrar una conexión a la vez. Intentar conectar una nueva ventana del navegador mientras otra ventana del navegador está usando la única conexión WebSocket no funcionará.
Si no tiene la experiencia necesaria en HTML / CSS / JavaScript, considere la posibilidad de asociarse con un desarrollador web front-end. La mejor manera de pensar en cómo crear un SPA es comparar el proceso de desarrollo con la creación de una aplicación de escritorio o una aplicación de teléfono diseñada para comunicarse con un dispositivo mediante TCP. Por lo general, diferentes desarrolladores están a cargo de la aplicación de escritorio y el firmware del dispositivo y esta también es la mejor manera de diseñar un SPA. Los desarrolladores de firmware y front-end deberían acordar la API de comunicación entre el navegador y el servidor y viceversa. En otras palabras, necesitarían especificar el tipo de mensajes enviados a través de la conexión WebSocket.
Wilfred Nilsen , Fundador y director de tecnología de Real Time Logic, tiene 28 años de experiencia en el diseño de software integrado. Impulsado por una visión de los sistemas integrados conectados, diseñó el servidor de aplicaciones Barracuda, adaptándolo para las necesidades de tiempo real y de tamaño reducido de los microprocesadores integrados.
Tecnología de Internet de las cosas
- Textil electrónico transpirable para aplicaciones de RF para vestir
- Tendencias en la fabricación para 2021
- Memoria de cambio de fase incorporada de muestreo ST para microcontroladores automotrices
- Tres pasos para la adopción de IoT para las aseguradoras de salud
- El lugar de trabajo proporciona el ajuste perfecto para los wearables
- LoRaWAN reemplazará temporalmente las redes 5G para IoT
- Tecnología SQL; punto de referencia por una razón
- 5 industrias destinadas a la disrupción tecnológica
- Las 3 mejores razones para utilizar la tecnología IoT para la gestión de activos
- Tecnología IoT para el sector energético:una transformación significativa
- Uso de la Tecnología IIoT para el Monitoreo del Consumo de Energía