BLOG - Sistemas Embarcados
Este blog tem como autores os participantes do projeto Smart Campus e alunos das disciplinas: Sistemas Embarcados(Engenharia de Controle e Automação) e Plataformas de prototipação para Internet das Coisas
(Especialização Lato Sensu em Internet das Coisas). O objetivo é a divulgação de trabalhos em desenvolvimento no campus que envolvam a utilização de conceitos de sistemas embarcados, internet das coisas, telemetria e outras tecnologias para a resolução de problemas da indústria, meio ambiente, cidades inteligentes, fazendas inteligentes, ....
Coordenação: Prof. Marcos Chaves
Busca:
Monitoramento hÃdrico do IFSP Campus Catanduva
O presente projeto tem como objetivo o monitoramento diário, mensal e anual da vazão hídrica do Instituto Federal de São Paulo - Campus Catanduva, com a finalidade de monitorar possiveis irregularidade no gastos hídricos, assim demonstrando possiveís vazamentos em tempo real por meio de uma página web.
A leitura da vazão hídrica será realizada com um hidriometro elster m170-III com um sensor de efeito hall acoplado ao mesmo, a figura 1 ilustra o hidrometro.
Figura 1
O monitoramento foi realizado por meio do micro controlador ESP32, que possui integrado ao seu chip um modulo WIFI e um modulo bluetooth de comunicação. Utilizando o a comunicação WIFI, da ESP32, será feita comunicação com o protocolo de mensagens MQTT, como ilustra a figura 2.
Figura 2
Para a comunicação com o MQTT foi necessário a criação de servidor web AWS para hospedar os dados, que seram enviados pela ESP para o MQTT, e apresenta-los publicamente na web, por meio de IP publico gerando também pela instancia AWS. Neste servidor foi necessário a instalação do MQTT e de um banco de dados, que no presente trabalho foi utilizado Mysql. Este banco de dados tem a função de salvar os dados enviados ao mqtt na nuvem, como ilustra figura 3.
Figura 3
Está comunicação foi desenvolvida por meio da plataforma Node-Red, que é uma ferramenta de desenvolvimento baseada em nós, ou em blocos, com o objetivo de conectar dispositivos de hardware, APIs, serviços online e ferramentas para o desenvolmento dos mesmo, como por exemplo são MQTT e Mysql. A figura 4 ilustra os blocos de comuincação, na plataforma Node-Red, entre o MQTT e Mysql.
Figura 4
Também no Node-Red foi desenvolvida uma página web para o monitoramento e armazenamento de um historico de consumo hídrico diario e anualmente. Para a execução das etapas descritas anteriormente foi seguido os seguintes passos, que seram relatados apartir de agora.
Inicialmente foi criado uma instancia na Amazon (AWS), utilizando este link: https://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServerDB.CreateWebServer.html
Após a criação da instancia EC2, na mesma foi necessário a instalação do Linux, com um kernel Ubunto, do web server Apacahe, o banco de dados Mysql e o PHP, nesta etapa foi seguido o tutorial apresentado no seguinte link: https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-20-04-pt
Nesta instancia também foi necessário a instalação do MQTT, as mesma foi feita seguindo o tutorial deste outro link: https://www.vultr.com/docs/how-to-install-mosquitto-mqtt-broker-server-on-ubuntu-16-04
A instalação da plataforma Node-Red também foi executa na instancia EC2, seguindo o tutorial apresentado neste blog Sistemas Embarcados, nesta etapa também foi criado uma senha para os flow de progaramação da plataforma.
Após está etapa foi criado um Domain Name System (DNS), no site https://www.duckdns.org/, seguindo os passos descritos neste mesmo blog Sistemas Embarcados.
Outra etapa necessária para o desenvolvimento da dashboard de monitoramento, ainda no Mysql, foi a criação de um banco de dados (Database), dentro deste foram criadas diversas tabelas responsáveis por armazenar todos os dados recebidos do hidrômetro, sendo, respectivamente, um para receber os dados em geral, uma para cada hora do dia, de 0 horas até as 23 horas, outra para os dias da semana e outra para cada mês do ano.
Utilizando a plataforma Node-Red, como mencionado na figura 4, a tabela que recebe os dados em geral adquire as informações enviadas via o nó MQTT por meio de um nó INSERT, que utiliza a linguagem Mysql de inserção, que tem como função inserir os dados na tabela. Após está etapa a mesma tabela envia os dados para as tabelas de horas, por meio de um nó SELECT, neste nó foi utilizado uma linguagem Mysql para selecionar sempre o último dado recebido pela tabela geral. Em outra função estes dados coletados são somados durante a última hora e salvo na hora corresponde, ou seja, os dados são somados das 00:00 até as 00:59 e salvos na tabela da 01:00 hora. Este procedimento é feito em todas as horas do dia e salvos em cada uma das 24 tabelas que representam cada hora do dia.
Por meio desta mesma ideia os valores de cada dia da semana e de cada mês são salvos, ou seja, os dados volumétricos são somados por dias e por mês sendo salvos em cada dia e cada mês presente.
A partir desta etapa finalizada foi desenvolvido a parte de back-end da dashboard, ou seja, o envio de dados das tabelas para a pagina de monitoramento, sendo assim para cada tabela foi criada uma programação com os nós SELECT, responsável por buscar os últimos dados, o nó Mysql, responsável por acessar o banco de dados e o nó Change que por sua vez é responsável por armazenar e enviar os dados para a dashboard. A figura 4 ilustra está programação.
Figura 4
Finalizado o back-end da página foi desenvolvida a parte do front-end da dashboard, ou seja, é a parte em que o usuário visualizará os gastos hídricos, a mesma foi construída por meio do nós, no Node-Red, http-responsive, que tem como função efetuar o GET da página responsável pelo acesso a página, outro nó é o template, que neste caso foram utilizado dois, um para o CSS, ou seja o estilo da página e outro para o HTML e JavaScript responsável pela criação em sí da página. A figura 5 ilutra os nós responsáveis pelo desenvolvimento da página.
Figura 5
A dashboard possui, como dito no começo deste trabalho, um gráfico por hora, outro semanal e outro mensal, os mesmo foram desenvolvidos com as linguagens de programação HTML, JavaScrpit e CSS style. Para isto foram utilizados códigos exemplos retirados dos sites descritos a seguir:
- Código fonte de exemplo para gráfico por hora: Basic column | Highcharts.com
- Código fonte de exemplo para os gráficos Semanal e Anual: Visualization: Column Chart | Charts | Google Developers
Com todas estas etapas concluídas temos a dashboard de monitoramento dos gastos hídricos do campus Catanduva pronta, como ilustra figura 6.
Figura 6
[ID:8] Autor: - Criado em: 2021-04-27 03:49:25 - [ Compartilhar ]