Приемник и передатчик 433 МГц на основе esp8266 для Home Assistant и других систем

04 ноября 2018, 10:11

Предисловие

Жалко мне было в свое время тратиться на Broadlink со встроенной управляло 433 МГц устройствами, так что купил мини версию. А тут решил озаботиться управлением ворот на даче. По факту у меня ничего не вышло с воротами, но тут полностью моя вина и невнимательность, для ваших хотелок решение скорее всего подойдет. У него есть один очевидный минус - нет возможности сканировать/передавать динамические коды (как раз такие для управления ворот и используются). Так же нам понадобится настроенный MQTT сервер на нашей малине. Ну что ж приступим!

Таримся железом

Для реализации проекта нам понадобятся три железки:

  1. Плата на ESP8266, я использую клон Wemos d1 mini, купить можно тут
  2. Плата приёмника на 433 МГц SRX882, купить можно тут
  3. Плата передатчика на 433 МГц STX882, купить можно тут

Последние два пункта обычно идут комплектом, так что ссылки дал одинаковые. Плату на esp8266 в теории можно брать любую, на сайте проекта есть несколько вариантов использования и подключения.

Готовим железо

Открываем вики проекта по ссылке выше и находим свою плату, для весома подошла вот эта схема. Далее вооружаемся проводами и паяльником/макетной платой и собираем конструктор по схеме. Учтите, что с большинством плат 433 не будет в комплекте ножек, это может в некотором образе затруднить сборку. Не забываем припаять антенны к платам, если они не запаяны по умолчанию, у меня так и было. В результате должно получиться что-то вроде этого поделия:

По возможности прозвоните все контакты подключенные к ESP и платам приемника и передатчика, что бы не было недоподключенных разъемов.

Готовим прошивку

Тут у вас есть два пути - скачать с гита исходники прошивки, поправить там настройки под свою плату и вайфай сеть с MQTT, собрать прошивку и залить в плату, или же можно скачать и залить в плату готовый бинарник. Я выбрал второй вариант как более простой, и у меня он и заработал, с вероятностью 99% у вас он взлетит так же. Качаем тут прошивку (файл ESP8266_OpenMQTTGateway.ino.bin.zip), распаковываем её и заливаем на ESP. Я использую утилиту esptool. Как это делается:

  1. Подключаем наше поделие к компьютеру по USB кабелю
  2. Открываем терминал
  3. Вводим следующие команды:

esptool.py erase_flash

Этак команда очистит память от прошлой прошивки и удалит ее настройки которые могут конфликтовать с новыми. Вывод должен выглядеть примерно вот так:

esptool.py v2.5.1-dev
Found 6 serial ports
Serial port /dev/cu.wchusbserial1430
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
MAC: 84:f3:eb:73:d2:57
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...
Chip erase completed successfully in 7.6s
Hard resetting via RTS pin...

После вводим вот эту команду для загрузки в ESP новой прошивки:

esptool.py --port /dev/tty.wchusbserial1450 write_flash -fs 4MB -fm dout 0x0 Downloads/OpenMQTTGateway.ino.bin

Разберем параметры

  • --port /dev/tty.wchusbserial1450 тут мы указываем путь до подключенной ESP
  • write_flash этот параметр говорит о том, что мы начинаем процедуру записи прошивки
  • -fs 4MB тут мы указываем размер внутренней памяти ESP, в случае с wemos это 4 мбайта
  • -fm dout 0x0 а сдесь говорим адрес в памяти, с которого надо заливать прошивку
  • Downloads/OpenMQTTGateway.ino.bin ну и наконец путь к файлу прошивки

Вывод по команде примерно такой:

