мое видение простого контроллера в системе умный дом

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Ответить
sashad
Сообщения: 5
Зарегистрирован: 01 фев 2019, 15:53

мое видение простого контроллера в системе умный дом

Сообщение sashad » 23 июл 2019, 16:48

Прошивка разработана на базе предыдущего проекта. В этом проекте ставилась цель создать web интерфейс по настройке устройства. Технологически интерфейс представляет собой web-приложение, которое хранится в расширенной памяти устройства ESP8266, данное приложение взаимодействует с основным приложением, которое работает в самом устройстве, по протоколу websocket. Данный факт позволяет взаимодействовать с устройством в режиме DIY, т.е. вместо web-приложения может быть любая пользовательская система. Формат данных, который используется в обмене - JSON.

Под данный проект разработана плата устройства, которая включает:

Электромагнитное реле - 2 шт;
светодиодный сегментный дисплей (4 сегмента);
три кнопки управления;
вольтметр (можно использовать один из двух входов до 5 вольт или до 3.3 вольт);
адаптер (мастер) шины 1-wire на базе чипа DS2482S-100.
Прототип устройства можно увидеть на картинках ниже.

Картинка1 Картинка2 Картинка3

Контроллер предполагает расширение аппаратного функционала по шине 1-wire, на первом этапе (текущем) поддерживаются устройства:

датчик температуры DS18B20
switch/sensor DS2413 (подключение сенсоров и исполнительных устройств-реле).
Максимально возможное количество подключенных устройств к контроллеру по шине 1-wire ограничено числом 32.

Запланировано поддержка других устройств для шины 1-wire и развитие функционала самой прошивки. Прошивка включает автообновление новых версий через интернет.

Как и в предыдущем проекте основная цель контроллера - это автономность и самодостаточность для простых случаев автоматизации (без использования дорогих внешних контроллеров).

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

С помощью кнопок можно управлять заданными в приложении реле.

Так же устройство поддерживает протоколы UDP и MQTT.

При первоначальном включении устройства, оно находится режиме AP-точки доступа WiFi, так что пользователь может подключиться к нему со смартфона и произвести первоначальные настройки для подключения к домашней WiFi сети. В дальнейшем на устройство можно заходить любым интернет-браузером по адресу вида http://ow-XXXXXX.local, где XXXXXX - уникальный номер устройства.

Возможности прошивки можно увидеть в демо-приложении - esp.1vp.ru.

К данному варианту настройки приложения настроена mqtt-панель для смартфона (скриншет ниже). В основном, mqtt-панель служит для мониторинга настроенных в приложении исполнительных устройств, но можно вмешиваться в автоматический режим работы реле. Если какое либо реле остается не настроенным, то им можно управлять только в ручном режиме с помощью mqtt панели или посредством DIY режима, по протоколу websocket.

MQTT-панель-1 MQTT-панель-2

Далее следует описание функций, которые могут быть настроены для любого реле (исполнительного устройства) в системе.

Реле времени
Реле времени может быть использовано для включения какой либо нагрузки в определенный промежуток времени. Для задания моментов включения и/или выключения реле используются записи в формате CRON, данный формат задания моментов времени выбран из-за своей универсальности и лаконичности записи.

Реле времени, режим Astro
Для случая включения освещения в темное время суток предусмотрен данный режим работы. Работа реле будет привязана к астрономическим часам, к моментам восхода и захода солнца. В момент восхода солнца реле будет отключаться, а в момент захода включаться или наоборот, если включить опцию инверсии режима. Необходимо будет задать географические координаты вашего местоположения и времени поправки в минутах относительно моментов восхода и заката. Точное время срабатывания реле будет рассчитываться: время восхода +(плюс) время поправки и время заката -(минус) время поправки(смещения). Так же можно задать и значения включения и/или выключения для обычного режима "реле времени". Тогда результирующее состояние реле будет результатом двух условий по логической операции "И", т.е. реле времени будет в состоянии включено по астрономическому времени И в заданные моменты времени.

Термостат
Термостат по алгоритму температурного гистерезиса c двумя температурными границами (нормальной и высокой). Нормальная граница задает температуру, которую нужно достигнуть включив нагрузку и выключить, достигнув температуры +(плюс) температуры гистерезиса. Верхний диапазон, рассчитан для случая когда нужно снова включать нагрузку, когда достигнута верхняя граница температуры и выключить, когда температура снизилась на величину высокого гистерезиса.

