Пора, пора собрать устройство! Схема выглядит так:
А на деле:
На фотографии в зеленой, напечатанной на принтере, коробочке, на мой взгляд, самый удобный вариант устройства для разработки. Он позволяет соединять модули двумя способами (и через основной и через альтернативный UART), а также питать их от разных источников и работать вообще независимо.
Добавили стабилизатор на 3,3 в и закрыли крышкой:
Кстати, возможна и такая комбинация:
Однако, на мой взгляд, настраивать железку под собственные нужды будет чрезвычайно неудобно. В общем, не советую, но… так немного экономнее и много проблеммнее.
Еще подход: берем что-то с 4 Мб — ESP-12e, например, или чистый NodeMCU. Так проще всего.
В любом случае, нужен модуль ESP-8266, с 4 мб памяти и подтяжкой к земле GPIO-15 не козой, а резистором на 10 ком.
Принципиальная разница есть лишь между ESP-1 и всеми остальными модулями. При работе с ESP-1 мы вынуждены связывать модули по единственно возможному UART, все остальные будут завязаны через альтернативный.
Если все что я здесь натворю вас устроит полностью и вы не будете допиливать устройство под себя, ESP-1 вполне сгодится, иначе с ним связываться не стоит — время вашей работы увеличится многократно.
Есть, правда, один нюанс. В момент старта ESP-8266 выдает в порт много отладочной информации, а MTRF-64, в это же время, на 12 секунд входит в режим прошивки. Как они будут взаимодействовать — не ведомо. Есть нехороший опыт. В общем, действуете на свой страх и риск.
И пока вы достаете моток проводов и пару сопротивлений на 10 ком, пока собираете все это в одну кучку, я расскажу о двух замечательных железках…
Начну, пожалуй, с SLF-1-300. Этот силовой блок отличается от всего прежнего тем, что:
- протокол по которому он общается — шифруется;
- небольшое допиливаение позволяет подключать к нему контактные выключатели;
- принимает команды типа «включиться на 5 умножить (до) 65535 секунд;
- к нему можно обращаться прямо по индивидуальному адресу (я покажу как!). Из этого следует, что к модулю приемо-передатчика (даже на один канал) можно потенциально подключить хучу блоков серии F и управлять каждым индивидуально. Я не берусь это утверждать доподлинно, поскольку этой хучи силовых блоков у меня нет, но сильно похоже что дело обстоит именно так.
- у блока можно спросить его текущее состояние;
- привязав единожды к пульту, очередные привязки и отвязки можно совершать ДИСТАНЦИОННО.
В нем есть все что можно пожелать, кроме плавного управления освещением. Ну а не бывает же без … да разве это недостаток?
Теперь MTRF-64. Наконец, это то что нужно! В прошлой заметке я говорил о двух багах — документации и выходе в режим обновления прошивки на 12 секунд после включения. По заверению разработчика, это не проблема:
Ок, значит остался ТОЛЬКООДИНБАГ — ужасная документация, сопровождающая этот модуль. Чисто теоретически, этот баг устраним, но это теоретически. Как будет — посмотрим. По-крайней мере, написание алгоритмов работы с модулем показалось мне, в определенной степени, квестом.
Сразу скажу, что предлагаемое вам устройство позволяет с MTRF-64 отправлять на силовые блоки не только заранее определенные команды, но и, так сказать, raw — прямо те 17, не семнадцать, а пятнадцать байт команды: шестнадцатый байт контрольной суммы устройство вычислит самостоятельно, установит его и замкнет все последним, стоповым байтом. Ну а затем — отправит команду на силовой блок.
Развлечение может оказаться интересным.
MTRF-64 — трехвольтовый! Дорогие ардуинопоклонники, которые без страха подают 5 вольт сигнала на ESP-8266, здесь точно не прокатит. Модуль в основе своей имеет микроконтроллер STM-32, который абсолютно точно не выдержит пятивольтовых издевательств.
MTRF-64 работает со всем, что было создано, забыто или забито Ноотехникой — со старыми и новыми протоколами. Это здорово!
В нашем устройстве, модуль будет:
- включать/выключать нагрузку старого типа;
- плавно управлять освещением;
- включать/выключать нагрузку нового типа F;
- опрашивать состояние нагрузки типа F;
- снифить команды, передаваемые пультами старых типов;
- получать информацию от датчиков.
Модуль не будет управлять цветной лентой — у меня нет таких устройств.
Модуль будет работать через ESP-8266 по протоколу MQTT, а не подключаться, например, к Raspberry Pi.
Полагаю, все кто занимается умным домом давно освоили какую-нибудь систему, коих множество (Мажордомо, OpenHab, etc.), и, любая из демократичных, может работать с этим протоколом. Проверено.
Вот, вкратце, что следует знать для начала.
Спаяли? Тогда вспоминаем, как заливать прошивки в NodeMCU. (Прочитайте все три заметки на том сайте.)
Освежили память — заказываем прошивку в такой комбинации:
А заливать будем ту из двух, что имеет в названии «float».