подключение модуля реле esp 8266 Умный дом OPENHAB

подключение модуля реле esp 8266 Умный дом OPENHAB

В этом уроке мы научимся прошивать модуль ESP программой ESPEasy. Подключим ESP к OPENHAB и будем управлять Умным домом. Прошивать модуль ESP можно по воздуху, используя WIFI соединение. 
Напишем код для управления умным домом с помощью правил OPENHAB. И не важно какой модуль вы используете NODEMCU или ESP8266 программа ESPEasy РАБОТАЕТ С ЛЮБОЙ ПРОГРАММОЙ. Я покажу как в OPENHAB создавать вещи, THING, работать с PAPER UI и BASIC UI. Управлять реле будем с помощью планшета и телефона, а также через ХАБ панель. Изучим настройки, и возможности OPENHAB и ESPEasy.

Сегодня мы будем подключать модуль из 2-х реле к плате ESP8266 и прошивать для работы в Умном доме на OPENHAB. 
Для этого урока я буду использовать вот такой набор деталей.
модуль ESP8266 ESP07. Мой выбор пал на него только из-за того, что у меня их много и для 2-х реле я считаю, что очень жирно использовать NodeMCU. Чтобы не мучиться с подключением я использую плату на которой уже запаяны все необходимые резисторы и сделаны выводы под обычный шаг 2,54 мм.
Гнездо разъёма под мини usb. Так как питать скорее всего буду от телефонной зарядки.
Модуль DC-DC AMS1117 это преобразователь с 5 на 3,3вольта. Так как все модули ESP8266 работают от 3.3 вольта.
Сдвоенный модуль реле. Он позволит нам управлять большой нагрузкой и работать с напряжением 220 вольт.  
Ну и обычно я ставлю какой-нибудь конденсатор по питанию, который защитит от скачков. Но это не обязательно, но желательно так как модуль ESP хоть и маленький на вид, но бывает очень прожорлив. Поэтому его нельзя питать от 3,3 вольта платы Ардуино. Нужен отдельный блок питания.
 Ну и сама плата на которой я всё это соберу. Это самая дешёвая коричневая плата, но для сегодняшнего проекта нам хватит и такой.
Как я буду паять я показывать не буду. Вернусь, когда всё спаяю. Не уходите. 
Ну вот и готово. Надеюсь что за это время вы успели поставить лайк.

Все детали отлично разместились на макетной плате. Можно было бы конечно и покомпактнее сделать, но не суть важно. Я правда пока не отмыл её от флюса. Вот как я торопился к вам. Хейторы конечно сейчас начнут ругаться, что отстой и всё такое. Но мне нравится. Сделано надёжно, контакты хорошие и связь не пропадает. Так что буду дальше показывать на этой плате. 
Подготовимся к прошивке. Надеюсь, что это все умеют делать. Подключим питание. Я использую обычную зарядку от телефона. И запустим ESP  flasher. Я это делаю от имени администратора. 

На сегодняшний день самой лучшей программой для прошивки модулей ESP8266 является программа ESPEasy. Удобство этой программы в том, что ESP надо прошить всего 1 раз с компьютера, а всё остальное будет уже происходить по воздуху, через ваше WIFI соединение. А ещё там есть прошивки для всевозможных модулей и датчиков, как для Ардуино, так и других контроллеров и просто заводских изделий. Например, Умные лампы, розетки и многое другое.
Надеюсь, что подключать ESP8266 к компьютеру вы уже умеете и я не буду здесь останавливаться. Это я говорю не для обладателей NODEMCU.
Я например подключаюсь через Ардуино. Как это сделать можете посмотреть мои предыдущие видео, там я подробно рассказывал об этом.
Надеюсь за это время вы успели поставить лайк? 
Теперь вернёмся к ESPEasy.
Для начала скачаем программу для прошивки ESP и не важно какая у вас плата, ESP 01 или NodeMCU.
Качать будем с гитхаба. 
Ищем в поисковике ESPEasy. Самая первая строка это то что нам нужно. Заходим и попадаем на самую свежую прошивку. Прокручиваем вниз и нажимаем скачать  
Прошивка весит – 70 мегабайт.
После скачивания устанавливаем программу на компьютер и запускаем ESP.Easy.Flasher.exe 
Вам выпадет вот такое вот окно. Вот с ним мы и будем работать. Все функции программы я сегодня рассказывать не буду. Их очень много, а расскажу только то что нам сегодня понадобится, а про остальное узнаете в процессе следующих уроков.
В следующих уроках я буду постоянно ссылаться на это видео. Поэтому я так подробно рассказываю.

