Usando JavaScript para programar dispositivos IoT

Nos bons velhos tempos, a programação de micro-controladores era realizada usando os códigos de Assembly ou no máximo em linguagem C, mas nos últimos anos idiomas de nível superior como o Python e JavaScript interpretado, fizeram a sua aparição nos MCU’s. Bons exemplos disso são projetos como o MicroPython ou Espruino (JS) rodando não apenas em microcontroladores STMicro STM32 ARM Cortex M, mas também em outras plataformas, como o ESP8266.

JerryScript

Para quem já está familiarizado com o JavaScript uma boa noticia é que a Samsung está a trabalhar na implementação de um motor de JavaScript, leve e ‘open source’ para a Internet das Coisas, o JerryScript.
Ele é uma implementação completa do padrão ECMAScript 5.1, escrito em C e que pode funcionar com micro-controladores, com menos de 64 KB de RAM, e menos de 200KB de armazenamento. (Ocupa 160KB com compilação ARM Thumb-2)

O JerryScript é formado por dois componentes principais: o Parser e a Virtual Machine (VM). O Parser faz a conversão da aplicação escrita em ECMAScript para ‘byte-code’ que por sua vez é então executado pela máquina virtual que faz a interpretação do código.

Estrutura do JerryScript

Estrutura do JerryScript

Embora o JerryScript seja projetado para uso em MCUs – ele é executado em centenas de milhares de smartwatches – é possível executá-lo facilmente em qualquer máquina com Linux:

git clone https://github.com/Samsung/jerryscript.git
cd jerryscript
python tools/build.py
./build/bin/jerry
jerry> print ('Hello, World!');
Hello, World!

 O código pode ser compilado visando uma implementação completa, compacta ou mínima, e pode ser usada a API em C para integrar o suporte JavaScript ao seu programa, etc. Mais detalhes podem ser encontrados no site do JerryScript assim como no seu repositório Github.

IoT.js

IoT.js é mais leve que node.js

IoT.js é mais leve que node.js

O JerryScript também faz parte do framework IoT.js da Samsung, que pretende usar o JavaScript como um mecanismo para o desenvolvimento de aplicativos para Internet das Coisas. O projeto é uma versão mais leve do Node.js, tendo como objetivo rodar em dispositivos com recursos limitados, com apenas alguns kilobytes de RAM disponível,

Estrutura do IoT.js

Estrutura do IoT.js

O IoT.js é mais uma das empreitadas da Samsung para tornar todos os dispositivos interoperáveis na Internet das Coisas, habilitando mais aparelhos para trabalharem uns com os outros, dos sofisticados como aplicações domésticas, dispositivos móveis e televisões aos mais simples, tais quais lâmpadas, termômetros, interruptores e sensores.

Atualmente ele é executado em plataformas Linux e NuttX RTOS, bem como STM32F4-Discovery e Raspberry Pi 2, e em breve será portado para as placas Samsung Artik 1 (MIPS), STM32F429-Discovery, STM32F411-Nucleo e Intel Edison.

Outras implementações de JavaScript para IoT podem ser encontradas nestes slides de João Gabriel Lima e uma alternativa ao IoT.js é o projeto do Microlattice.js, que também utiliza o motor do JerryScript.

0

Engenheiro de Computação

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *