Plataforma IoT & I-IoT CAmpeche

Ilha do Campeche

O município de Florianópolis, capital de Santa Catarina, é composto pela ilha principal, a ilha de Santa Catarina, a parte continental e pequenas ilhas circundantes. Entre estas pequenas ilhas encontramos a Ilha do Campeche.

Fonte: http://www.viasol.tur.br/passeio/ilha-do-campeche/8/

E foi em homenagem a esta paisagem inspiradora que surge a ideia de batizar a customização do Sistema Operacional Arch Linux, base para a Plataforma IoT utilizada pela HydroBytes, de CAmpeche.

Floripa 4kvideos

Conectiva

Outro fator de inspiração foi a Conectiva, empresa brasileira fundada em 1995 e focada no público Linux. Além de sua distribuição Linux voltada para o mercado da América Latina, também publicava a “Revista do Linux”.

A Conectiva foi a primeira empresa brasileira a comercializar e oferecer suporte para uma versão em português do Brasil de uma distribuição Linux ( Rodrigo Stulzer, 2004).

A Conectiva foi muito importante para a expansão e desenvolvimento da comunidade Linux no Brasil. Um exemplo digno de mérito para todos aqueles que buscam formas alternativas para se tornarem competitivos.

Fonte: http://www.comciencia.br/200406/reportagens/18.shtml
“ A Conectiva desenvolveu uma série de produtos e outros serviços direcionados ao mercado de utilitários para softwares livres, incluindo livros, manuais, e softwares adicionais como o Linux Tools” ( Rodrigo Stulzer, 2004).
Confira aqui a história da Conectiva.

HydroBytes

A digitalização é um processo irreversível. Praticamente tudo que está a nossa volta está se transformando em bytes. A transformação (dados > informação > conhecimento explicito) utiliza as mais variadas formas de conversão, transporte e armazenagem para estes bytes. Em 2010 geramos cerca de 1,2 zetabytes com informações digitalizadas segundo dados da IDC. A expectativa é de um crescimento próximo a 35 zetabytes em 2020. Ou seja, 35 trilhões de gigabytes. Estamos literalmente navegando em um oceano de bytes. Este contexto nos levou naturalmente a chamar este oceano virtual de HydroBytes.

Hydro : Exprime a noção de algo liquido, altamente moldável e adaptável de acordo com a necessidade/realidade.

Bytes : Unidade de medida de dados, significa o fluxo de informações vindo de variados dispositivos conectados.

A seguir nos deparamos com o desafio de criar uma logomarca representativa para esta ideia. Aqui passamos a imaginar um oceano em suspensão na nossa atmosfera. E foi neste momento que lembramos do Atrator de Lorenz. Apresentado por Edward Lorenz em 1963, o atrator foi obtido através da simplificação dos rolos de convecção que ocorrem nos modelos matemáticos da atmosfera. É uma representação gráfica caótica que descreve a evolução temporal do estado de um sistema dinâmico. Esta representação gera um padrão complexo , não repetitivo e que lembra a imagem de uma borboleta. E assim nasceu a logomarca que utilizamos hoje:

Plataforma IoT CAmpeche

Arch Linux

1) Customização do Arch Linux:

Foram criados scripts que auxiliam na instalação e configuração da plataforma. Através dos scripts conseguimos realizar a customização sem muito esforço. Este trabalho surgiu da necessidade de gerar uma plataforma sobre a qual fosse possível trabalhar com IoT de forma flexível. Os principais elementos desta customização são: Interface gráfica LXDE, Supervisor, VNCServer, WICD, Avahi, Kivy, HyOiO.

Estou chamando esta customização do Arch Linux de “CAmpeche”.

Usamos um nome que simbolizasse a nossa região. Pois Campeche tem o glamour de ser a ilha da ilha.

Para você entender melhor, segue um esquemático da analogia empregada:

Os Mainframes são representados pelo Continente. Os PC´s são representados pela Ilha de Santa Catarina e as Raspberry Pi e seus equivalentes são representados pela Ilha do Campeche:

( Continente / Ilha de Santa Catarina / Ilha do Campeche)

( Mainframes / PC´s / (Pi3, A20, A13, etc…)

Continente / Ilha de Santa Catarina / Ilha do Campeche

Google Maps

E desta comparação nasceu o nome Campeche como um candidato natural. A grafia final do nome ficou então a seguinte:

O tempo comprovou ser acertado dispender esforço para executar esta tarefa. Basta observarmos que:

  • A Microsoft levou o Windows 10 para a Raspberry Pi3,
  • O Google possui o Brillo,
  • A GE também está trabalhando em um SO IoT para seus produtos.

Apenas para destacar os mais conhecidos.

E para finalizar está lista vale aqui ainda destacar o Endless OS que tem como foco o usuário doméstico “https://endlessos.com/pt-br/".

Para registro vou citar algumas das razões sobre a escolha do Arch Linux:

a) O melhor gerenciador de pacotes segundo os testes realizados (PACMAN).

b) Vem sem nada instalado. O responsável pela customização escolhe o que vai ser instalado a partir de um núcleo mínimo.

c) Compila e gera os instaladores para os aplicativos de forma direta e descomplicada.

d) Filosofia de não estar muito próximo do usuário final, o que facilita todos os processos de automação das tarefas no S.O.

Estas conclusões foram obtidas a partir de muitos testes com várias distribuições. Nada é por acaso…

Atualmente temos homologadas as Raspberry Pi 2/3 e as Olimex (A20/A13).