в тексте


Кодирование.
Для написания кода я буду использовать программу Visual Studio Code, но вы можете использовать просто notepad++. Я очень долго писал в нём и это никак не сказывалось на коде. Просто сейчас, когда кода стало очень много я перешёл на студию. Так что решайте сами в чём вам удобнее.
Сначала создадим файл items. Этих файлов может быть много. Я например делаю так. Для каждой вещи, я создаю свой items. Это удобно потом для поиска и редактирования.
У нас сегодня будут 2 реле, поэтому вставим вот такие строчки.
Все примеры вы потом сможете скачать единым архивом с сайта. Ссылка будет в описании.
Код состоит из вот такой строки.
SWITCH, Служебного названия, Описания которое вы увидите в интерфейсе, и ссылке на канал.
Ссылка пока будет пустая. Вы потом вставите сюда код после того как создадите канал.
Пока это может быть непонятно, но скоро всё станет ясно.
 Второй файл который сегодня понадобится – это файл sitemap.
Этот файл может быть только один и он отвечает за вывод в интерфейс BASIC UI.
Про него я рассказывал в прошлом уроке.

Запускаем ESP EASY FLASHER. 
В открывшемся окне мы будем производить настройки для прошивки нашего модуля.
Для начала установим порт к которому подключен модуль ESP. Если у вас стоит галочка, то вы увидите только активные порты.
Затем выберем прошивку. Как можно увидеть здесь их очень много. Есть прошивки абсолютно для любых версий модуля. Вы также можете просто очистить модуль прошив его прошивкой blank. 
Единственное, что вам нужно  знать так это объём флэш памяти которое находится на борту вашего модуля. У меня например 1 мегабайт, а если у вас Node MCU, то памяти скорее всего 4 мегабайта. Сегодня я не буду очищать свой модуль, а сразу прошью.
Для моделей есть 4 варианта прошивки.
Тестовая, нормальная, минимальная и кастомная.
Советую прошивать нормальной прошивкой. Так как мой модуль ESP 8266 , то я выбираю вот эту прошивку.
Нормальная, для    ESP 8266 объёмом 1 мегабайт.
Можно ещё изменить скорость, но думаю не стоит, так как 115200 это оптимальная скорость работы модуля.
Дальше надо указать имя под которым вы будете использовать его. Имя нужно выбирать так чтобы потом можно было легко вспомнить что это такое и за что отвечает.
в тексте Далее надо указать номер устройства. Номера должны быть уникальными, не повторяющимися. 
Ну и пароль. Вы конечно можете его не указывать, но тогда кто-нибудь может подключиться к нему. Так что для безопасности пароль нужно указывать всегда.
 Ниже идут настройки ваше WIFI сети. Название и пароль. Я их скрыл. Ну мало ли что.
Здесь также можно указать фиксированный IP адрес устройства. Если вы его не укажете, то он будет присвоен вашим роутером. 
Я указал, что он будет 192 168 1 111, и потом буду входить по этому адресу.
Ну и последняя строчка – это для резервной WIFI сети. Если модуль не сможет подключиться к одной сети, то он будет искать вторую.
Теперь нажимаем прошить и ждём. Ждать придётся примерно 3-5 минут. Так что запаситесь терпением.
Во время прошивки на модуле ESP будет мигать светодиод – это показывает, что идёт приём-передача информации. Через какое-то время вы увидите как побегут строчки указывающие что в данный момент происходит. Там будет выводиться информация которую вы указали в полях. Название, номер, пароль. Свойства вашей WIFI сети. Модуль сам перезагрузится и пропингует то адрес что ему был присвоен.
После того как  как вы увидите вот такой экран, естественно со своими настройками, то вам надо будет перезагрузить модуль. Желательно отключив его от питания.
После этого ваш модуль будет готов для работы через WIFI, и больше вам не надо будет подключать его к компьютеру, а прошивать можно будет и с телефона.
Это очень удобно.
Следующий этап – это работа модуля с реле.

