1 (2018-03-06 13:03:02 отредактировано d.styler)

Тема: TempMeter для Arduino - описание программы

Пришло время открыть для широкой публики новую инкарнацию программы TempMeter. Сейчас эта программа из просто мониторинговой перешла в класс мониторинговой и управляющей (процессами дистилляции и ректификации).
Итак, новая программа называется TempMeter для Arduino - или TMA. Название сразу указывает что аппаратной частью программного комплекса является широко распространенный микроконтроллер Arduino (в нашем случае - Nano). Информация о том как и что нужно к аппаратной части (а это и микроконтроллер, реле, клапаны и прочее) можно найти в соответствующей теме Инструкция по сборке аппаратного комплекса TMAS-1.0 для автоматизации

В этой теме я начну описание самой программы - что она может и какие функции она поддерживает.

Итак - приступим.

1. Главное окно программы.
https://alcodistillers.ru/tma/main_window_about_1.png

Здесь видно, что TMA работает на Маке. Но независимо от ОС (Мак, Винда, Пингвин) - все функции программы и ее интерфейс идентичны. Интерфейс будет знаком тем пользователям которые знакомы с программой TempMeter - здесь видно меню программы, окно с графикой температуры и окно с дисплеями датчиков. Что появилось нового - это дисплей датчика атмосферного давления (опциональный) и его график (под основным графиком температур).
Про интерфейс программы можно сказать что он полностью разработан мной под мои "хотелки" - но я надеюсь что большие дисплеи датчиков будут весьма полезны в нашем деле...
Так же из нового можно отметить возможность работы программы как по проводу (когда ардуина подсоединена через юсб провод), так и через bluetooth (все это можно найти в смежной теме про конфигурации железа Инструкция по сборке аппаратного комплекса TMAS-1.0 для автоматизации).

2. Настройка программы

https://alcodistillers.ru/tma/program_setup_1.png

Как вы видите для того чтобы программа начала свою нелегкую трудовую деятельность ее нужно настроить. Если вы проверили работоспособность аппаратной части, используя небольшую утилиту ast.jar, то вся настройка в программе сведется к выбору вашего коммуникационного порта.  После указании правильного порта при самом первом запуске программа делает проверку около 5-7 секунд - не нужно ее закрывать а просто подождать. Это особенно актуально с портом блютус, так как на его поднятие требуется несколько секунд.
После этого программа должна увидеть подключенные датчики температуры и давления (если он подключен).
Актуально для Маководов - порты на Маке не определяются автоматом и их невозможно выбрать. Для этого в настройке можно указать нужный порт вручную (будет типа /dev/<ваш порт>).

Также здесь настраиваются высота вашей месности (альтитуда - ищется без бубнов в интернете) - это позволит датчику давления провести преобразование давления именно для вашей высоты.
Опрос датчиков (миллисекунды) - позволяет настроить как часто будут присылаться обновления температуры.
Время конверсии температуры - прараметр присутствует здесь для любителей экстрима... Мою рекоммендация - оставить его без изменения, так как скетч на ардуино сам определяет (по протоколу) точное время окончания конверсии и начинает считывание  температуры немедленно. Если установить это значение ниже чем требуемое время конверсии - это значит начать считывать температуру до окончания конверсии - что при этом считается - только бог знает... Я делал измерения времени конверсии для максимальной точности в 12 бит (0,0625С) - при этом времена были всегда в районе 640-650 мс. Так что думайте сами - довериться алгоритму скетча и считать максимально быстро достоверную температуру или...
Изменение цветовой схемы дисплеев температурных датчиков - позволяет изменить цвета при изменени температуры: цвет при повышении Т, понижении и если она не изменилась по сравнению с предыдущим считыванием.
Использовать большие дисплеи - эта опция позволяет увеличить размеры дисплеев датчиков. При этом если использовать функцию управления для датчика, дополнительно показываются температуры включения и выключения. При изменении размеров рестарта программы не требуется.
Раположение журнала - это директория куда будут сохраняться файлы журналов ректификации. По умолчанию это домашняя директория программы.
Интервал графика - позволяет задать длину графика температур и давления (в минутах).
Использовать светлый фон для графиков - по умолчанию график температур имеет темный фон (почти черный). Эта опция позволяет поменять фон на белый.

