Lenguaje de programación para Zigbee [cerrado]

-4

He hecho una pequeña investigación en el campo del zigbee. Pero, un pequeño conflicto b / w usando python o java o c para la codificación de zigbee en caso de monitoreo remoto.

    
pregunta hanu

3 respuestas

6

No creo que realmente entiendas de lo que estás hablando aquí.

"Zigbee", o IEEE 802.15.4, es un protocolo . Como tal, no tiene "lenguaje de programación".

Teóricamente, es completamente posible implementar un sistema que pueda manejar el protocolo zigbee en cualquier lenguaje de programación, asumiendo que cualquier lenguaje que estés usando tenga el soporte de hardware adecuado para interactuar con cualquier tranciever que estés usando.

De manera realista, en aproximadamente el 98% de las situaciones en las que está creando un sistema compatible con IEEE 802.15.4, va a trabajar con un microprocesador integrado pequeño. El hecho de que esté trabajando en una pequeña MCU, no el hecho de que el sistema necesite hablar IEEE 802.15.4 es el responsable del hecho de que la mayoría de los sistemas IEEE 802.15.4 están programados en C , como los idiomas de nivel superior (como java o python) no son adecuados para ejecutarse en micros pequeños.

    
respondido por el Connor Wolf
1

Para aplicaciones industriales en MCU pequeñas, Ada podría estar en la lista de candidatos, especialmente cuando se necesita alta confiabilidad, como en aplicaciones médicas.

Es un lenguaje compilado como C, y tiene muy buenas instalaciones para manipular bits en los puertos, pero no está disponible para cada MPU. Los procesadores Arm, AVR y (experimentalmente) MSP430 pueden dirigirse hasta el momento.

Como sugiere el comentario de Ian, a menudo se descarta a Ada sin tener en cuenta sus capacidades reales, debido a posibles opiniones obsoletas sobre limitaciones como el tamaño del programa.

Abordando el punto específico, mi ejecutable Ada más pequeño en AVR es de 65 bytes. El control independiente de dos motores paso a paso en AdaFruit Motorshield llegó en aproximadamente 600 bytes y más. Un reloj digital básico que incluye escaneo de pantalla y detección de fallas de oscilos en el MSP430, bajo un kilobyte de memoria de programa; en todos los casos, solo se requieren unos pocos bytes de RAM. Por otra parte, si necesita una tarea completa, ¡eso requiere más!

EDITAR: ¿Qué compilador uso? Básicamente gcc 4.72 construido con --enable-languages = ada, c, c ++ (también conocido como Gnat).

Para AVR, el AVR-Ada project proporciona los parches y el script necesarios para compilar el compilador, más el RTS mínimo , y soporte de dispositivos. La página principal solo resalta una versión anterior (1.1), recomiendo una búsqueda para obtener la nueva Versión 1.2.1 con soporte de subprocesos básico.

También hay soporte comercial para el AVR de Adacore, así como una versión GPL que no he probado ( seleccione AVR-elf-windows como la plataforma)

Para MSP430, las herramientas se encuentran en una etapa mucho más primitiva, el proyecto no lleva mucho tiempo y solo se ha probado en linux (Confieso que es solo mi proyecto hasta ahora) con, en este momento, no hay soporte para subprocesos o memoria > 64k.

Para ARM, no puedo sugerir una cadena de herramientas específica, pero hay varias, incluyendo Dragonlace que cubre Android.

    
respondido por el Brian Drummond
0

Bueno, como lo menciona Connor Wolf, es un protocolo para que pueda escribir programas que se comuniquen a través de ese protocolo en cada idioma que desee. Hice un desarrollo en el que escribí el firmware para MCU en C y los probé desde mi computadora portátil con un dongle USB y gt; tranceiver. Normalmente escribo el software para comunicarme con el dongle USB en Python.

Por lo general, solo manipulas una cadena (o una estructura de datos que se serializa en una cadena) y la envías.

    
respondido por el Morten Jensen

Lea otras preguntas en las etiquetas