esptool.py v2.5.1-dev
Serial port /dev/tty.wchusbserial1450
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
MAC: 84:f3:eb:73:d2:57
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Flash params set to 0x0340
Compressed 416848 bytes to 294159...
Wrote 416848 bytes (294159 compressed) at 0x00000000 in 26.3 seconds (effective 126.7 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

Настраиваем esp8266

После того, как все успешно прошилось, подключаем ESP к источнику питания и идем в настройки WiFi на телефоне и ищем там появившуюся сеть OpenMQTTGateway, подключаемся к ней с паролем "your_password". Этот и следующий шаг необходимо проделывать, если вы заливали готовую прошивку без своих настроек. После подключения у вас на телефоне вылезет окошко с настройками прошивки:

Выбираем первый пункт Configure WiFi

Выбираем из списка свою WiFi сеть и в четырех нижних полях заполняем данные своего MQTT сервера

После этого ждем пару минут и проверяем, что все настроено верно. Я использую MQTT сервер Mosquitto, в моем случае команда проверки выглядит так: подписываемся на все топики и смотрим, что появились определенные. Делаем это так:

sudo mosquitto_sub -t +/# -v -u имя_для_авторизации -P пароль_для_авторизации

Если видим в выводе строчки:

home/OpenMQTTGateway/LWT Online
home/OpenMQTTGateway/version 0.8

Значит все настроено верно. Теперь проверим, что мы правильно собрали нашу схему на практике. Пишем в терминале подключенном к нашей малине еще одну команду, для удобства лучше всего открыть отдельное окно:

mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTto433 -m 1315156 -u имя_для_авторизации -P пароль_для_авторизации

И в списке топиков, к которому мы подключились пунктом выше должны увидеть следующие строчки:

home/OpenMQTTGateway/commands/MQTTto433 1312095
home/OpenMQTTGateway/433toMQTT 1312095

Это значит, что мы отправили команду 1312095 через передатчик, и наш приемник её увидел и отобразил в логе. Значит спаяли/собрали мы тоже все верно.

Интеграция в HA и другие системы

После того как у нас есть рабочая плата, не закрывая окно с подписками на топики по этой команде:

sudo mosquitto_sub -t +/# -v -u имя_для_авторизации -P пароль_для_авторизации

можно приступать к сканированию кодов с необходимых устройств. К сожалению у меня нет в обиходе подобных девайсов кроме пульта от гаражных ворот, и пробежавшись по магазинам дешевых вариантов того, на чем можно проверить я так же не нашел, поэтому данную часть на практике вам продемонстрировать не могу, но не вижу причин, почему у вас могло бы не получиться. После того как нужные коды получены, можно их куда-нибудь выписать для удобства и приступить к настройке HA. Сделать это можно либо по официальной документации HA (тут можно почитать пример для света), либо в продолжающей мой цикл статье по MQTT. Жду предложений и пожеланий!


Все новости мира умных домов - t.me/SprutAI_News

Остались вопросы? Мы в Telegram - t.me/soprut

  1. Никита Герасимов  (Rapidshe)
    Никита Герасимов (Rapidshe) 8 месяцев назад

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

    • Александр Жабунин (OXOTH1K)
      Александр Жабунин (OXOTH1K) 8 месяцев назад

      Спасибо, гляну. Но его мало считать, еще и передать надо. Есть альтернативная прошивка RFlink, она вроде как умеет считывать динамику, но у меня так же была борода.

  2. Карен  Закарян (Karen)
    Карен Закарян (Karen) 8 месяцев назад
    2000x2000x_image.jpg?1541328870

    с какой антенной лучше брать?

  3. Григорий Абрамов (grishmanCH)
    Григорий Абрамов (grishmanCH) 8 месяцев назад

    Спасибо, статья отличная! А как пробросить такой девайс в колобок? 

К списку статей

Похожие статьи

04 сентября 2018, 12:14
Интеграция RGB ленты на ESP8266 с прошивкой tasmota в систему HomeBridge (HomeKit)
02 ноября 2018, 12:14
Кнопка звонка с уведомлениями в HomeKit
15 октября 2018, 09:05
Прошивка для Sonoff c нативным HomeKit
15 ноября 2018, 09:42
Способы автоматизации механических ворот
27 октября 2018, 12:20
Нативный Термостат для котла на ESP8266 с поддержкой Apple HomeKit
01 октября 2018, 07:43
Нативный HomeKit на ESP8266
15 июня 2018, 12:13
Охранная система в гараж на ESP8266 с интеграцией в Apple HomeKit
02 октября 2018, 18:41
Установка SDK для компиляции прошивок под HomeKit
22 октября 2018, 19:00
Сборка DIY Лабораторного блока питания из китайских модулей
25 ноября 2018, 18:23
Умное зеркало добавляем модули Airplay и Google Calendar