Настройка модуля реле в программе ESPEasy.
Открываем любой браузер и вводим IP адрес вашего устройства. В моём случае  - это 192.168.1.111 
Если вы задавали пароль,  чего я вам советую делать всегда, то у вас откроется стандартное окно с полями ввода пароля.
Логин всегда будет админ, а пароль, тот, что вы задали. Я в своём примере пароль тоже  сделал админ.
Заходим. Перед нами открывается вот такой интерфейс.
Сначала рассмотрим вкладку MAIN
Мы видим номер вашего устройства. В своём примере я указал, что он будет 5
Локальное время – Оно пока у нас не установлено
Время работы модуля в сети.
Загружено в процентах.
Свободно оперативной памяти.
IP адрес устройства.
И уровень принимаемого сигнала.
Если открыть дополнительные свойства, то можно увидеть намного больше информации. 
Я не буду рассказывать про них, сами посмотрите.
Из интересного там, настройки вашей сети и полные сведения о модуле ESP. Размер памяти, 
скорость, частота и многое другое.
Откроем вкладку Config.
Вы увидите уже заполненные поля данными что мы указывали при прошивке модуля.
Название, номер устройства, админский пароль. Название и пароль  вашей WIFI сети. Здесь мы ничего изменять не будем.
Теперь перейдём к вкладке  Controllers
ПОКА здесь пусто, но потом мы установим здесь связь с MQTT и нашим OPENHAB и настроим 
публикацию
 в топик Status. 
Посмотрим что в HARDWARE.
Здесь очень много информации, но нам для сегодняшнего урока понадобится только 
Установка светодиода
 на плате ESP. Точнее сделаем так, что при работе с сетью он будет светится, а при потере 
сети, погаснет. Светодиод находится на GPIO2. Также если вам понадобятся дополнительные
 контакты, то вы можете отвязать контакты SDA, SCL от I2C установив их в NONE. 
Переходим в DEVICE.
Здесь мы будем добавлять наши устройства и указывать к каким контактам они 
присоединены. Так же проводить конфигурацию.
В NOTIFICATIONS мы ничего сегодня изменять не будем, а перейдём сразу в TOOLS
Здесь можно перезагрузить модуль, прочитать логи, обновить прошивку, но мы 
сегодня только подключим сервер времени и установим наш часовой пояс и подключим работу с правилами..

в тексте

Теперь давайте выполним настройку нашего модуля и конфигурацию реле.


Заходим в controllers и нажимаем добавить.
В выпадающем списке выбираем пункт HOME Assistans, OPENHAB MQTT.
Указываем IP на котором у вас размещён MQTT сервер. Если вы при установке не меняли порт, то он указан верно. Дальше надо ввести логин и пароль от MQTT брокера.
Включить соединение.
Заполним поля
LWT Connect Message – это сообщение об установлении соединения. 
и
LWT Disconnect Message - сообщение о потере соединения  


А здесь мы указываем, что если связь с WIFI установлена, то включить светодиод, а если связь пропала выключить. Светодиод находится на 2 ножке модуля. Про эти контакты я уже говорил. Больше ничего менять не надо. И главное. Не забывайте постоянно  нажимать SUBMIT. 

Переходим к device. Нажимаем добавить. В выпадающем списке выбираем SWITCH INPUT – SWITCH.
Указываем имя. Не забываем что оно должно быть уникальным и чтобы вы потом вспомнили что это.
У меня это уже 5 реле в системе. Поэтому я так и укажу. Включаем его, а также включаем внутреннюю подтяжку. Указываем к какому GPIO он подключен. В моём случае к GPIO 14. Ставим галочку Отправлять свой статус. Делаем небольшую защиту от дребезга. Ещё здесь можно указать, что срабатывание от двойного клика и или от долгого нажатия на выключатель. И время нажатия. Ставим галку отправлять данные.
Тоже самое проделываем со вторым реле. Только имя и GPIO ставим другие. 

