Энтузиасты добрый день.
В этот раз не с вопросом, а с решением. Возможно оно кому-то пригодится для своих проектов.
Имеем физический энкодер для контроля железа на месте и MQTT брокер с клиентом. Для сего это нужно? Для того чтобы можно было с экрана железа ESP32 мониторить текущее состояние и делать настройки, а также при необходимости дублировать то же самое через MQTT клиента.
Итак, исходные данные. Есть термодатчик, для которого энкодер должен задать уставку включения и отключения исполнительного механизма и MQTT клиент.
к схеме:
для начала по единичному опросу запрашиваем адрес датчика DS18x2x и присваиваем значение температуры с датчика переменной Температура 1 sens.
далее в блоке Mqtt main прописываем вашего брокера (статус MQTT для контроля онлайн)
далее идет блок публикации уставки температуры на брокер к его логике мы вернемся позднее.
далее идет блок публикации температуры с датчика на брокер (здесь магии нет)
далее идет блок подписки на уставку температуры с брокера, где необходимо подтверждение (вход EN) значений по приему.
Блок энкодера. (я его честно украл на страницах нашего форума, и он работает)
при вращении ручки энкодера а отсчет начинается с "0" мы определяем дельту старого значения энкодера с текущим значением и передаем данные в переменную "изменение значения на энкодере".
Блок сравнения.
при каждом цикле изменения значений на энкодере строе значение энкодера затирается.
далее идет блок присвоения значения уставки в зависимости от изменения значений с энкодера.
далее идет блок ограничения значений уставки от 60до 99.
далее для временного контроля передаются данные на ком порт впоследствии можно данную схему убрать
далее блок управления механизмом исполнения, где производится сверка текущей температуры с уставкой. по достижению гистерезиса уставки SR триггер включит или отключит исполнительный механизм в моем случае реле/светодиод.
теперь вернемся к блоку публикации. при вращении энкодера у меня всегда вылазили артефакты в виде пограничного переключения значений например значений 70 и 71 при этом на ком-порт летели кучу меняющихся значений. для компенсации данного эффекта применение значений происходит по задержке . в итоге значения с энкодера отправляются на брокер спустя 5 секунд и значение не меняется до изменения положения энкодера.
выражаю глубокую благодарность модератору форума Sancho за наставление и реализацию логики работы схемы.
MQTT обратная связь с физическим энкодером
MQTT обратная связь с физическим энкодером
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Вернуться в «Помогите, а то я "нимагу"»
Перейти
- Правила размещений сообщений
- FLProg & SCADA
- ↳ FLProg
- ↳ FLProg-Scada
- ↳ Проекты
- ↳ Пожелания
- Основной
- ↳ Периферийное железо для контроллеров
- ↳ Датчики температуры, влажности и давления
- ↳ Прочие датчики и энкодеры
- ↳ Дисплеи и индикаторы
- ↳ Часы реального времени
- ↳ Управление двигателями
- ↳ Устройства памяти
- ↳ Расширители портов
- ↳ Кнопки и клавиатуры
- ↳ Звук, музыка и видео
- ↳ Светодиоды
- ↳ ЦАП и АЦП
- ↳ Печатные платы, блоки питания, корпуса и прочие компоненты
- ↳ Приборы и оборудование
- ↳ Espressif ESP
- ↳ ESP8266
- ↳ Справка по ESP8266
- ↳ Платы на основе ESP8266
- ↳ ESP32
- ↳ Справка по ESP32
- ↳ Платы на основе ESP32
- ↳ WEB интерфейс
- ↳ Готовые прошивки
- ↳ Спросить у знатоков
- ↳ Темы от автора
- ↳ Обсуждение работы сайта
- ↳ Справочники и даташиты
- ↳ Юмор. Отдохните, улыбнитесь и с новыми силами в бой!
- ↳ Покупка железа (Обмен опытом)
- ↳ Просто поболтать (На свободную тему)
- ↳ Торрент - ссылки
- ↳ HMI_панель на Андроиде - KaScada
- ↳ Полезные ссылки
- ↳ OnLine Общение
- ↳ Читальный зал
- ↳ HMI Virtuino
- ↳ Пользовательские контроллеры
- ↳ Коммуникация, связь, инструменты, программы
- ↳ MQTT
- ↳ Blynk
- ↳ Modbus
- ↳ Remote XY
- ↳ WiFi
- ↳ Bluetooth
- ↳ Radio 433 MHz
- ↳ GSM / GPRS
- ↳ GPS
- ↳ Infrared (IR)
- ↳ Ethernet
- ↳ UART
- ↳ CAN
- ↳ Другие
- ↳ Контроль доступа. Обсуждение
- ↳ RFID
- ↳ iButton
- ↳ Датчик отпечатка пальцев
- ↳ Конфиденциальность
- ↳ Базовые элементы
- ↳ Таймеры
- ↳ Математика
- ↳ Логика
- ↳ переменные
- ↳ Arduino. Другие МК
- ↳ ATmega328,168
- ↳ ATmega32u4,2560
- ↳ Atmel Cortex-M3
- ↳ Проекты различных устройств на Ардуино
- ↳ Инкубаторы
- ↳ STM32
- ↳ Проекты различных устройств на STM32
- ↳ Команда ecoins
- Видео. Уроки. Примеры.
- ↳ Обучающие видео материалы
- ↳ Видео от Автора программы
- ↳ Ключ к Arduino
- ↳ Видео от Rovki
- ↳ Обучающие примеры работы в FLProg
- ↳ Интересный контент с FLProg
- Проекты различных устройств
- ↳ Проекты различных устройств на Arduino
- ↳ Проекты различных устройств на ESP8266 / ESP32
- ↳ ESP8266
- ↳ ESP32
- ↳ Проекты различных устройств на STM32
- ↳ Проекты с разными контроллерами
- Песочница
- ↳ Начинающим
- ↳ Wiki
- ↳ Электронщикам - Непрограммистам
- ↳ Штатные блоки
- ↳ Помогите, а то я "нимагу"
- ↳ А что так можно было, да?
- ↳ Не могу найти тему ...
- Пользовательские блоки
- ↳ Триггеры, таймеры, счетчики, детекторы сигнала
- ↳ Блоки для рассчетов и цифровые фильтры
- ↳ Блоки сравнения (компараторы)
- ↳ Коммуникация и связь
- ↳ Управление шаговыми двигателями и сервоприводами
- ↳ Часы реального времени (RTC)
- ↳ Дисплеи, индикаторы и клавиатуры
- ↳ Работа со строками
- ↳ Датчики и энкодеры
- ↳ EEPROM и SD карты
- ↳ Конвертация типов, шифраторы и дешифраторы
- ↳ Микросхемы расширений
- ↳ ПИД регуляторы (PID), блоки для ШИМ
- ↳ Звук и видео
- ↳ Контроль доступа
- ↳ Светодиоды, освещение
- ↳ Другое
- ↳ Разработка пользовательских блоков
- ↳ Библиотеки пользователей
- ↳ Блоки для ESP32/ESP8266
- Программирование на С++
- ↳ Учебные материалы
- ↳ С++ в Ардуино
- ↳ Общие вопросы
- Одноплатные компьютеры
- ↳ Rapsberry Pi
- ↳ Orange Pi
- ↳ Banana Pi
- Умный Дом
- ↳ Проекты
- ↳ Умная Дача
- ↳ Home Assistant
- ↳ MajorDoMo
- ↳ OpenHAB
- ↳ ioBroker
- ↳ Облачные сервисы
- ↳ LoRa
- ↳ Общая информация и вопросы
- ↳ Проекты
- Объявления
- ↳ Доска объявлений
- ↳ Прием заказов
- ↳ Коллективные покупки
- Другие визуальные среды программирования
- ↳ Node-Red
- ↳ Примеры
- ↳ Настройки
- ↳ Общие вопросы
- ↳ HiAsm
- ↳ Примеры
- ↳ Настройки
- ↳ Общие вопросы
- ↳ LabVIEW
- ЧПУ
- ↳ Станок на ATmega 2560 с шилдом
- ↳ Проекты
- ↳ ЧПУ + FLProg
- ↳ Общие вопросы...
- Android
- ↳ Визуальное программирование в App Inventor
- ↳ Программы
- ↳ Денежные переводы
- ↳ Обсуждение программы FLProg (Не багтрекер, и не хотелки. Делимся опытом!!)
- ↳ Встроенные блоки
- ↳ Интерфейс программы
- ↳ Установка и работа FLProg на разных ОС
- ↳ FLProg и Arduino IDE
- ↳ Помощь и справочная информация
- ↳ Сторонняя SCADA для Ардуино
- ↳ Прочие вопросы
- ↳ Баг - Трекер
- ↳ Новые
- ↳ Принятые
- ↳ В работе
- ↳ Выполненно
- ↳ Отложенно (временно не возможно)
- ↳ Не принятые
- ↳ Архивы
- ↳ Архив (Версия 2.1)
- ↳ Архив (Версия 1.15)
- ↳ Архив (Версия 1.14)
- ↳ Архив (Версия 1.12)
- ↳ Архив (Версия 1.11.1)
- ↳ Архив версия 1.11
- ↳ Архив (Версия 1.10.4)
- ↳ Архив (Версия 1.10.3)
- ↳ Архив (Версия 1.10.2)
- ↳ Архив (Версия 1.10.1)
- ↳ Архив (Версия 1.10.4)
- ↳ Архив (Версия 1.10.3)
- ↳ Архив (Версия 1.10.2)
- ↳ Новый функционал
- ↳ Новые
- ↳ Принято
- ↳ В работе
- ↳ Выполненно
- ↳ Отложенно (временно не возможно)
- ↳ Не принято
- Самые интересные и популярные темы (эксперимент)
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей