Sistema de monitoramento e registro de sinais para o Arduino e não apenas

Olá pessoal. Outra tentativa de criar um sistema normal para exibir um gráfico de valores de dados.

Apresento meu desenvolvimento - software “SVisual” - monitorando sinais on-line e gravando o arquivo em disco. Você pode assistir / gravar qualquer sinal, não apenas com o arduino.

Rolo de sementes diretamente


A idéia começou a voar há cerca de 7 anos, quando ele ainda estava envolvido em automação. As forças apareceram tanto em desenvolvimento em alto nível.

O projeto tem mais de um ano de idade. Tudo foi escrito ao longo do caminho e a disponibilidade de tempo, primeiro um monólito - um servidor e apenas a visualização, depois um arquivo, um monitor ... Então, cheguei ao arduinki.

Eu queria receber um centavo desse negócio a princípio, mas a promoção é um tópico diferente, e o produto para o qual não é uma pena levar algo está longe. Portanto, decidi fazer uma contribuição para o opensrc, um pouco pelo menos valer a pena.

Software parcialmente multiplataforma - Windows e Linux (CentOS). Tudo está escrito em C ++, visualização em Qt. Interface e manual em russo. Comecei a traduzir para o inglês, sim ...

O sistema SVisual consiste em três partes:

  • SVMonitor - um aplicativo gráfico para visualização e gravação online de arquivos;
  • SVViewer - um aplicativo gráfico para visualizar um arquivo de registros;
  • SVClient é uma biblioteca de usuários para o envio de dados. Para esboço do arduino.

Um pouco de uma descrição seca das possibilidades.

Recursos do SVMonitor:


- conexão ao MK via porta COM (usb para arduino), protocolo TCP via Ethernet ou Wi-Fi;
- um levantamento dos valores do sinal em tempo real com uma frequência de 100 Hz (para baixo, os 100 Hz - máximo, 10 Hz por padrão), o número de dispositivos e sinais é selecionado pelo usuário;
- o número permitido de sinais para gravação é 2048, o número de módulos é 8 (nada acontecerá se for excedido, haverá apenas um aviso, é fornecida uma reserva);
- valores de saída dos sinais selecionados na tela do monitor em tempo real;
- gravar o arquivo de sinais no disco rígido do PC;
- visualizar o arquivo usando o software SVViewer opcional;
- a capacidade de definir alertas sobre um evento (gatilhos), iniciar um processo do usuário quando um gatilho é disparado;
- adicionando um sinal para visualização / gravação apenas pelo cliente, nenhum movimento adicional é necessário.

Arquitetura de software




Aqui, em princípio, acho que está tudo claro. Vou dizer algumas palavras.

Os clientes transferem dados para o monitor, o monitor transfere para o servidor de processamento de dados (SVServer.dll). O servidor está envolvido em buffer, gravação em disco, processamento de gatilhos - etiquetas de usuário. Tudo dentro é assíncrono.

Os dados chegam ao disco a cada 10 minutos e são compactados usando o zlib. Os arquivos compactados são recebidos em horas, o padrão é 2 horas.

O servidor de processamento de dados pode ser usado independentemente do monitor, por exemplo, puramente como um serviço para gravar o arquivo morto.

Exemplo para Arduino



#include <SVClient.h> void setup() { bool ok = svisual::connectOfCOM("test"); } int cnt = 0; void loop() { svisual::addIntValue("dfv", cnt); ++cnt; if (cnt > 10) cnt = 0; bool odd_cnt = cnt % 2; svisual::addBoolValue("bFW", odd_cnt ); svisual::addBoolValue("bBW", !odd_cnt ); delay(200); } 


Como resultado, você verá:



O software é distribuído gratuitamente, licença MIT.

Obrigada

Source: https://habr.com/ru/post/pt413331/


All Articles