Système de surveillance et d'enregistrement de signaux pour Arduino et pas seulement

Bonjour à tous. Une autre tentative pour créer un système normal d'affichage d'un graphique de valeurs de données.

Je présente mon développement - logiciel «SVisual» - suivi des signaux en ligne et écriture de l'archive sur disque. Vous pouvez regarder / enregistrer tous les signaux, pas seulement avec Arduino.

Rouleau de semis direct


L'idée a commencé à voler il y a environ 7 ans, alors qu'il était encore engagé dans l'automatisation. Les forces sont apparues toutes deux en développement à un niveau élevé.

Le projet a plus d'un an. Tout a été écrit en cours de route et la disponibilité du temps, d'abord un monolithe - un serveur et seulement la visualisation, puis une archive, un moniteur ... Alors je suis arrivé à arduinki.

Au début, je voulais obtenir un sou de cette entreprise, mais la promotion est un sujet différent du tout, et le produit pour lequel il n'est pas dommage de prendre quelque chose est loin. Par conséquent, j'ai décidé d'apporter une contribution à opensrc, un peu au moins payante.

Logiciel partiellement multiplateforme - Windows et Linux (CentOS). Tout est écrit en C ++, la visualisation en Qt. Interface et manuel en russe. J'ai commencé à traduire en anglais, oui ...

Le système SVisual se compose de trois parties:

  • SVMonitor - une application graphique pour visualiser et enregistrer des archives en ligne;
  • SVViewer - une application graphique pour visualiser une archive d'enregistrements;
  • SVClient est une bibliothèque utilisateur pour l'envoi de données. Pour croquis Arduino.

Une description un peu sèche des possibilités.

Caractéristiques de SVMonitor:


- connexion à MK via le port COM (usb pour arduino), protocole TCP via Ethernet ou Wi-Fi;
- un relevé des valeurs des signaux en temps réel avec une fréquence de 100 Hz (en bas, ces 100 Hz - maximum, 10 Hz par défaut), le nombre d'appareils et de signaux est sélectionné par l'utilisateur;
- le nombre autorisé de signaux pour l'enregistrement est de 2048, le nombre de modules est de 8 (rien ne se passera s'il est dépassé, il n'y aura qu'un avertissement, une réserve est prévue);
- valeurs de sortie des signaux sélectionnés sur l'écran du moniteur en temps réel;
- enregistrer l'archive des signaux sur le disque dur du PC;
- visualiser l'archive à l'aide du logiciel SVViewer en option;
- la possibilité de définir des alertes sur un événement (déclencheurs), de lancer un processus utilisateur lorsqu'un déclencheur est déclenché;
- ajouter un signal pour visualisation / enregistrement uniquement par le client, aucun mouvement supplémentaire n'est requis.

Architecture logicielle




Ici, en principe, je pense que tout est clair. Je vais dire quelques mots.

Les clients transfèrent les données vers le moniteur, le moniteur transfère vers le serveur de traitement des données (SVServer.dll). Le serveur est engagé dans la mise en mémoire tampon, l'écriture sur le disque, le traitement des déclencheurs - les étiquettes utilisateur. Tout à l'intérieur est asynchrone.

Les données arrivent sur le disque toutes les 10 minutes et sont compressées à l'aide de zlib. Les fichiers d'archive sont reçus en heures, la valeur par défaut est de 2 heures.

Le serveur de traitement de données peut être utilisé indépendamment du moniteur, par exemple uniquement comme service d'enregistrement de l'archive.

Exemple pour 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); } 


En conséquence, vous verrez:



Le logiciel est distribué gratuitement, licence MIT.

Je vous remercie

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


All Articles