Всем привет.

Продолжаю развивать свой проект по визуализации трендов данных, добавил возможность просмотра в браузере в реальном времени. Кому интересно прошу.


Вкратце расскажу что из себя представляет проект. Это система ПО под названием «SVisual».
Состоит из трех частей:

  • сервер «SVMonitor», он же онлайн-монитор;
  • клиент — библиотека либо скетч для передачи данных от МК;
  • и просмотрщик архива записей.

Система подробно описана в прошлой статье.

Сразу посмотрим ролик, что получилось:

Ориентировался на просмотр с телефона, поскольку на ПК удобнее будет пользоваться десктопным приложением.

Страничка написана на современном стеке (React + Redux, оформление Boostrap).
На старых планшетах и телефонах не пойдет.

Функциональная схема ПО.




Здесь:

  • МК передает данные по COM-порту или Ethernet на сервер SVMonitor, он же является и http-сервером.
  • пользователь в браузере открывает страничку.

Страничка передается по http, позже сделаю https. Пока для защиты можете воспользоваться сторонним ПО, чем то типа stunnel, например.

Подробно не стал показывать внутреннюю кухню сервера, так как все описано в прошлой статье, и в мануале к ПО.


Пример использования для Arduino.


1. Запустим SVMonitor, и в настройках для Web сервера укажем IP адрес и порт.



2. Заливаем такой скетч в МК:

#include <SVClient.h>

void setup() {

  bool ok = svisual::connectOfCOM("client");
}

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

3. Далее, нужно перезагрузить SVMonitor и заново подключить МК.

4. Теперь в SVMonitor мы должны увидеть подключенный МК:



5. Открываем браузер, в адресной строке вводим адрес указанный в настройках SVMonitor и видим следующую страничку:



В этом ролике показаны все возможности работы с графиком в браузере


Для STM32 клиент здесь.

Вот и все в принципе.

ПО распространяется свободно, лицензия MIT.

Спасибо.

Комментарии (2)


  1. avs24rus
    12.11.2019 10:04

    Я так понимаю, что на Armbian (debian 10) работать не будет?


    1. Tyiler Автор
      12.11.2019 11:20

      ПО написано на C++, зависимости: Qt, lua, libuv, libz, sqlite.
      В общем пробовать надо собрать. Все дбыть (наверно) в пакет менеджере у debian.