Добрый день. Направьте по правильному пути, есть датчики температуры/влажности на предприятии. Написал программу для сбора данных по протоколу modbus собираю данные пишу в базу mysql. Необходимо нарисовать веб морду к этому, некий план завода с отображение информации в реальном времени + страничку с выводом графика за прошедшее время. Есть предположение, что использовать flask для фронта + charts.js для графиков + синхронно или асинхронно дергать данные по modbus, или запускать отдельно daemon процесс который дергает инфу и складывает в базу, а сервер на flask бегает в mysql и оттуда дергает последние данные для реального времени + периоды времени для построения графиков. Может есть какая то другая альтернатива, посоветуйте, что выбрать для реализации данного проекта.
Начну с уточнения:
- flask - это бэкенд, а не фронт.
- вы должны понимать, что, даже в условиях локальной сети вы честный реалтайм не получите.
Итак:
- js на клиенте управляет отображением данных, будет это Chart.js, D3.js или что - то еще, дело ваших предпочтений.
- доставка данных может выполняться ajax запросом, или по вебсокету, flask умеет оба случая. Не знаю, приемлем или нет вариант просто обновлять страницу, иногда, самый простой вариант оказывается и самым надежным.
- забирать данные flask может непосредственно из БД, но можно и редиску припрячь к этому делу. особенно если озадачить сборщика статистики ее публикацией в канал.
Flask для подобного рода задач вполне подходящий инструмент. Не вижу сложностей для его реализации.
Если нужно строить графики - то некоторый процесс должен опрашивать датчики через заданный промежуток - это и ежу понятно. И незачем этот процесс синхронизировать с веб. На веб у вас могут неделю не заходить, а как зайдут - что делать, данных то нет. Вобщем котлеты отдельно, мухи отдельно. Если нужны мгновенные значения то опрашивать их из веб при отдельном запросе - ajax. Не нужно чтобы загрузка страницы тормозила. Для вывода карты завода я бы взял OpenLayers.