датчик температуры в Умном доме на OPENHAB

датчик температуры в Умном доме на OPENHAB

Управление температурой в Умном доме на OPENHAB - это одна из необходимых задач. Рассмотрим управление датчиками температуры DHT22 и DS18B20. Напишем правило включения датчиков от изменения температуры и влажности. Прошьём ESP для датчиков температуры и настроим в OPENHAB MQTT подключение.

 

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

Настройка ДАТЧИКОВ ТЕМПЕРАТУРЫ в программе ESPEasy.
Открываем любой браузер и заходим на страницу настройки датчиков. В моём случае это 192.168.1.24. Вводим пароль.
Нам открывается интерфейс конфигурации нашего устройства. Если вам что то не понятно то пересмотрите видеоурок № 2 или видео ESPEasy – установка и настройка. Там я показал как установить ntp сервер точного времени и свои координаты. Все эти данные будут отображаться во вкладке MAIN.
Во вкладке CONFIG показаны уже заполненные поля данными, что мы указывали при прошивке модуля.
Название, номер устройства, админский пароль. Название и пароль  вашей WIFI сети. Здесь мы ничего изменять не будем.

Теперь перейдём к вкладке  Controllers
ПОКА здесь пусто, но потом мы установим здесь связь с MQTT и нашим OPENHAB и настроим 
публикацию в топик Status. 

Теперь перейдём к вкладке  Controllers
ПОКА здесь пусто, но потом мы установим здесь связь с MQTT и нашим OPENHAB и настроим 
публикацию в топик Status. 

Посмотрим что в HARDWARE.
Здесь очень много информации, но нам для сегодняшнего урока понадобится только 
Установка светодиода
 на плате ESP. Точнее сделаем так, что при работе с сетью он будет светится, а при потере 
сети, погаснет. Светодиод находится на GPIO2. Также если вам понадобятся дополнительные
 контакты, то вы можете отвязать контакты SDA, SCL от I2C установив их в NONE. 


Мы же переходим сразу к добавлению наших датчиков.
Сегодня добавим два типа температурных датчиков. DHT22 его в основном я использовал для определения влажности и датчик DS18B20. Про каждый из этих датчиков у меня на канале есть много уроков, так что если вы не знаете как их подключить то можете посмотреть эти видео здесь. Например DS18B20 я опускал в кипящую воду, а потом положил в морозильную камеру. И всё это время он показывал температуру. Это очень надёжные цифровые термометры.
Диапазон определения температур этими датчиками.
DHT22 - от -40 до 80 °C. И влажность от 0  до 99,9%
DS18B20 - от -55 до +125 °C

Переходим в DEVICE.
Здесь мы будем добавлять наши датчики и укажем к каким контактам модуля ESP они присоединены. Так же на этой странице мы проведём конфигурацию температурных датчиков.
В выпадающем списке выбираем датчик DHT22. Нам сразу откроется страница настройки датчика.
Вводим имя датчика и не забываем, что имя должно быть уникальным в вашей системе. 
Ставим галочку ENABLE, включить датчик и выбираем к какому gpio он подключен. У меня это gpio 13. Выбираем какая у нас модель датчика. DHT22. 
Ставим галку отправлять в контроллер. Устанавливаем с  каким интервалом будут происходить измерения температуры. Я поставил 30 секунд. Можно было бы сделать и реже, но тогда мне бы было неудобно снимать это видео. Я думаю, что оптимально снимать показания раз в минуту.
В полях Значение выбираем сколько знаков после запятой. Для температуры я выбрал 2 знака, а вот для влажности я их совсем убрал так как такая точность не нужна, да и смотреться в ХАБ панели будет не красиво.
Нажимаем отправить и сразу видим, что соединение с датчиком прошло успешно и показана текущая температура и влажность. Можно сразу нагреть датчик и увидеть как изменяются данные температуры.
Теперь установим другой датчик. DS18B20. Там немного по-другому, но ничуть не сложнее. Это адресные датчики. Так как у каждого имеется свой уникальный адрес, то их можно подключать все по одному проводу, а система будет обращаться к каждому по его номеру.
Нажимаем добавить. Выбираем датчик DS18B20.
Обзываем его. Так как у нас в системе будет 2 таких датчика, то нам надо их как-то различать. Поэтому ставим в конце единичку. Включаем, выбираем к какому gpio он подключен. Галочку Отправить. Выбираем интервал и количество знаков после запятой.
После нажатия кнопки отправить нам выводятся дополнительные поля.
Уникальный серийный код длиной 64 бита, Разрешение преобразования от 9 до 12 бит. Это точность определения температуры. Если вам что-то не понятно то смотрите мои видео, там я подробно про это рассказывал.
Я выбирал 12 бит. Отправляем и видим, температур и уникальный номер датчика. Значит всё OK.
Для второго датчика делаем то же самое. Только имя будет с двоечкой в конце.
Мы видим, что датчики показывают практически одинаковую температуру. Так как они находятся рядом  друг с другом.
Теперь для проверки я подышу на датчик DHT22 от этого сразу изменится влажность. На влажность датчик реагирует очень быстро, а на изменение температуры не так быстро. Видим как  постепенно растёт температура.
Как видим всё работает. Теперь можно приступать к написанию кода для вывода в OPENHAB.
 

