WIKI EM PROCESSO DE EDIÇÃO
CosmicPampaDataHub
Servidor Web do CosmicPampa.
Diagrama ilutrando o funcionamento do DataHub
Descrição da Área
O DataHub remete a centralização dos dados dos possíveis múltiplos detectores em um servidor único, mas também cabe a essa área a configuração do protocolo e software de comunicação dos dados. Outra parte essencial é a criação de uma página de frontend gráficos e valores estatísticos. O diagrama de funcionamento demonstra o caminho que os dados seguem.
Tabela de Conteúdos
Esta Wiki é feita a partir do Modelo de Documentação Padrão do CTA. O registro dos progressos serão feitos nas Issues.
Tarefas
Abaixo, são descritas as tarefas propostas para o decorrer do projeto, que serão atualizadas na medida em que for obtido maior grau de precisão de seus objetivos. Existem três tarefas principais que foram criadas com o começo do projeto
Passando mensagem com MOSQUITTO MQTT
O MQTT é um sistema de mensagens publish/subscriber leve e fácil de usar. Especificamente utilizamos o Mosquitto MQTT como broker open source para trocas de dados com a placa com sensores e o servidor.
Existem dois tipos de comandos necessários para troca de mensagens:
-
mosquitto_pub -h 111.111.111.111 -t topico -u usuario -P senha -m "1605897707516.9966 20.84722977270505 20.267821522059513 80.06540389143701 1017.5982491300462 Bruno fd87a003fcd0b41d105cadd654d3c2cb"
-
-h [ip]
que dá o endereço que a mensagem deve ser enviada; -
-t [topic]
a mensagem vai para um tópico específico; -
-u [user]
declara o usuário que tem que ser previamente registrado que está mandando mensagem; -
-P [senha]
senha única para o usuário. -
-m
"[mensagem]" mensagem a ser enviada
-
Exemplo enviando mensagem com hora, local, intensidade, temperatura, umidade, pressão, usuário e HASH calculado a partir das informações da mensagem para ser um identificador único e para que se possa checar a integridade da mensagem chegada no servidor.
-
mosquitto_sub -h 111.111.111.111 -t topico -v -u usuario -P senha | tee -a /var/www/html/data/test.txt
-
-h [ip]
endereço que a mensagem foi enviada enviada; -
-t [topic]
lê as mensagens de um tópico específico; -
-u [user]
declara o usuário que tem que ser previamente registrado; -
-P [senha]
senha única para o usuário. -
-v
imprime junto qual tópico que a mensagem veio
-
Exemplo que imprime no terminal a mensagem e as salva usando o pipe ( | ) e o comando tee -a [endereço]
em um arquivo .txt
Backend do DataHub
O banco de dados do servidor foi construido a partir do mysql
exemplo:
Select horas from eventos where horas > 100
MySQL
Para criar a tabela eventos onde são armazenados os dados enviados pelo NodeMCU o seguinte código de sql foi executado por um usuário com privilégios para criar tabelas. As são colunas hora, local, intensidade, temperatura, umidade, pressao, usuario, HASH e id que serve de identificador de um dado e é auto incrementada e não precisa ser declarada quando um dado é inserido:
mysql> CREATE DATABASE COSMICPAMPA
mysql> Use COSMICPAMPA
mysql> CREATE TABLE IF NOT EXISTS eventos (
hora double(20,2) unsigned NOT NULL,
local varchar(100),
intensidade float(14,10) unsigned,
temperatura float(14, 10),
umidade float(14, 10) unsigned,
pressao float(14,10) unsigned,
usuario varchar(50) NOT NULL,
HASH varchar(50) NOT NULL,
id int(250) AUTO_INCREMENT,
PRIMARY Key (id)
);
Para inserir na tabela através do terminal usa-se o seguinte código:
INSERT INTO eventos (hora,local,intensidade,temperatura,umidade,pressao,usuario,HASH) VALUES
(1605897697391.9326,'POA', 17.510940991357113, 19.93308839701117, 78.77037825894631, 1017.1170110098117, Bruno, 555f20572647f7d16719ad1b5df73964')
A tabela usuarios foi criada de maneira similar com as seguintes condições (para descrever a tabela usa-se describe usuarios
):
mysql> describe usuarios;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| user | varchar(100) | NO | | NULL | |
| nome | varchar(100) | YES | | NULL | |
| pais | varchar(100) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
Implementar frontend do DataHub.
Documentação
Códigos
-
Programa_inicial_server.py: é o programa que roda até ser encerrado (ctrl+c) recebendo mensagens de um tópico por mqtt e salva em uma tabela eventos na date base. As mensagens de erro são mandadas para o tópico feedback no localhost, que pode ser acessado por
mosquitto_sub -h localhost -t feedback -u cta -P cta
.
Histogramas
Histogramas são formas interessantes de representar dados, pois mostra a distribuição de frequências de determinada grandeza.