Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Sistema IoT para Aquisição de Dados com REDIS e Linguagem GO – Parte I

Proposta de arquitetura de IoT para o módulo de aquisição de dados de sensores usando o Banco de Dados REDIS e a linguagem GO

Parte I: Introdução

Parte II   Parte III  Parte IV

Nesta primeira parte do artigo, vamos descrever a arquitetura do módulo RECEPTOR. Este módulo pertence a um sistema maior de monitoramento, controle e aquisição de dados de sensores ainda em fase de planejamento.

O objetivo do módulo receptor ou concentrador é  permitir o armazenamento de Dados enviados por uma rede de microcontroladores distribuídos local ou remotamente.

    • Cada dispositivo microcontrolador possui um conjunto de sensores cujas medições são enviadas ao receptor central através de protocolos de comunicação diversificados.
    • Os dados são recebidos por um concentrador similar a um broker ou gateway.
    • Esses dados são então armazenados em um cache de memória de forma extremamente rápida, ficando disponíveis para processamento pela aplicação supervisória.

Para entender melhor, vejamos o diagrama abaixo:

Arquitetura do Módulo Receptor

Sistema de Aquisição de Dados de Sensores

(1) Rede de sensores → Os Sensores estão conectados aos dispositivos microcontroladores que enviam os dados para o concentrador. Não existem restrições quanto aos modelos de placas utilizadas, podendo ser Arduino, ESP8266, ESP32, PIC, etc.
As placas, na verdade, devem ser escolhidas de acordo com a forma de comunicação desejada.
No entanto, existem padrões operacionais e de software que devem ser seguidos para que o dispositivo possa ser conectado ao sistema.

(2) Formas e protocolos de comunicação → Para a comunicação entre os dispositivos e o concentrador estão previstos os seguintes padrões:

    1. Wi-fi/Ethernet (Websocket/HTTP/REST)
    2. RF/LORA
    3. Comunicação serial/Bluetooth
    4. GSM/GPRS

(3) Rotina concentradora  ou Receptora → Rotina em GO que recebe os dados dos sensores, processa e envia para o cache REDIS. Existe uma rotina específica para cada protocolo de comunicação descrito no item 2;

(4) Cache REDIS → Armazena os dados dos sensores de forma temporária ou permanente. Caso seja necessário, o cache pode ser espelhado (replicado).
É possível também criar um esquema de publicação e subscrição de mensagens semelhante ao protocolo MQQT, mas isso não será abordado aqui.

Observações:

    1. Esta introdução é uma descrição genérica e simplificada da arquitetura. Dependendo da forma de comunicação e da distância entre os componentes, pode haver camadas adicionais de hardware/software para interligação ;
    2. A distribuição de servidores para cada camada não é uma decisão definida pela arquitetura,  mas o ideal é ter um servidor LINUX dedicado para o REDIS;
    3. Estamos descrevendo aqui apenas o módulo de aquisição de dados. O módulo de controle será detalhado em uma outra oportunidade.

Tecnologias Empregadas

Vamos relacionar agora as principais tecnologias de software usadas no módulo concentrador:

1) REDIS é um sistema de armazenamento de dados in-memory de excelente desempenho que pode ser usado como banco de dados NOSQL , Cache ou Message Broker.
REDIS usa estruturas de dados do tipo chave-valor, tais como linked lists, Strings, Sets e etc. Além disso, os dados podem ser configurados para serem temporários ou persistidos de diversas formas.
Destaco ainda o suporte para as seguintes funcionalidades:

      • Replicações;
      • Stored Procedures;
      • Particionamento;
      • Etc.

2) GO ou Golang é uma linguagem de programação criada pela Google e lançada em código aberto em novembro de 2009. É uma linguagem estaticamente tipada, compilada e focada em produtividade e programação concorrente (Wikipedia).
Go foi projetada para a realidade multi-core dos computadores atuais. Por isso, devido à sua robustez, é muito usada para programação em servidores de rede em grande escala e  sistemas distribuídos.

3) Lua é uma linguagem de scripting  eficiente e leve e, por isso, facilmente incorporável em outras aplicações. Lua foi desenvolvida por uma equipe na Universidade PUC/RJ e é muito usada para configuração de sistemas, prototipagem e programação embarcada.

Devido a essas características, entre outras,  GO, REDIS e Lua formam uma excelente combinação  para uso com aplicações IoT.

Conclusão

Na próxima parte do artigo, vamos mostrar como obter e instalar o software necessário para o desenvolvimento da aplicação receptora, o concentrador com GO e REDIS.

Parte II   Parte III  Parte IV

Referências

  • Página Oficial do REDIS
  • Página Oficial da linguagem GO
  • Página oficial da linguagem Lua
  • UFES – Redes de sensores e IoT
  • Embarcados – Modelos de Comunicação IoT

O post Sistema IoT para Aquisição de Dados com REDIS e Linguagem GO – Parte I apareceu primeiro em BlogDoJoséCintra.



This post first appeared on BlogDoJoséCintra, please read the originial post: here

Share the post

Sistema IoT para Aquisição de Dados com REDIS e Linguagem GO – Parte I

×

Subscribe to Blogdojosécintra

Get updates delivered right to your inbox!

Thank you for your subscription

×