Давайте вспомним как мы добавляли вещь в прошлом уроке.
Заходим в PAPER UI, идём в INBOX. Нажимаем +. Выбираем MQTT Binding и жмём Добавить в ручную.
Здесь выбираем GENERIC MQTT Thing и создаём новую Вещь. 
Называем вещь. Название должно состоять из имени что вы назвали ваш ESP когда прошивали его прошивкой ESPEas. 
Теперь связываем эту вещь с москито брокером.
Сохраняем. Теперь выбираем её из списка и создаём каналы.
Не знаю как вам, а мне этот способ не очень нравится. Слишком много движений. Пойди туда, нажми то, введи здесь.
Гораздо проще все сделать сразу в конфигурационных файлах.
Давайте посмотрим ка это сделать.
Нам понадобятся 4 файла.
Items
Thinks
Sitemap
RULES,. Так как мы сегодня создадим 2 правила. Первое правило будет включать реле при превышении влажности.  К реле можно подключить вентилятор, второе включится при превышении заданной температуры.

 

Теперь подробнее рассмотрим файл THINGS.
В первой строчке мы указываем привязку к брокеру MQTT. Это единственная строчка где вам придётся вбивать свои данные, если вы будете использовать мой архив с кодом к этому уроку. А дальше подписываемся на топик из которого будем получать данные от брокера о статусе модуля ESP в каком он состоянии. ONLINE или OFFLINE. 

Ниже создаём каналы.
Первый для датчика DHT 22 у него 2 канала Температура и Влажность.
И две нижние строчки – это для датчиков DS18B20. У каждого из них по 1 каналу. Только температура.

Перейдём в PAPER UI. В канал датчика DHT22 температура. И видим что он подписан на топик для получения температуры.
Тоже самое проделаем с каналом Влажность. Мы подписаны и на этот топик. 
А в старом способе. Мы это делали вручную.
Остальные каналы я показывать не буду, там тоже самое.

Теперь откроем ITEMS
В первой строчке мы задаём Статус.
В последующих Температуру и Влажность.
Это мы уже знаем с предыдущего урока.
Новое здесь только вывод названий. Но это и так понятно. Температуру выводим с одним знаком после запятой. И в конце дописываем знак процента ил Цельсия.
Первая строчка выводится как текст, остальные как числа.

Это ITEMS из предыдущего урока про реле.

Ну и последний  это sitemap – это будет выглядеть в BASIC UI.
Здесь мы рассмотрим только новое.
Это возможность выводить два значения на одной строчке.
И изменения цвета при разных значениях температуры и влажности.

Для датчика DHT22 я указал выводить температуру Красным цветом если она  больше30 градусов, зелёным больше или равно 23 градуса и синим если меньше 15 градусов.
Для влажности больше 60 процентов – красным, от 50 до 60 оранжевым и меньше 50 синим.

Скетчи