2) Com o SO definido e customizado chegou a hora de mencionar as aplicações.

A primeira aplicação foi o hyoio (um serviço que faz IO com múltiplos hardware´s). O hyoio é executado a partir do Supervisor que garante que ele estará no ar desde o momento que a placa for energizada. Todas as tarefas que o hyoio executa são definidas no seu arquivo de configuração. O que facilita os ajustes manuais ou via nuvem.

Para facilitar as alterações manuais foi definido que será utilizado uma aplicação com interface gráfica desenvolvida utilizando o Kivy.

Hardware´s com os quais o hyoio já interage:

Leitura/Escrita de CLP´s, os homologados são:

  • Datakom G307
  • Airmaster Q1

Leitura de Beacons (BLE), Leitura dos sensores da Monnit * **.

* A Monnit disponibilizou o protocolo (API) através de um acordo de sigilo

** A Monnit disponibiliza hoje mais de 40 tipos de sensores que operam segundo o conceito de uma rede de sensores.

Assim, fica evidente que a palavra convergência tinha que nortear a concepção do hyoio. Ele foi projetado para interagir com múltiplos tipos de hardware através de sua estrutura funcional multi-thread.

Ampliação do raio de ação do hyoio:

Para ampliar o raio de ação do hyoio foi criado o pyhyo. O pyhyo é uma extensão Python que interage com o hyoio através de um compartilhamento de memória, ou seja, através desta extensão é possível interagir com hardwares através de um script python que utiliza o módulo pyhyo via sua declaração direta no script. Uma extensão Python é uma biblioteca escrita em C++, sob condições especiais de compilação com o objetivo de permitir o seu acesso de forma transparente através do script Python.

Em resumo, através de um script Python que utilize o pyhyo, é possível, por exemplo, realizar de forma direta as seguintes tarefas:

a) Ler informações de um protótipo de hardware de forma amigável e disponibilizar na nuvem através do hyoio.

b) Criar scripts Python para virtualizar a aquisição de dados e assim facilitar os testes em aplicações web.

c) Utilizar o pyhyo em centros de ensino. A escrita dos scripts Python é bem mais simples do que a utilização do C++, por exemplo. Existem registros na internet de crianças (5 anos) que utilizando Python em seu dia a dia na escola.

Conclusão sobre o pyhyo:

Através da sua utilização os usuários que não gostem/conhecem C/C++ poderão de uma foma bem amigável enviar suas informações para a nuvem. Ele realmente amplifica de forma natural o raio de ação do hyoio. A inspiração de usar o Python desta forma nasceu da necessidade de facilitar a tarefa de fazer emulações de hardware´s para testar/validar nosso aplicativo web.

Porque foi escolhido o Python para amplificar o raio de ação do hyoio:

a) O Supervisor é escrito em Python

b) O Kivy é escrito em Python

c) As outras razões podem ser verificas em “https://www.continuum.io/anaconda-overview"

Resumo sobre a construção do hyoio:

Para encerrar este tópico a respeito do hyoio segue um resumo sobre seu desenvolvimento. O hyoio utiliza 15 bibliotecas (free / LGPL). Algumas destas bibliotecas foram compiladas com as devidas diretivas de compilação para atender as necessidades do projeto hyoio. Para dar um exemplo é citado o suporte a multi-threads.

É importante também citar que o hyoio trabalha com o banco de dados SQLite para armazenar as informações no caso de uma interrupção da comunicação com a aplicação web. Ele foi fortemente orientado para gerar logs com a finalidade de auxiliar nas tarefas que envolvem a resolução de eventuais problemas operacionais.

A motivação é que estes logs também serão acessados a partir da nuvem. Assim, diagnósticos para a solução de problemas podem ser gerados de forma mais transparente.

3) Uma vez que tenha descrito o CAmpeche e o hyoio chegou a hora de falar sobre a aplicação web.

A aplicação que WEB foi construída utilizando as seguintes tecnologias: Meteor/React/Flux/Materialize/etc… O objetivo foi se aproximar do conceito da WEB Real-Time. Esta aplicação web troca informações com o hyoio que é executado no CAmpeche.

A aplicação web é customizável para atender as necessidades das regras de negócio de cada situação na qual a Plataforma IoT CAmpeche estiver sendo utilizada.

A consolidação da escolha das tecnologias utilizadas na aplicação web vieram através do seguinte artigo:

“Meteor Is The App Platform For The New World Of Cloud-Client Computing” : http://tinyurl.com/hyxltzy

4) Neste item vamos sair do campo conceitual.

Muito se fala sobre IoT hoje em dia e existem muitas formas para fazer a integração entre o hardware e a nuvem. Assim, vamos apresentar um vídeo com o nosso Gateway em ação. O vídeo apresenta os items 1, 2 e 3 interagindo com o CLP Datakom:

5) Todo o projeto foi concebido e executado em São José (SC). Não confundir com San Jose (CA).

Após ter lido o texto e assistido o vídeo, acredito que ficará mais claro o teor da seguinte pergunta:

“Pode haver alguma situação em que possamos somar algum esforço na busca de um bem comum?”

Se houver interesse em conhecer mais sobre o projeto entre em contato:

Marcos Aurélio Nadolny

E-mails para contato:

aurelionadolny@gmail.com (agende um hangout)

Telefone para contato:
41 3606–1076

Dúvidas, críticas e sugestões serão muito bem vindas.

Eng. Marcos Aurélio Nadolny

www.hydrobytes.com.br