Ну вот и осталась последняя вкладка TOOLS. Здесь мы рассмотрим только Advanced.
Для начала устанавливаем галочку, что мы будем использовать правила. Теперь нам нужно указать адрес ntp сервера. Сервера точного времени. В ы можете выбрать свой или указать тот что у меня. Но всё равно посмотрите как найти сервер. В любом поисковике набираете ntp сервер и открываете страницу. Затем выбирает не самый загруженный сервер. Копируете его имя и вставляете в свои настройки.
А здесь устанавливаете, что неделя у нас начинается с понедельника, а не с воскресенья. Как у них там.
Теперь надо указать свою часовую зону, или часовой пояс. Указывается в минутах. Мой часовой пояс + 3. Это значит 180 минут. Вот их я и вставлю.
Теперь установим широту и долготу своего родного города. Это не обязательно, но может потом пригодиться, например для датчика давления. Там будет нужно знать высоту над уровнем море. Ну может ещё где пригодится.
Делается это также просто. В поисковике набираете широта и долгота и вставляете эти данные в настройки.
Больше ничего менять не будем, хотя здесь есть ещё пару значений которые можно поменять. Но сегодня они нам не понадобятся.
На этом мы настройку закончили. Идём снова в MAIN и смотрим, что у нас изменилось.
Мы видим, что у нас установилось локальное время, и что мы находимся в сети уже 14 минут.

Повторяться не буду. Расскажу только про новое.
Frame отвечает, что на экране будет показана кнопка с описание ВКЛЮЧЕНИЕ РЕЛЕ, а сами реле будут показаны только после нажатия на эту кнопки.

Внутренний frame покажет сами реле.

Здесь показано, что
Это SWITCH и он связан с каналом и рядом будет выведена иконка. Позже я покажу как менять иконки.
На этом весь коддинг закончен. Теперь переходим к созданию в OPENHUB.
Заходим в PAPER UI, в INBOX. Нажимаем +. Выбираем MQTT Binding и жмём Добавить в ручную.
Здесь выбираем GENERIC MQTT Thing и создаём новую Вещь. Я буду часто говорить слово вещь, так как THING переводится как вещь. К этому просто надо привыкнуть.
Называем вещь. Название должно состоять из имени что вы назвали ваш ESP когда прошивали его прошивкой ESPEasy и номера который тоже там указали. 
При прошивке я неточно выразился сказав, что номер должен быть уникальным. Точнее будет сказать что связка НАЗВАНИЕ-НОМЕР должна быть уникальна.
Например у вас 5 реле. И все они названы реле. И отличить их можно только по номеру. Надеюсь что объяснил.
Я скопировал это название, чтобы не ошибиться при написании его в дальнейшем.
Теперь связываем эту вещь с москито брокером.
Сохраняем. Теперь выбираем её из списка и создаём каналы.
Для начала нам надо выбрать тип канала. Их много, но нам нужен on off Switch. Теперь прописываем его ID
Оно состоит из название вещи и дополнительной цифры. Для первого реле я указал цифру 1.
Теперь пишем статус топика для этого канала и команду для него которая состоит из имени ESP и номера вывода к которому присоединено реле. У меня это 12 ножка для первого реле и 14 для второго. 
Теперь пишем значения которые будут отправлены подписчикам топика. При включённом реле это 0, а при выключенном 1. Сохраняем и по аналогии создаём канал для второго реле. Только с постфиксом 2 и gpio 14.
Мы видим, что у нас теперь созданы 2 канала. Теперь надо скопировать адрес топика MQTT брокера и вставить его в файле items.
Вот и всё. Видите как мало всего потребовалось чтобы в OPENHAB создать и вывести в интерфейс наше устройство. Заняло всего минут 5.
Это 1 FRAME в коде файла Items, а это второй.
Теперь понажимаем кнопки. Реле должно весело щёлкать. Всё должно работать.
Теперь давайте поменяем иконки. Это сделать совсем не сложно. В openhab есть набор иконок которые вы можете вставить в сой код простым копирование названия. Но вы можете вставлять и другие картинки. Для этого их надо скачать и положить в папку ICONS.
Изменим иконку на розетку. Видим, что она изменилась. В галереи иконок есть и такие которые содержат 2 состояния. С ними получается очень интересный эффект. В рабочем состоянии один вид, а в не рабочем другой.
Теперь поуправляем с планшета и с телефона. Кстати для телефонов есть отдельное приложение для OPENHAB. Про него я расскажу в следующих уроках.
Переключения происходят практически без задержек. Изменения на планшете и телефоне синхронны и тоже без отставаний.
Вывод на хаб панель я сегодня не делал. И так урок получился очень длинным. Это мой первый такой продолжительный урок. Если количество досмотров будет большое, то я продолжу снимать такие подробные уроки. Если нет, то ограничусь только коддингом и короткой информацией. Не хотелось бы снимать впустую.
На этом я заканчиваю урок. И как говорил, когда будет следующий зависит только от вас.
До встречи. 

Скетчи