Термостат (PID-контроллер)
Данный режим работает по алгоритму PID контроллера (proportional–integral–derivative controller). Данный алгоритм обеспечивает более точное поддержание температуры в отличии от алгоритма температурного гистерезиса.

Изображение

На картинке можно наблюдать эффект на различных значениях параметров PID алгоритма. По дефолту заданы следующие значения: Kp=2.0 Ki=5.0 Kd=1.0, длительность одного цикла выбрана 960 секунд (16 минут), ввиду большой инерционности систем отопления (значения настраивается). Параметры можно подбирать экспериментальным путем. Длительность рабочего цикла (включенного состояния реле) рассчитывается алгоритмом. В настройки вынесены минимальное время рабочего цикла, т.к. нет смысла включать двигатель отопления или газовый котел на слишком короткий интервал времени и максимальное время, выше которого реле будет постоянно включенным, опять же нет смысла отключать систему отопления на слишком короткое время.

В обоих режимах термостата можно задавать моменты времени и устанавливать необходимые целевые температуры, так-же в формате CRON.

Цифровой сенсор
В данном режиме реле будет включать или выключать нагрузку в зависимости от состояния цифрового датчика, который подключается через устройство по шине 1-wire на основе микросхемы DS2413.

Сенсор напряжения
Состояние реле включается или выключается в зависимости от уровня напряжения на входе датчика-вольтметра.

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

полная версия статьи

x13dev
Сообщения: 368
Зарегистрирован: 22 окт 2012, 11:40
Откуда: Бавария

Re: мое видение простого контроллера в системе умный дом

Сообщение x13dev » 24 июл 2019, 16:36

Хоть Вы и описываете конкретное устройство, но можно я по самой концепции потопчусь.

Основной упор делается на автономном устройстве и опционально связь с центром(MQTT/UDP). На самом устройстве имеется фиксированный функционал с возможностью конфигурации.
К плюсам можно отнести:
- для настройки достаточно современного телефона
- при падении инфраструктуры/сервера базовый функционал останется
- простая настройка
Минусы:
- когда число устройств перевалит за десяток начнётся путаница.
Нужно два имени физическое расположение - устройство/вывод и логическое - местоположение/функция
Нужна возможность сохранения/восстановления настроек, желательно автоматическое сохранение версий. Если увлёкся и напортачил, то вернутся на полчаса назад, а не к версии недельной давности.
- запихивание конкретных функций в устройство приведёт с одной стороны к распухание прошивки в попытке объять необъятное и с другой переносу логики на сервере(программе с другим интерфейсом и возможно
отличающейся базовой идеей), а как следствие и потере двух перечисленных плюсов.
- вслед за повышением сложности решаемых задач уйдёт и последний плюс(как пример из обсуждения МегаДевайса pt=8&scl=9&i2c_addr=10&ptr=00&write=FFFFFFFFFF)

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

В таком виде можно даже попытаться реализовать единообразную среду исполнения на сервере и устройствах. Отладил алгоритм на сервере и критичную часть можно перетащить на устройство.

sashad
Сообщения: 5
Зарегистрирован: 01 фев 2019, 15:53

Re: мое видение простого контроллера в системе умный дом

Сообщение sashad » 24 июл 2019, 18:29

даже не поспорить! все правильно пишите ... но как я уточнял в описании - "простые случаи автоматизации"!!!
я сам начинал с openhab, но мне не понравилась сложность решения простых задач!
теперь я "выбросил" свой сервер openhab ... в котельной стоит маленькая коробочка и делает все что необходимо! и есть потенциал развития ...

некоторые замечания:
- настройки функционала теперь сохраняются при обновлении, к этому пришел сразу, как только поставил на "боевое дежурство" железку :)
файлы настройки устройств можно, скачать и сохранить! сделаю кнопку ...
- местоположение/функция - согласен.
- сложный функционал реализовывать не собираюсь!
- собираюсь добавить поддержку ds2423-счетчики и ds2450-вольтметр и может быть iButton, чтобы охватить самые необходимые и простые задачи.

спасибо за конструктив!

d.v.ermakov
Сообщения: 942
Зарегистрирован: 29 май 2015, 21:23
Откуда: Екатеринбург, Нижний Тагил

Re: мое видение простого контроллера в системе умный дом

Сообщение d.v.ermakov » 24 июл 2019, 22:29

По поводу ПИД-контроллера. Хорошая, конечно, гифка из Википедии. А вот реальные алгоритмы обычно работают не так красиво. Практика с измерениями есть?

sashad
Сообщения: 5
Зарегистрирован: 01 фев 2019, 15:53

