Pedro Bertoleti, engenheiro eletrônico formado pela Faculdade de Engenharia da Unesp em Guaratinguetá, desenvolveu um projeto de monitoramento inteligente de consumo de água via Internet para livre uso e consulta. O projeto, além de monitorar o consumo e vazão de água, permite configurar uma meta de consumo e avisa por e-mail o usuário quando a meta é atingida, objetivando uso consciente de água. O objetivo foi disponibilizar um guia detalhado para quem quer aprender a fazer um projeto deste tipo.
O projeto está explicado em uma série de três artigos técnicos , de forma bem detalhada. Eles contêm videos explicativos e também que mostram os resultados do projeto.
Acesse os artigos
http://www.embarcados.com.br/monitoramento-de-agua-com-iot-parte-1/
http://www.embarcados.com.br/monitoramento-de-agua-com-iot-parte-2/
http://www.embarcados.com.br/monitoramento-de-agua-com-iot-parte-3/
O projeto se caracteriza por sua multidisciplinaridade, reunindo conceitos de leitura de sensores, processamento de dados, programação em diversas linguagens, utilização de sistema operacional Linux e comunicação de sistemas embarcados com a Internet. Por este motivo, este é um projeto completo para aprendizado de eletrônica e sistemas embarcados.
O projeto tem as seguintes funcionalidades: Monitoramento de consumo de água acumulado; Monitoramento de vazão instantânea; Estabelecer uma meta de consumo/período e um e-mail de contato. Desta forma, quando o consumo acumulado de água superar a meta informada, um aviso é enviado via e-mail para o e-mail de contato fornecido; e todas as informações são acessíveis através da Internet, por qualquer navegador em qualquer sistema operacional.
O sistema é arquitetado conforme mostra a figura 1.
Onde:
1) Sistema embarcado bare-metal: sistema dedicado a ler os pulsos de um sensor de fluxo d´ água e medir vazão instantânea e, além disso, contabilizar o consumo acumulado. Este sistema pode ser calibrado, o que permite sua aplicação em quaisquer condições de fluxo de água.
2) Sistema embarcado Linux: sistema responsável por se comunicar com o sistema medidor / bare-metal e a Internet. Ou seja, ele é que faz a interface entre as medições e a Internet (controle e monitoramento do uusário).
3) ZIgBEE: a comunicação entre o sistema embarcado bare-metal e sistema embarcado Linux é feito sem fio, utilizando para isto ZIgBEE (um em cada sistema, ambos com antena chip).
4) Dispositivos finais: quaisquer dispositivos com navegador web e conectividade com Internet (smartphones, tablet, computadores, etc.).
Outro ponto interessante é a comunicação entre dispositivos finais e o sistema Linux embarcado. Esta é feita utilizando MQTT (Message Queue Telemetry Transport), um protocolo de comunicação baseado no TCP/IP e especificado com foco em transporte de mensagens curtas para Internet das Coisas. Ou seja, há garantia de entrega de 100% dos pacotes, além da rapidez devido a transmitir apenas mensagens curtas. Neste protocolo, tanto os dispositivos finais quanto o sistema Linux embarcado se comportam como clientes, sendo o servidor online (este servidor chama-se broker).
Logo, mesmo na ausência de um dos elementos (dispositivos finais ou sistema Linux embarcado), nenhum erro / feedback de sistema offline é emitido.
Recursos utilizados
Neste projeto, foram utilizados os seguintes recursos de hardware e software:
- a) Recursos de hardware
No sistema bare-metal, foi utilizado um PIC 18F4520. A escolha foi devido ao grande número de material e ferramentas de desenvolvimento (inclusive grátis) disponíveis para este microcontrolador, além da facilidade em achá-lo no mercado.Já no sistema Linux embarcado, foi utilizado um Intel Edison em conjunto com uma placa expansora de I/O Arduino Expansion Board. A escolha do Intel Edison foi feita considerando suas reduzidas dimensões físicas, baixo consumo, alta conectividade (como WiFi já embutido, por exemplo) e boas configurações de processamento e memória RAM. - b) Recursos de software
Como recursos de software, no sistema bare-metal foi utilizado a IDE MPLAB v8.83 em conjunto com o compilador CCS. O firmware foi escrito totalmente em linguagem C.
Já no sistema embarcado Linux, todo o sistema foi feito utilizando a linguagem Python. A escolha foi feita baseado no grande número de tutoriais e manuais existentes para consulta, além de ser uma linguagem com altíssimo nível de abstração, permitindo desenvolver um sistema complexo com poucas linhas de código (em comparação a uma linguagem mais tradicional, como a linguagem C, por exemplo).
Veja o sistema funcionando por completo!
O sistema funcionando por completo pode ser visto nos seguintes vídeos:
Vídeo introdutório:
https://www.youtube.com/watch?v=QkVwL0yyrww
Vídeo de funcionamento da parte bare-metal:
https://www.youtube.com/watch?v=lkrkgmgl8rA
Vídeo de funcionamento total do sistema:
https://www.youtube.com/watch?v=s7zOsXkRD_g