Sistema de monitoreo y grabación de señales para Arduino y no solo

Hola a todos Otro intento de hacer un sistema normal para mostrar un gráfico de valores de datos.

Presento mi desarrollo - software “SVisual” - monitoreando señales en línea y escribiendo el archivo en el disco. Puede ver / grabar cualquier señal, no solo con arduino.

Rodillo de semillas directamente


La idea comenzó a volar hace unos 7 años, cuando todavía se dedicaba a la automatización. Las fuerzas aparecieron tanto en desarrollo a un alto nivel.

El proyecto tiene más de un año. Todo fue escrito en el camino y la disponibilidad de tiempo, primero un monolito, un servidor y solo visualización, luego un archivo, un monitor ... Así que llegué a Arduinki.

Al principio quería obtener un centavo de este negocio, pero la promoción es un tema diferente en absoluto, y el producto para el que no es una pena tomar algo está muy lejos. Por lo tanto, decidí hacer una contribución a opensrc, al menos pagar un poco.

Software parcialmente multiplataforma: Windows y Linux (CentOS). Todo está escrito en C ++, visualización en Qt. Interfaz y manual en ruso. Empecé a traducir al inglés, sí ...

El sistema SVisual consta de tres partes:

  • SVMonitor: una aplicación gráfica para ver y grabar archivos en línea;
  • SVViewer: una aplicación gráfica para ver un archivo de registros;
  • SVClient es una biblioteca de usuario para enviar datos. Para boceto arduino.

Una descripción un poco seca de las posibilidades.

Características de SVMonitor:


- conexión a MK a través del puerto COM (usb para arduino), protocolo TCP a través de Ethernet o Wi-Fi;
- una encuesta de valores de señal en tiempo real con una frecuencia de 100 Hz (abajo, esos 100 Hz - máximo, 10 Hz por defecto), el usuario selecciona el número de dispositivos y señales;
- el número permitido de señales para grabación es 2048, el número de módulos es 8 (no pasará nada si se excede, solo habrá una advertencia, se proporciona una reserva);
- valores de salida de las señales seleccionadas en la pantalla del monitor en tiempo real;
- Grabar el archivo de señales en el disco duro de la PC;
- ver el archivo usando el software opcional SVViewer;
- la capacidad de establecer alertas sobre un evento (disparadores), iniciar un proceso de usuario cuando se dispara un disparador;
- agregando una señal para ver / grabar solo por el cliente, no se requieren movimientos adicionales.

Arquitectura de software




Aquí, en principio, creo que todo está claro. Diré algunas palabras.

Los clientes transfieren datos al monitor, el monitor transfiere al servidor de procesamiento de datos (SVServer.dll). El servidor participa en el almacenamiento en búfer, escribe en el disco, procesa desencadenantes, etiquetas de usuario. Todo dentro es asíncrono.

Los datos llegan al disco cada 10 minutos y se comprimen usando zlib. Los archivos de archivo se reciben en horas, el valor predeterminado es el archivo de 2 horas.

El servidor de procesamiento de datos se puede usar independientemente del monitor, por ejemplo, simplemente como un servicio para grabar el archivo.

Ejemplo 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, verá:



El software se distribuye libremente, licencia MIT.

Gracias

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


All Articles