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.

Image for post
Image for post

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.

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.

Image for post
Image for post

“ 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:

Image for post
Image for post

Plataforma IoT CAmpeche

Image for post
Image for post

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

Image for post
Image for post

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

Image for post
Image for post

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).

Image for post

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:

Image for post
Image for post

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:

Image for post
Image for post

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

Image for post
Image for post

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store