3. Настройки температурных датчиков

https://alcodistillers.ru/tma/probe_setup_1.png

Для тех пользованетей кто пользовался или пользуются программой TempMeter этот диалог настройки остался без существенных изменений. Коротко по всем параметрам - думаю они и так понятны.

Отключить датчик - позволяет исключить жтот датчик из использования функциями программы. Это удобно например когда датчики подсоединяются не по отдельности, а спаяны вместе - тогда если например нужно только 2 датчика из 3-х - один можно отключить.
Название датчика - позволяет присвоить датчику свое имя.
Точность датчика - позволяет установить точность датчика (9,10,11,12 бит)
Разрядность дисплея
- устанавливает сколько знаков после точки будут отображаться на дисплее (точность округления)
Отобразить на графике - позволяет использовать данные этого датчика для построения графика. Здесь же можно настроить цвет графика.
Журналировать температуру - эта опция позволяет использовать данные этого датчика в журнале ректификации. Само журналирование управляется из главного меню.
Установить аларм - позволяет настроить аларм на какое-то предельное значение температуры. Бывает иногда нужно...
Компенсировать системную ошибку датчика - позволяет скорректировать значение температуры датчика в соответствии с рекоммендациями их производителя.
Исправить температуру датчика - позволяет подстроить (калибровать) датчик под ваши измеренные несоответствия. Например, поместить все датчики в стабильные одинаковые условия и посмотреть разницу показаний - если не соответствуют - ввести коррекцию в этой опции.

4. Дисплеи датчиков

https://alcodistillers.ru/tma/display_panel.png

Небольшое описание дисплеев. Здесь как видно присутсвуют 3 температурных датчика и один датчик давления. Сначала рассмотрим основные компоненты температурного датчика - возьмем для примера датчик "Верх колонны".
Самая верхняя строчка на дисплее - это его название. Если датчику не было присвоено произвольное имя - здесь будет показан его адрес. При первичном запуске все детектированные датчики будут показывать адрес - пока не бутеи введен более понятное имя в его конфигурации.
Далее идет черный дисплей со значением пемпературы. Значение температуры может менять цвет в зависимости от ее изменения. Если температура неизменна в течении какого-то времени - цвет будет желтый, если температура подросла - цвет меняется на зеленый, если упала - на красный. Если сработал аларм - значение температуры будет мигать (примерно раз в секунду).
Также можно видеть что в верхнем правом углу дисплея есть индикатор управления датчика. В нашем примере все три пемпературных датчика имеют активное управление (зеленый цвет). Индикатор может менять цвет в зависимости от состояния управления:

  • индикатора нет - управление отключено

  • индикатор зеленый - управление включено, но неактивно

  • индикатор желтый - управление включено и мониторит температуру

  • индикатор красный - управление включило управляемое устройство (реле) и мониторит температуру

Возможно что не все эти состояния будут доступны для каждого из датчиков - это все определяется настройками управления.

5. Конфигурация управления

https://alcodistillers.ru/tma/probe_control_1.png

