MQTT обратная связь с физическим энкодером

описание работы блока энкодера с MQTT для начинающих.

Ответить
pochabych
Рядовой
Сообщения: 37
Зарегистрирован: 09.11.2021{, 15:12}
Репутация: 3
Имя: Денис

MQTT обратная связь с физическим энкодером

#1

Сообщение pochabych » 20.10.2022{, 10:32}

Энтузиасты добрый день.
В этот раз не с вопросом, а с решением. Возможно оно кому-то пригодится для своих проектов.
Имеем физический энкодер для контроля железа на месте и MQTT брокер с клиентом. Для сего это нужно? Для того чтобы можно было с экрана железа ESP32 мониторить текущее состояние и делать настройки, а также при необходимости дублировать то же самое через MQTT клиента.
Итак, исходные данные. Есть термодатчик, для которого энкодер должен задать уставку включения и отключения исполнительного механизма и MQTT клиент.
к схеме:
для начала по единичному опросу запрашиваем адрес датчика DS18x2x и присваиваем значение температуры с датчика переменной Температура 1 sens.
далее в блоке Mqtt main прописываем вашего брокера (статус MQTT для контроля онлайн)
далее идет блок публикации уставки температуры на брокер к его логике мы вернемся позднее.
далее идет блок публикации температуры с датчика на брокер (здесь магии нет)
далее идет блок подписки на уставку температуры с брокера, где необходимо подтверждение (вход EN) значений по приему.
Блок энкодера. (я его честно украл на страницах нашего форума, и он работает)
при вращении ручки энкодера а отсчет начинается с "0" мы определяем дельту старого значения энкодера с текущим значением и передаем данные в переменную "изменение значения на энкодере".
Блок сравнения.
при каждом цикле изменения значений на энкодере строе значение энкодера затирается.
далее идет блок присвоения значения уставки в зависимости от изменения значений с энкодера.
далее идет блок ограничения значений уставки от 60до 99.
далее для временного контроля передаются данные на ком порт впоследствии можно данную схему убрать
далее блок управления механизмом исполнения, где производится сверка текущей температуры с уставкой. по достижению гистерезиса уставки SR триггер включит или отключит исполнительный механизм в моем случае реле/светодиод.
теперь вернемся к блоку публикации. при вращении энкодера у меня всегда вылазили артефакты в виде пограничного переключения значений например значений 70 и 71 при этом на ком-порт летели кучу меняющихся значений. для компенсации данного эффекта применение значений происходит по задержке . в итоге значения с энкодера отправляются на брокер спустя 5 секунд и значение не меняется до изменения положения энкодера.
выражаю глубокую благодарность модератору форума Sancho за наставление и реализацию логики работы схемы.
Вложения
encoder test03.flp
MQTT обратная связь с физическим энкодером
(1.81 МБ) 45 скачиваний

Ответить

Вернуться в «Помогите, а то я "нимагу"»