Empleando la Inteligencia de Borde Inalámbrico con Digi XBee MicroPython

Digi Internacional Digi Internacional
19 de abril de 2019

En Digi, innovamos e iteramos constantemente para ofrecer las mejores soluciones inalámbricas a nuestros clientes, socios y fabricantes de equipos originales. Nuestro rico conjunto de módulos inalámbricos, recursos y herramientas permite a los desarrolladores crear productos y aplicaciones conectados para una amplia gama de aplicaciones en los sectores agrícola, industrial, médico y de ciudades inteligentes.

En este post compartiremos las mejoras realizadas a las capacidades de MicroPython en nuestra línea XBee®, y las nuevas características que hemos desplegado. Continuaremos añadiendo mejoras para apoyar la inteligencia de borde en aplicaciones IoT . "¡No hemos hecho más que empezar!

Con la última versión del firmware 3Digi XBee MicroPython, el conjunto de funciones permite ahora a los clientes crear una lógica empresarial real en el propio XBee durante el ciclo de vida del producto final.

He aquí un rápido repaso a algunas de las nuevas características:

  • Hemos ampliado las capacidades de MicroPython en toda la línea de productos.
  • Hemos añadido la compatibilidad con los módulos personalizados de MicroPython a nuestros productos de corto alcance.
  • Además, hemos añadido la posibilidad de actualizar la aplicación MicroPython de forma remota a través del aire.

Hablemos un poco más de la funcionalidad mejorada.

Capacidades ampliadas de MicroPython

Las nuevas capacidades de MicroPython significan que puedes esperar que las interfaces de E/S sean iguales en toda la línea de productos XBee 3. Tanto si quieres utilizar PWM para accionar un motor, como si quieres interactuar con un termostato o sensor I2C, o simplemente encender y apagar una luz, podrás utilizar tu dispositivo Digi XBee 3 para añadir inteligencia e interactuar directamente con el mundo real. Como veremos, los posibles casos de uso en el mundo real incluyen desde la automatización del hogar hasta aplicaciones industriales IoT .

Soporte personalizado de MicroPython

En los productos de corto alcance Digi XBee 3, los clientes pueden ahora añadir sus propios módulos MicroPython personalizados. Un entorno Python sin módulos es muy limitado. Los módulos son fundamentales para la programación en Python y las mejores prácticas de ingeniería de software. Hacen que sea sencillo compartir código común entre diferentes módulos XBee 3 e incluso diferentes productos finales del cliente.

Actualizaciones en directo de MicroPython

Las actualizaciones por aire (OTA) significan que si encuentras un error en tu código o quieres mejorar las capacidades de tus dispositivos en el campo, puedes empujar un nuevo código a tus XBee sin tener que rodar un camión a cada uno.

En muchas aplicaciones, como el alumbrado público, tener que acceder físicamente a los dispositivos para arreglar un fallo o añadir alguna nueva función no es práctico. Esta función permite actualizar los dispositivos sin tener que desmontarlos físicamente, lo que ahorra tiempo y trabajo.

Actualizaciones por aire para corto alcance y telefonía móvil

Digi XBee y los clientes de XBee 3 ya están familiarizados con nuestra capacidad para actualizar su firmware XBee a través del aire. Nuestro equipo de desarrollo se propuso garantizar que los clientes también puedan actualizar remotamente las aplicaciones MicroPython en dispositivos Digi XBee 3. Para los dispositivos que utilizan IP, integramos Digi Remote Manager® (Digi RM), el servicio en la nube de Digi para la supervisión remota de dispositivos y la gestión de la configuración. Para los productos RF de corto alcance que no están en una red IP como Zigbee, utilizamos la función OTA.

Digi XBee 3 productos de corto alcance que incluyen 802.15.4, DigiMesh y Zigbee no pueden conectarse directamente a Digi RM y también tienen una función de actualización de MicroPython por aire. Dado que tienen un espacio más limitado que XBee 3 Cellular, utilizamos las funciones de actualización del firmware que ya estaban presentes en el producto para cargar una simple imagen del sistema de archivos que contiene la aplicación Python y sus módulos de apoyo.

En el caso de los productos Digi XBee 3 Cellular, puedes utilizar Digi RM para interactuar directamente con el sistema de archivos de tu XBee. No sólo puedes cargar tu código Python, sino que puedes configurarlo para que las actualizaciones sólo se produzcan cuando los dispositivos en reposo se despierten, para un uso óptimo de la batería. Esta capacidad utiliza una función exclusiva de los dispositivos Digi conectados a Digi RM llamada Consulta de Mensajes Cortos (SM). Le permite minimizar el uso de datos e incluso conectarse bajo demanda a través de SMS o en el siguiente intervalo de registro a través de UDP.


 

Obtenga más información sobre Digi RM en nuestro libro blanco, IoT Device Management: Despliegues seguros y escalables con Digi Remote Manager

 


Ventajas de utilizar MicroPython