Это диалог управления для датчика температуры - в данном случае это датчик "Верх колонны".
Немного описания всех доступных опций.
Датчик под контролем -- это имя датчика для которого конфигурируется управление.
Управляемый вывод ардуино -- это номер пина который управляет неким устройством типа реле. Пронрамма будет включать и выключать управление для этого пина.
При включении установить вывод -- цифровой пин имеет два уровня - HIGH и LOW. HIGH - на пин подается напряжение, LOW - с пина снимается напряжение и он имеет 0. Эта опция определяет - в какое состояние программа переключит пин когда сработает управление.
Управление включением контроллера - это не опция, а название группы опций которые отвечают за настройки включения управления.
Температура включения -- определяет граничную температуру при достижении и превышении которой срабатывет управление.
Задержка включения -- эта опция позволяет использовать задержку включения управления. Если опция выбрана - можно выбрать значение звдержки. Когда контроллер обнаружит что температура включения достигнута или превышена и определена эта опция он не включает управление сразу а переходит в специальный режим мониторинга с выбранной вами длительностью (индикатор становится желтым). Если по истечении времени задержки температура не упадет ниже температуры включения то контроллер включает управление (индикатор становится красным). В случае если температура снова упадет ниже температуры включения - контроллер снова засыпает, не включая управление (индикатор становиться зеленым).
Макимальное отклонение температуры -- эта опция имеет смысл только вместе с предыдущей. В ситуации описанной выше если в период мониторинга температура увеличится больше чем установленное значение, мониторинг превывается и включается управление.
Учитывать изменения давления -- эта опция пока не реализована. Когда будет реализация - описание будет добавлено.
Включить сигнализацию тревоги -- если включена эта опция то при включении управления будет также включена тревога (аларм). Хочу заметить что если тревога включается то отключить ее можно только вручную - автоманически она не отключится. Ручное отключение делается через меню датчика.
Управление выключением управления -- эта опция делает доступной опции выключения контроллера.
Надо заметить что все опции для выключения управления копируют оные для включения и имеют тот же смысл. Единственная разница что если включение мониторит температуру вверх, то для выключения - вниз. То есть если использовать максимальное отклонение, то оно будет считаться как  температура включения минус максимальное отклонение...
Температура выключения может быть выбрана или нет. Если она не выбрана, то в качестве Т выключения используется Т включения. Если выбрана - можно задать здесь отличное от Т включения значение.
Включить управление -- это глобальный выключатель управления. Если управление не нужно, то его просто здесь выключаем (индикатор управления асчезает из дисплея).

6. Общие замечания по пользованию программой
[TBC]
Тема немного не закончена, будут правки и поправки.

Внимание! Программа находится на отдельной странице.
Скачать Temp Meter Arduino

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

2

Re: TempMeter для Arduino - описание программы

d.styler,  С почином!  Благодарю тебя от лица всего общества за огромный труд, проделанный для людей!  *DRINK*  *INLOVE*

У вас в жизни всегда будет все, что вы хотите, если вы будете помогать другим людям получать то, чего хотят они.
Разработка сайтов "хобби-проектов" под заказ (сайт, форум) - обращаться в личку.

3

Re: TempMeter для Arduino - описание программы

Иван*ROSE*

4

Re: TempMeter для Arduino - описание программы

d.styler, Иван,
Примите мои самые искренние поздравления с Днем Рождения ТМА!  *DRINK*  *INLOVE*  *YAHOO*

Усилия, которые вы приложили, чтобы «улучшить жизнь» винокура - это неоценимый труд!

Мое почтение!  *ROSE*

Пиво — интеллектуальный напиток. Какая досада, что его пьет так много идиотов.

5

Re: TempMeter для Arduino - описание программы

Alex.bcn, я не разрабатывал этот комплекс, я просто был тестером также как и Николай  [:}

У вас в жизни всегда будет все, что вы хотите, если вы будете помогать другим людям получать то, чего хотят они.
Разработка сайтов "хобби-проектов" под заказ (сайт, форум) - обращаться в личку.

6 (2017-06-07 20:40:37 отредактировано Alex bcn)

Re: TempMeter для Arduino - описание программы

Николя, Иван, (та я знаю  :D ) ок.
Тогда Вас с Днем Рождения ТМА!, а

d.styler, Усилия, которые Вы приложили, чтобы «улучшить жизнь» винокура - это неоценимый труд!, но все ровно:

Мое почтение!

Пиво — интеллектуальный напиток. Какая досада, что его пьет так много идиотов.

7

Re: TempMeter для Arduino - описание программы

