В этой статье я расскажу про то, как изменять температуру в доме, сократив при этом переключения реле. Я использую гистерезис для того, чтобы реле, к которому подключен обогреватель и к другому кондиционер не переключались слишком часто.
У меня в проекте есть файл json. В нём прописаны “точки” (время : значение температуры) для каждого дня недели. Их должна поддерживать система. Даже при небольшом отклонении от порогового значения, заданного в этом файле, реле будет переключаться в противоположное значение. Чтобы оно этого не делала, я добавил гистерезис. В чём его суть? Его суть в переключении состояния только при отклонении от порогового значения на определённую dt. Т.е, если температура меньше определённого значения (в моей системе 3 ℃), то реле включает обогреватель. Но если он включен, при достижении 20℃ (предположительно, значения, заданного в файле json) обогреватель выключится. Только при достижении 24℃ (при dt = 3℃) кондиционер включится и выключится обогреватель. При достижении 23℃ кондиционер выключится и ничего не будет включено.
У нас есть контроллер esp32, который отправляет в MQTT значение актуальной температуры. И Node-Red, обрабатывающий значение, полученное из MQTT.
Скриншот из Node-Red:
В первой функции мы создаём переменные (вкладка “Настройка)”:
И в функции присваиваем переменной значения:
Во второй функции мы получаем значение из json:
А в третьей функции мы делаем гистерезис:
Вкратце, мы получаем в Node-Red значение актуальной температуры из MQTT. Сравниваем с указанным в файле json значением. Если значение из MQTT ниже заданной на определённое значение, тогда система переходит в состояние обогрева. Но если сейчас она охлаждается, то при достижении порогового значения она перейдёт в состояние, когда и обогреватель, и кондиционер выключены. Но как только температура станет на заданное значение выше порогового, то тогда система перейдёт в состояние охлаждения.
В итоге, мы не ощущаем разницу температуры, продлили срок службы реле и избавились от излишних переключений.
Ссылка на мою предыдущую статью.