welo

Hoje vivenciamos uma revolução chamada de “Internet of Things”, em que temos mais “coisas” do que pessoas conectadas à internet. E para tirar proveito deste efeito diversos fabricantes já conhecidos no mercado e  novos empreendedores estão lançando novas ferramentas e soluções no mercado, de modo a serem usadas por profissionais ou simplesmente por entusiastas de plantão.

[vimeo 85131238 w=500 h=281]

WeIO – Platform for Web of Things, de NoDesign [4] no Vimeo.

Uma destas soluções é a WeIO [1], uma placa que possui uma característica já conhecida, como o SoC AR9331, presente no Arduino Yún, mas que se diferencia em um aspecto: O uso de um microcontrolador LPC com core ARM Cortex-M0 para lidar com periféricos analógicos e atividades de tempo real.

Figura 1: Vista inferior e superior da placa WeIO – [1]

O objetivo do projeto é aproximar as coisas da Web, por assim dizer. Já que as coisas estão se conectando à internet, por que não propriamente à Web? Dessa forma, a base do desenvolvimento para soluções com a WeIO é usando HTML5, JavaScript e Python, de modo a criar aplicações puramente Web que interajam com elementos de hardware.

Figura 2: Integração de componentes Web para controle da WeIO – [2]

Segue abaixo uma visualização superior da placa WeIO, com legenda para os componentes e periféricos presentes na placa, e logo depois temos uma descrição detalhada destes componentes.

Figura 3: Destaque para a placa em sua vista superior e seus componentes presentes – [1]

Hardware

Processador, Sistema e Memória

  • SoC Atheros AR9331 operando a 400MHz;
  • Sistema Operacional OpenWRT com Linux Kernel 3.7.9;
  • 16MB de memória Flash e 64MB de memória RAM DDR2;
  • Coprocessador LPC11xx ARM Cortex-M0 para I/Os analógicas e interface de hardware em tempo real.

Armazenamento Adicional

  • WeIO possui entrada para cartão microSD. Não é informado o limite de memória suportada.

Interfaces de comunicação e I/Os de Propósito Geral (GPIOs)

  • 32x GPIO;
  • 1x UART;
  • 2x SPI;
  • 1x I2C;
  • 8 canais de conversão analógico-digital com 10bits de precisão;
  • 6 canais PWM com precisão de 16bits;
  • 2 portas USB Host;
  • 1 adaptador miniUSB FTDI Serial-USB para debug de sistema;
  • 1 interface Ethernet na parte inferior da placa.

Conectividade Sem Fio

  • WiFi 802.11 b/g/n 2.4GHz integrada ao SoC AR9331;
  • Modo simultâneo de AP e STA;
  • Quantidade ilimitada de interfaces virtuais WLAN para criar topologias de redes complexas.

Sensores e feedback

  • LED RGB  conectado a 3 saídas PWM;
  • Termômetro digital LM75.

Tensão de Operação e Alimentação

  • Tensão de operação de 3.3V;
  • Sinais GPIO com tolerância de 5V;
  • Fonte de alimentação externa de 5V.

Interfaces de Programação

  • JTAG para AR9331;
  • JTAG para LPC11xx.

Todo o arranjo de hardware e a pilha de desenvolvimento de software têm como fundamento cumprir com uma necessidade atual de prototipagem rápida e integração de produto final. A WeIO é fruto da experiência em computação física e design de produto da Nodedesign.net [4]. O sistema Linux presente já vem pré-configurado para uma execução eficiente, e vem acompanhado de um rico conjunto de ferramentas para construção das aplicações do usuário, tais como:

  • Suporte a compartilhamento SAMBA;
  • IDE online para desenvolvimento de software embarcado e interface de usuário;
  • Servidor Tornado, escrito em Python, com suporte a WebSockets;
  • Python 2.7 com utilitários pip easy_install para fácil integração e instalação de bibliotecas e componentes adicionais;
  • Bootstrap e jQuery instalados para o desenvolvimento das aplicações Web;
  • Demais características podem ser vistas na página específica do projeto. [3]

Para dar um entendimento melhor de como a arquitetura de operação e desenvolvimento para a WeIO está projetada, segue adiante uma imagem que mostra as camadas de funcionamento da WeIO, onde podemos perceber que o microcontrolador NXP LPC11xx é a parte de mais baixo nível, e o Tornado Server é a base das aplicações, tendo WebSockets como mecanismo padrão de comunicação entre as aplicações e o editor de código IDE.

Figura 4: Pilha de componentes de uma WeIO – [3]

E de modo a exemplificar ainda mais como tudo funciona, segue adiante uma imagem destacando a IDE online para desenvolvimento de aplicações, e demais janelas presentes tais como Network Configurator, que serve para configurar a rede (Ethernet ou Wifi), Console, que serve para acessar o console Linux da WeIO, e Statistics, que fornece informações da WeIO em execução, tais como quantidade de memória RAM disponível, uso de CPU, etc.

Figura 5: IDE online para desenvolvimento [3]

Curiosamente, como pode ser visto no canto superior direito da imagem, há um preview da WeIO. E é exatamente isto! Nesta parte da IDE online a placa WeIO é representada graficamente, destacando todas as entradas e saídas ativas e interfaces utilizadas. E mais interessante ainda, os desenvolvedores colocaram uma ferramenta chamada WebScope, que funciona como um osciloscópio online representando graficamente as entradas analógicas e digitais, de modo a agilizar a prototipação das soluções.

Referências

[1] WeIO – http://www.we-io.net/

[2] Why WeIO – http://www.we-io.net/whyWeio.html

[3] WeIO Features – http://www.we-io.net/features.html

[4] Nodesign – http://www.nodesign.net/

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather