krepton85

<<< Назад

Шлюз MQTT - ИК и RF315МГц на ESP8266

Этот шлюз позволит управлять приборами по ИК каналу, а так же по радио-каналу с частотой 315/433 Мгц. Так же с помощью его вы сможете скопировать оригинальные пульты ИК и Радио.

Изначально шлюз делался для приложения на Андроид :https://play.google.com/store/apps/details?id=com....
и имел законченное устройство, только для управления устройствами и не имел функции копирования кодов кнопок, в скетчь добавил только 4 пульта.

Далее нашел нужное дополнение для majordomo: https://connect.smartliving.ru/addons/category6/10... Огромное спасибо автору ahelper данного виджета, без его ни чего бы не вышло. :)
И так приступим к сборке и настройке в majordomo:

  1. Собираем все по этой схемме: https://easyeda.com/krepton85/esp_mqtt-ir
  2. Скетчь для Ардуино IDE скачиваем от сюда: https://yadi.sk/d/76QziLLh5-dxRQ
  3. Как настроить Arduino ide для использования с Esp8266 читаем здесь: https://esp8266.ru/arduino-ide-esp8266/#func
  4. После того как прошили скетчь в Esp8266, перезагружаем ESP8266 и сканируем wi-fi сети со смартфона или планшета, находим там сеть с названием Wi-Fi_IR_Control, подключаемся к ней используя пароль из скетча, который записан в переменной: const char passap = . Далее переходим в любом браузере по адресу http://192.168.4.1 и заполняем web - форму, в которую прописываем название вашей Wi-fi сети и пораметры для подключения к MQTT брокеру.
    192.168.4.1
  5. теперь если у вас есть допалнение MQTT в majordomo создаем объект в классе esp8266:
    объект mqtt
    6.создаем 4 свойства для объекта MQTT-IR_REMOTE:
    • MQTT-IR_REMOTE.приемник_ик
    • MQTT-IR_REMOTE.передатчик_ик
    • MQTT-IR_REMOTE.RF_receiver315Mhz
    • MQTT-IR_REMOTE.RF_transmitter315Mhz
      1. Связываем созданные 4 свойства с топиками MQTT:
        связываем свойства с топиками
      2. устанавливаем замечательное дополнение виджет: https://connect.smartliving.ru/addons/category6/10...
        настраиваем его. Добовляем 1-о свойства к объекту RemoteTCL1.switch_mod (выбор режима пульта рабочий/обучение) , а так же однаименные методам свойства, они будут хранить коды клавишь ИК пульта. См. скриншот ниже как должно получится:
        свойства RemoteTCL1
        Так делаем для всех кнопок(метадов) !!!
      3. Настраиваем методы для каждой кнопки, прописываем следующий код:
        // если режим управление выбран if (getGlobal('RemoteTCL1'.'.'.'switch_mod') == 0) { setGlobal('MQTT-IR_REMOTE'.'.'.'передатчик_ик', getGlobal('RemoteTCL1'.'.'.'Chanel_Down')); } // если режим обучения выбран if (getGlobal('RemoteTCL1'.'.'.'switch_mod') == 1) { setGlobal('RemoteTCL1'.'.'.'Chanel_Down', getGlobal('MQTT-IR_REMOTE'.'.'.'приемник_ик')); }
        Это пример для кнопки/метода Chanel_Down, точно так же поступаем со всеми методами, не забывая менять в коде название свойства (а его название точно такое же как у метода).
        методы кнопки
  1. Настраиваем меню :
    скачиваем элементы меню по ссылке: https://yadi.sk/d/RjRCpjqxIcFWNg Далее импортируем в любое удобное место вашего меню:
    У меня получилось вот так:
    меню
    Все темперь у вас тоже есть обучаемый ИК пульт.
    Обучается давольно просто. Переключаем в меню на режим "Обучение", сейчас в этом режиме направляя оригинальный пульт на ИК фотоприемник шлюза и нажимая нужную кнопку можно наблюдать в строке ввода "принятый код кнопки:" соответственно код этой кнопки, если вам понравился этот код можно нажать на вертуальном пульте нужную кнопку и этот код будет сохранен в свойствах для этой кнопки. Переключив в режим "Управление" можно пользоватся виртуальным пультом в majordomo.

        Все нужные библиатеки: 
        https://github.com/Imroy/pubsubclient
        https://github.com/markszabo/IRremoteESP8266
        https://github.com/sui77/rc-switch/releases/tag/2.6.2

Обсуждение (55) (11)

Минск, Беларусь