Новая Версия 1.0.3  доступна в первом сообщении.  При загрузке программа проверяет открытые порты на доступность, выводится логотип.  Загрузка 3-6 секунд.
Прошивка тоже обновлена.

У вас в жизни всегда будет все, что вы хотите, если вы будете помогать другим людям получать то, чего хотят они.
Разработка сайтов "хобби-проектов" под заказ (сайт, форум) - обращаться в личку.

8

Re: TempMeter для Arduino - описание программы

Сегодня очередная «порция» плат приехала. Скоро собирать буду!  *HI*

Пиво — интеллектуальный напиток. Какая досада, что его пьет так много идиотов.

9

Re: TempMeter для Arduino - описание программы

Alex.bcn ©:

Скоро собирать буду! 

Для тестирования можно на столе собрать без корпуса, F-F провода ускоряют процесс :)   Только все железное и лишнее со стола убирать надо, чтоб на платах ничего не коротнуть.

У вас в жизни всегда будет все, что вы хотите, если вы будете помогать другим людям получать то, чего хотят они.
Разработка сайтов "хобби-проектов" под заказ (сайт, форум) - обращаться в личку.

10

Re: TempMeter для Arduino - описание программы

Иван,  F-F уже есть! Голубого зуба нету и датчика давления.
Да, такого беспорядка, как, когда я колонну паял, не будет  :)

Пиво — интеллектуальный напиток. Какая досада, что его пьет так много идиотов.

11

Re: TempMeter для Arduino - описание программы

"железяки" ко мне тоже едут. Скажите, програмка без обвеса запускается? Чет я туплю, или не там читаю.

Справедливость проявляется в воздаянии каждому по его заслугам.
                                                                                                            Цицерон

12

Re: TempMeter для Arduino - описание программы

Толян ©:

Скажите, програмка без обвеса запускается?

Какой обвес имеется в виду?

13

Re: TempMeter для Arduino - описание программы

d.styler ©:

Какой обвес имеется в виду?

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

Справедливость проявляется в воздаянии каждому по его заслугам.
                                                                                                            Цицерон

14 (2017-06-09 23:05:58 отредактировано al)

Re: TempMeter для Arduino - описание программы

Толян ©:

да все, датчики

На USB порт нужен UART c хотя бы одним датчиком DS 18B20.

Алкоголь не помогает найти ответ,
он помогает забыть вопрос!

15

Re: TempMeter для Arduino - описание программы

al ©:

На USB порт нужен UART c хотя бы одним датчиком DS 18B20.

распиновка как и на темпкепер? Если да, то и с ним не запускается.

Справедливость проявляется в воздаянии каждому по его заслугам.
                                                                                                            Цицерон

16

Re: TempMeter для Arduino - описание программы

Толян, Tx и Rx  объединяешь и через резистор 4,7 кОм на +5В, Питание +5В и Землю на DS 18B20 подаешь , а данные на Tx+Rx.

Алкоголь не помогает найти ответ,
он помогает забыть вопрос!

17

Re: TempMeter для Arduino - описание программы

Толян, блин, тему читал  Инструкция по сборке аппаратного комплекса TMAS-1.0 для автоматизации ?
Там указано куда и где делать расстановку и все остальное - очень досконально...
Ардуина подсоединена? Прошита скетчем? Порт выбран в настройках программы? Если нет ни одного датчика - что можно еще в программе смотреть кроме пустого окна? Все равно ничего делать нельзя...

18

Re: TempMeter для Arduino - описание программы

Я подумал, что там пока без ардуинки. Значит я ляпнул не то.

Алкоголь не помогает найти ответ,
он помогает забыть вопрос!

19

Re: TempMeter для Arduino - описание программы

al, ТМА только с ардуиной работает, нано или микро со своим прошитым скетчем (там протокол управления свой).

20

Re: TempMeter для Arduino - описание программы

Все собрал , все работает, но не могу установить разность т в 0,1 гр.
пишет ошибка, что не так делаю?