Статья

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

Предисловие

Жалко мне было в свое время тратиться на 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. Жду предложений и пожеланий!


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

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

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

тут наверное уже код граббер надо мастерить...



2000x2000x_image.jpg?1541328870



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

какой цвет более симпатичен, ту и бери ))

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

В приемнике берем вывод дата, в данной модели SRX882 он расположен не там

Вернуться назад

Устройства


Espressif Systems

ESP8266 NodeMcu v3

(16 отзывов)

Broadlink

BroadLink RM Pro

(5 отзывов)

Вернуться назад