Re: мое видение простого контроллера в системе умный дом

Сообщение sashad » 25 июл 2019, 09:38

пока нет, отопительный сезон начнется, поделюсь опытом ... у меня висел на стенке специализированный ПИД контроллер,
в принципе результаты были хорошие, держал очень точно температуру десятые доли градуса, щелкал только своей релюхой и батарейки приходилось менять, причем со временем все чаще и чаще, не знаю почему ...
дак вот я его снял, повесил красивую рамку с датчиком температуры и светодиодами (подсветка включается при работе котла) :)

x13dev
Сообщения: 368
Зарегистрирован: 22 окт 2012, 11:40
Откуда: Бавария

Re: мое видение простого контроллера в системе умный дом

Сообщение x13dev » 25 июл 2019, 15:03

sashad писал(а):
24 июл 2019, 18:29
но как я уточнял в описании - "простые случаи автоматизации"!!!
А в чём тогда "Фишка"? Поставьте рядом рядом Siemens Logo или любой IndustrialPLC с вторичного рынка, с другой стороны Arduino. Первые уделают по надёжности и узнаваемости бренда, вторые по гибкости. И это всё при сравнимой цене.
d.v.ermakov писал(а):
24 июл 2019, 22:29
По поводу ПИД-контроллера. Хорошая, конечно, гифка из Википедии. А вот реальные алгоритмы обычно работают не так красиво. Практика с измерениями есть?
Использую ПИД в управлении отоплением уже 2 года. Раз в неделю, в течении 2-3 месяцев, играешься с коэффициентами - результат чуть лучше, чем механические клапана.

d.v.ermakov
Сообщения: 942
Зарегистрирован: 29 май 2015, 21:23
Откуда: Екатеринбург, Нижний Тагил

Re: мое видение простого контроллера в системе умный дом

Сообщение d.v.ermakov » 25 июл 2019, 15:57

x13dev писал(а):
25 июл 2019, 15:03
Использую ПИД в управлении отоплением ...
Я, честно говоря, не про отопление. Для него, ИМХО, и П-регулирования достаточно.
А вот при достаточно точном регулировании температуры потока воды или воздуха всё гораздо интереснее.
С домашней вентустановкой некоторое время экспериментировал, приемлемых результатов добиться не удалось. Промышленные регуляторы работают гораздо точнее, чем алгоритмы из книжек. Или я чего-то не понимаю (что скорее всего).
Вот, кстати, самое удачное из встреченных мной объяснений ПИД-регулирования: https://www.youtube.com/watch?v=VVOi2dbtxC0
Циглер-Николс на 22:17 начинается.
Вот ещё про методы: http://pages.mtu.edu/~tbco/cm416/tuning_methods.pdf
Вручную выставлять коэффициенты - извините, совсем не вариант. Да и не работает это.
Последний раз редактировалось d.v.ermakov 25 июл 2019, 16:22, всего редактировалось 1 раз.

sashad
Сообщения: 5
Зарегистрирован: 01 фев 2019, 15:53

Re: мое видение простого контроллера в системе умный дом

Сообщение sashad » 25 июл 2019, 16:20

ну да, получается фишки нет! и вообще, все придумано уже до нас! :)

поглил аппараты Сименс - круто! мне не пришло в голову искать промышленные контроллеры на рынке Б/У!

"выше надежность" - может быть ... но и я старался :) ... в платформу esp8266, esp32, Arduino и т.п. я поверил, работать на профессиональном уровне можно! практически все библиотеки, которые я использовал приходилось править, но ничего, все решаемо оказалось. пока uptime больше недели не получается получить, что-нибудь да поправлю в функционале ... вот и сейчас, добавил возможность задать температуру для термостата с mqtt-панели, а не только из приложения, чтобы возвращаясь из теплых стран, заранее включить комфортную температуру :)

sashad
Сообщения: 5
Зарегистрирован: 01 фев 2019, 15:53

Re: мое видение простого контроллера в системе умный дом

Сообщение sashad » 25 июл 2019, 16:35

я наблюдал, как ПИД контроллер адаптируется к резкому изменению температуры за бортом, в принципе приемлемо, но в голову пришла мысль: если тепло-потери дома стабильны, то достаточно запомнить параметры ПИД контроллера при разных температурах снаружи (в стабильном состоянии системы) и устанавливать их сразу при изменении внешней температуры, таким образом можно еще улучшить процесс стабилизации. Но не стал заморачиваться ...

Ответить