MicroPython permite a los clientes añadir inteligencia a los productos finales sin el tiempo, el coste y la complejidad añadidos de diseñar en un microcontrolador anfitrión. Por supuesto, no se trata de un modelo único; la elección de utilizar MicroPython o un procesador anfitrión depende de la complejidad y los requisitos de la aplicación.

Un microcontrolador anfitrión puede ser apropiado, y los dos no son mutuamente excluyentes. MicroPython puede servir para añadir funcionalidad al módulo de comunicaciones que podría no estar ahí de otro modo (por ejemplo, MQTT), y así ahorrar el tiempo necesario para implementarla en el MCU anfitrión. Dicho esto, muchas aplicaciones no requieren un procesador anfitrión y simplemente requieren que su lógica de negocio realice alguna secuencia de las siguientes acciones:

  • Leer una entrada (I2C, GPIO)
  • Seguir un intervalo
  • Enviar algunos datos
  • Realice un cálculo sencillo
  • Comprobar si hay una condición que cambiar
  • Encender o apagar un dispositivo
  • Dormir
  • Despierta

Las acciones anteriores se combinan de forma sencilla para resolver problemas, y cualquiera de estas acciones puede realizarse utilizando MicroPython. Un típico XBee 3 ejecutando MicroPython podría dormir durante cinco minutos, despertarse para comprobar si el estado de un GPIO ha cambiado de bajo a alto, y luego volver a dormir. Si el valor cambia, podría enviar un mensaje de texto para emitir una alarma de que algo ha ido mal.

Ejemplos de uso de Digi XBee 3 MicroPython

Existen muchos usos prácticos cotidianos para esta funcionalidad, así como aplicaciones de campo para la industria IoT. Los distintos tipos de casos de uso pueden requerir la funcionalidad de la línea celular de XBee 3 (Cat 1, LTE-M, NB-IoT, 3G), o los productos de corto alcance de XBee 3 (Zigbee, DigiMesh, 802.15.4), en función de la topología y la distribución de dispositivos requeridas y de la frecuencia y la cantidad de datos a enviar.

Exploremos ejemplos que muestren el abanico de posibilidades.

Sensor de nivel de agua

En determinados climas, las viviendas pueden sufrir fallos en las bombas de sumidero debido a un exceso de nieve derretida y escorrentía, o a tormentas que producen un gran volumen de lluvia. Un simple sensor de nivel de agua alto puede alertar al propietario del problema antes de que provoque una inundación del sótano.

Aplicación de lectura de datos diarios

En otro ejemplo de una aplicación típica Digi XBee 3 MicroPython, el módulo duerme durante un día, se despierta, lee un sensor I2C, transforma los datos con un cálculo sencillo, formatea el resultado y, a continuación, transmite el punto de datos aguas arriba a la nube IoT deseada o a una pasarela local para su agregación, dependiendo de si el XBee 3 es celular o de corto alcance, respectivamente.

Aplicaciones industriales y agrícolas

El uso de MicroPython en Digi XBee 3 está ganando adeptos entre nuestros clientes para resolver problemas del mundo real.

Digi XBee MicroPython

Por ejemplo, un cliente utilizó MicroPython en XBee 3 Cellular LTE-M para construir la lógica en sensores de suelo alimentados por batería para monitorizar la temperatura y la humedad de los campos de pilas de mantillo. Esta aplicación utilizó varias bibliotecas de MicroPython, incluyendo MQTT, para publicar los datos en la nube de AWS (Amazon Web Services) IoT .

Otro cliente utilizó una biblioteca de cliente FTP para registrar datos en el sistema de archivos y luego transmitirlos a su propio servidor de aplicaciones.

En otro caso de uso, un cliente utilizó MicroPython en XBee 3 Zigbee para leer la temperatura actual y enviarla a un nodo remoto en una aplicación de medición de vapor.

Simplicidad del código de MicroPython

Lo mejor de estas soluciones es que implican un código MicroPython increíblemente sencillo. Un desarrollador experto puede crear una aplicación útil en 100 líneas de código o menos.

Las soluciones de MicroPython sólo están limitadas por la imaginación. Por ejemplo, puede utilizar MicroPython con los dispositivos Digi XBee 3 para hacer cualquiera de las siguientes cosas y más:

  • Manejar una pantalla simple
  • Interfaz con BLE
  • Añadir un protocolo de red simple
  • Mejorar el modo API con el marco de retransmisión de datos del usuario
  • Gestionar las solicitudes de la nube

Acabamos de empezar a ofrecer soluciones de inteligencia de vanguardia en Digi XBee 3. Digi está trabajando activamente para ampliar nuestras herramientas de desarrollo MicroPython, bibliotecas, programas de ejemplo y aplicaciones que alojamos en nuestro repositorio github. Estos recursos para desarrolladores proporcionan bloques de construcción que puede utilizar para resolver problemas reales añadiendo inteligencia a IoT sus productos y aplicaciones.

Próximos pasos

Obtenga nuestro informe técnico
Más información sobre la seguridad Bluetooth con dispositivos Digi XBee