Аппаратная основа – китайский модуль для управления жалюзи/ролетами от LoraTap.
Мозг модуля – TYWE2S, основывающийся на ESP8285.
Прелесть данного модуля в том что он имеет полный и независимый контроль над релешками и портами ввода. Т.е. изменив прошивку можно превратить его в двухканальный выключатель света. Отсюда же вытекает опасность – если в коде допустить ошибку в логике управления релешками, то можно сжечь мотор жалюзи одновременно подав напряжение на оба канала. Поэтому будем аккуратны 😉
В официальном магазине модуль представлен в двух версиях: V1 и V2. Я заказал оба и после инспекции могу отметить следующую разницу: качество производства и пайки в V2 выше. Тем не менее, с точки зрения схемотехники и компонентов – обе версии идентичны. Основное различие – в прошивке. V2 поддерживает переключатели с фиксацией положения, а V1 возвратные. Учитывая эту разницу и нижеследующее – смысла в переплате за V2 я особо не вижу.
Оригинальная прошивка нас не интересует. Она работает через облако tuya. Во-первых это зависимость от доступа в интернет. Во-вторых возможные лаги. В-третьих доступ к управлению из своего софта затруднен (хоть энтузиасты и активно реверсят). Ну и в-четверых внутренний параноик не доверяет свой уют для доступа из наружи. Поэтому будем “ломать”. 🙂
Для прошивки необходим rs232 интерфейс с 3.3v. Я использовал FTDI.
Для подключения нам нужны 5 контактов.
TYWE2S | FTDI |
VCC | VCC |
GND | GND |
RX | TX |
TX | RX |
IO0 | GND |
Подключение тривиально. Но не забываем выставить 3.3v на FTDI модуле. Для загрузки модуля в режиме прошивки, необходимо при подаче питания замкнуть IO0 на землю.
В модуле используются следующие GPIO:
GPIO | Режим | Описание |
3 | out | LED (1 – off, 0 – on) |
4 | in | switch S1 (1 – released, 0 – pressed) |
5 | in | switch S2 (1 – released, 0 – pressed) |
12 | out | relay L1 (0 – open, 1 – close) |
13 | in | pairing button (1 – released, 0 – pressed) |
14 | out | relay L2 (0 – open, 1 – close) |
Подпаиваться весьма удобно. Во время разработки/тестирования я собрал следующий макет (во время подачи питания 220v, не забывайте отключать FTDI от комьютера! На фото он отключен.)
В Arduino Studio необходимо выставить следующие параметры:
Generic ESP8285 Module, CPU 80MHz, Crystal 26MHz, Flash Size 1MB
Шить будем два варианта: