TheLuckyChip / LuckyBox

Автоматика на esp8266
40 stars 40 forks source link

Графики #2

Closed Sivolday closed 5 years ago

Sivolday commented 6 years ago

Одновременный вывод показаний температур на одном графике с пользованием Plotly.js

TheLuckyChip commented 6 years ago

Спасибо. Только пожалуйста дождитесь когда Сергей закончит апдейт нового интерфейса. А то тяжело будет склеивать. Интерфейс почти готов, мы его обсудили и нашли несколько помарок. Сергей последние штрихи вносит, как я понял.

Sivolday commented 6 years ago

Если ждать, то теряется смысл параллельной разработки. Проблем со слиянием не будет, я периодически актуализирую свою ветку.

Третьестепенных веток боятся не нужно, они могут быть даже мусорными и вообще не вливаться в основную, к примеру, если сообщество не одобрило изменения. Коммитов в этих ветках должно быть много, это позволяет видеть движение друг друга и не взяться одновременно за один фронт работ.

mitskovets commented 6 years ago

Согласен, не проблема слить. И там не так много кода, что бы в нем запутаться.

Sivolday commented 6 years ago

Промежуточный результат

TheLuckyChip commented 6 years ago

Красота! Супер, только до двух знаков можно округлить показания (если это возможно не ковыряя исходную библиотеку). А что за библиотека?

Sivolday commented 6 years ago

В первом приближении с графиками закончил, думал, будет сложнее. Либа вот эта насколько я понял для opensource она бесплатная. Выглядит теперь вот так

TheLuckyChip commented 6 years ago

Мега круто. Это можно просто под всеми вкладками разместить. Т.е. Дист, Рект, Затирание - выбери что хочешь)) Надо Сергея попросить добавить в веб-интерфейс

Sivolday commented 6 years ago

На данном этапе это не получиться сделать, пока не наладим транспорт между клиентом и сервером

TheLuckyChip commented 6 years ago

Вроде в соседнем треде о json формате договорились и о Get тоже. Надо теперь договориться кто что конкретно делает.

Sivolday commented 6 years ago

Прикрутил (в первом приближении) графики и нормальное получения данных с датчиков.

Всё очень пока сыро. Сейчас захардкордил 4 шт, не уверен что с меньшим числом заведётся.

plots

TheLuckyChip commented 6 years ago

Выглядит красиво.

Sivolday commented 6 years ago

Затестите кто-нибудь, заведется, нет.

Sivolday commented 6 years ago

Натарулся на статью https://habr.com/post/354754/ именно этот паттерн я предлагаю использовать.

TheLuckyChip commented 6 years ago

Затестить смогу не ранее 10-ого вечера или ночи. Какой-то насыщенный график перемещений получается((. А статья правильная. Классический паблишер-сабскрайбер, и он очень нам поможет когда MQTT будем добавлять! Полностью данный подход поддерживаю.

serjrv commented 6 years ago

Давайте сразу с масштабом вывода определимся, а то править потом "геморно" будет. Я на TFT дисплее уже прикинул в реальности что и как. В WEB не силен, но было бы очень удобно видеть температуру в кубе и выход из дефлегматора за весь период на текущем графике, а температуру в царге и на выходе, в развернутом виде текущей временной выборки. Это думаю по запросу из основного кода программы выдам без проблем. Далее, масштаб по Y не для всех графиков нужен до сотых, соответственно пропорции нужно придумать. Как пример, я на форуме писал в каких пропорциях и что вывожу на TFT дисплей. И еще вопрос, а с сокетами ESP не дружит, а то post, get... Это просто как ламер спросил, т.к. вроде проще для быстрого обмена 2 канала использовать: 1 на прием, 2 на передачу?

mitskovets commented 6 years ago

Наткнулся на статью https://habr.com/post/354754/ именно этот паттерн я предлагаю использовать.

Прикольно, очень понравилось, такой же нужно делать и в МК

serjrv commented 6 years ago

А что в этой статье прикольного, ну изобрел человек в сотый раз колесо... В контроллере все и сделано независимо, есть датчик, он опрашивается, нет датчика, ну и черт с ним, контроллер идет дальше трудиться. В "железной" реализации главным является распределение приоритетов между задачами, т.к. к примеру опросим мы датчики ровно через секунду или через полторы, нам все равно, а вот ТЭНом так порулить не выйдет, там нужен четкий временной интервал.

mitskovets commented 6 years ago

т.е. что выходит, контроллеру все равно, сколько процессов у него «дергать»?

serjrv commented 6 years ago

А в чем проблема с количеством процессов? В нашем случае их очень мало. А просто всегда читать флаги для выполнения события на МК очень глупо, там обычно происходит все проще - сработало соответствующее аппаратное прерывание, выполнили нужную подпрограмму.

mitskovets commented 6 years ago

Тогда очевидно я не очень понимаю сути, что на МК будут запущены сразу все процессы, ректификация, дистиляция, пивоварение? Или все же они будут запускаться только когда от веб придет команда? Но тогда это и будет флаг. А, опять же, если процесс нужно сначала конфигурировать, как например для пива.

serjrv commented 6 years ago

Мы просто немного о разном говорим. Ответ от WEB проверяется непрерывно, но в свободное от выполнения подпрограмм общающихся с железом (датчики, ТЭН, экран и т.д.). Там естественно уже и проверяется что нам прилетело от пользователя, как итог и начинаем рулить соответствующим процессом. До подпрограмм связанных с WEB я еще не добирался, т.к. в первую очередь надо все общение с железом добить. Но если есть что то срочное, связанное с реализацией WEB на уровне контроллера, пишите, будем делать.

mitskovets commented 6 years ago

Из хотелок, для веб,

  1. сделать одну кнопку сохранения настроек, https://github.com/TheLuckyChip/LuckyBox/issues/7 а это в МК сначала нужно сделать,
  2. сделать назначение (название) датчиков и хорошо бы, что бы они там сохранялись
  3. у меня нет понимания процессов (ректификат, дистиляция, пиво), что должно (нужно) приходить от МК и что необходимо контролировать, менять (править, ТЭН тот же), соответственно в пивоварении дать возможность сохранения своего рецепта, что бы потом варить по нему, загрузки рецепта (в json) например (я думаю вполне можно, договориться с каким-нибудь форумом впоследствии, для создания АПИ выгрузки рецепта, к примеру http://xn--90aia8b.xn--p1ai/beer_recipes/bjcp_2015), тут опять же в зависимости от процесса, вывод графиков, и например сохранение профилей (количество) датчиков, для каждого процесса, что бы не заводить его каждый раз.

Я же говорю :-) нужна скайп конференция со всеми разработчиками.

serjrv commented 6 years ago

Настройки датчиков будут отдельной вкладкой, с настройками WiFi совмещать же не будем? Я тогда попробую завтра вечером это сделать. С рецептами давайте позже разберемся. Тем более думаю их лучше на SD карту сохранять, так и подправить проще, и поделиться.

mitskovets commented 6 years ago

Да, настройки датчиков отдельно

TheLuckyChip commented 6 years ago

С рецептами и API с сайта - идея очень правильная. На будущее надо будет сделать обязательно, тоотко ответственно к выбору сайта подойти, или группы сайтов. Бомба получится!

TheLuckyChip commented 6 years ago

Сергей mitskovets, я поправил один косячок в heater.js. Выложил в Dev. Обрати пожалуйста внимание при создании web- интерфейса.

TheLuckyChip commented 6 years ago

Я попробовал графики, очень понравились! Все красиво и по существу.