Архив по меткам :

QR-code

ССЫЛКИ

Свежие комментарии

Ноя 09

Сенсорный выключатель на ESP8266. часть 2. Подробно.

IMG_20161022_214350В прошлой статье я описал сенсорный выключатель, в качестве сенсоров используем 4 готовых модуля TTP223, ссылки на оборудование в статье Сенсорный выключатель на ESP8266. В этой статье опишем подробно как сделать выключатель начиная от прошивки модуля и настройке в различном применении. Эта статья является более подробной и дополненной к статье Умный дом. Клацкаем светом.

Мозгом выключателя является модуль ESP8266, пока я использовал прошивку Wifi-IoT, для реализации функций кнопок используется платные функции прошивки.

1. Прошивка модулей ESP8266

Если Вы знаете как прошивать модули ESP8266 то этот пункт можно пропустить, тут будет описан вариант прошивки ESP8266 в Linux.

Для прошивки надо использовать USB-UART адаптер с возможность установки уровня 3.3В, я прошиваю вот таким. Кроме RX и TX в нем разведены сигналы RTS (сброс) и DTR (включение режима прошивки).

Схема подключения модуля ESP8266

vydelenie_172Если Вы прошиваете модуль который распаян на вот такой плате

vydelenie_174

то подтягивать CH_PD и GPIO15 не надо, они уже подтянуты, иначе для работы необходимо подтянуть, для прошивки модуля не распаянного на плате я использую самодельный адаптер сделанный из старого AGP разъема материнской платы. Так же можно не подтягивать Reset и GPIO0 а просто воткнуть их в соответствующие разъемы USB-UART адаптера.

Модуль надо питать от отдельного источника питания поскольку ток, выдаваемый USB-UART адаптера маленький. При питании от отдельного источника питания необходимо соединить GND источника питания с GND USB-UART переходника или GND источника питания с GND ESP8266.

Мною подготовлен архив с уже готовой программой и прошивками для модулей ESP8266, качаем архив и распаковываем в домашнюю папку.

В папке bin лежат разнообразные прошивки, каждая прошивка в своей папке

esplink  -прошивка EspLink, интересный проект, позволяет работать wi-fi шлюзом для ардуино.

HS  — прошивки Wifi-IoT, с некоторым набором функций

nodemcu — NodeMCU, позволяет загружать и исполнять lua скрипты с помощью лежащего в архиве Esplorer (в сборке старая версия)

Smart.js — позволяет выполнять ява скрипты.

Втыкаем USB-UART адаптер и проверим на каком порту он определился, для этого открываем консоль (Эмулятор терминала, lxterminal и т.п.)

У нас адаптер на порту /dev/ttyUSB0, у меня практически никогда не определялся адаптер на/dev/ttyUSB1, если у Вас адаптер на другом порту, то надо менять порт в скрипте.

Для прошивки нам нужен исполняемый файл prog, запускается он из консоли, для запуска откройте консоль, войдите в режим суперпользователя командой

перейдите в папку esp8266 и выполните команду

запуститься скрипт для прошивки.

тут всё просто, выбираем что шить и шьем, я прошивал esp-link

2. Подготавливаем прошивку Wifi-IoT.

Заходим на сайт Wifi-IoT и регистрируемся. После входа появиться меню ESP8266

vydelenie_169

нажимаем на меню ESP8266 и увидим конструктор прошивки. Для реализации кнопок нам надо включить в прошивку «GPIO KEY» и «GPIO», для отправки нажатия кнопки в MajorDoMo включаем в прошивку «MajorDoMo и другие», остальные функции по желанию (ниже будут рассмотрены разные реализации выключателей и по этому могут потребоваться и другие функции, рекомендую сначала определиться с реализацией прочитав в инструкции ниже какие функции прошивки включать).

После того как Вы установили нужные функции нажмите кнопку

vydelenie_170

после компиляции будут доступны для скачивания файлы

vydelenie_171

Если вы прошиваете модуль в первый раз, то без разницы одним файлом или двумя шить, если Вы изменили набор функций, то чтобы не потерялись настройки, то надо шить двухфайловую прошивку. Скачиваем прошивку, если Вы пользуетесь моим скриптом, то прошивку надо ложить в папку с прошивками wifi-IoT и чтобы имена файлов соответствовали:

esp8266all.bin — однофайловая прошивка для режимов с ОТА и без ОТА (папки 1 Mb и 512кБ соответственно)

ну и многофайловые прошивки названия файлов в папках соответствуют генерируемым конструктором.

Прошиваем любым известным способом, если у Вас Linux, то можно прошить описанным мною выше.

3. Настройка прошивки Wifi-IoT

После прошивки надо зайти на модуль и подключиться к Вашей wifi сети, для этого надо включить режим SafeMode, включается он замыканием пинов RX и TX, замкните и перезагрузите модуль, модуль будет работать в режиме точки доступа, подключаемся к этой точке доступа и заходим в браузере по адресу 192.168.4.1

vydelenie_176

Заходим в меню Main и устанавливаем параметры точки доступа Вашего роутера.

vydelenie_178

Размыкаем контакты RX и TX и перезагружаем модуль, теперь он подключился к Вашему роутеру, у меня роутер с прошивкой OpenWRT, чтобы посмотреть какой выдан IP-адрес заходим на свой роутер и ищем раздел Аренды DHCP, имя хоста начинается с ESP

vydelenie_179

я рекомендую прописать чтобы роутер выдавал Вашему модулю постоянный айпи адрес, для этого например в роутерах с прошивкой OpenWRT меню Сеть — DHCP и DNS раздел Постоянные аренды.

Заходим в браузер по адресу, выданному роутером.

Для открытия некоторых возможностей необходимо приобрести лицензии, для этого заходим на сайт  Wifi-IoT в меню Лицензии

vydelenie_180

Нажимаем на кнопку купить лицензии

vydelenie_181

Оплачиваем любым предложенным способом, я платил банковской картой, оплата происходит так же как в любом интернет магазине.

После оплаты у Вас будет показано сколько свободных лицензий.

vydelenie_183

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

vydelenie_185

нажимаем на ссылку Pro

vydelenie_184

Далее можно сразу нажать ссылку Get Key и перейти на страницу регистрации модуля или скопировать код и вставить в соответствующее поле меню Сгенерировать ключ

vydelenie_182после этого у Вас будет сгенерирован ключ который надо прописать в соответствующее поле в меню модуля.

Главная страница с Pro прошивкой выглядит так:

vydelenie_186

4. Настройки выключателя.

Мы рассмотрим несколько вариантов реализации выключателя.

1. Сенсорные (или механические) кнопки с отправкой на MajorDoMo

2.Сенсорные (или механические) кнопки с блоком реле в самом выключателе.

3. Сенсорные (или механические) кнопки с отправкой на другой ESP8266 с блоком реле.

4. Механический выключатель с встроенным пультом 315/433 МГц с отправкой на MajorDoMo или ESP8266 c блоком реле.

4.1. Сенсорные (или механические) кнопки с отправкой на MajorDoMo.

В качестве кнопок можно использовать любое устройство, которое позволяет подать напряжение на GPIO ESP8266, например простой выключатель без фиксации, или сенсор TTP223.

Если у Вас модуль ESP8266 не распаян на плате, то необходимо позаботиться о подтяжке, GPIO15 на GND, СH_PD (EN) на VCC через резисторы 10КОм, вот как сделано у меня, модуль будет приклеиваться на двухсторонний скотч

esp12_1

У меня использован SMD резистор 1206, но паять его неудобно, рекомендую использовать резисторы поменьше, просто у меня меньше не нашлось под рукой.

Модуль встраиваем в стандартный выключатель или можно встроить в панель Livolo как это сделано у меня, благо Livolo продает отдельно панели своих выключателей, вот уже рабочий выключатель у которого блок питания в розетке и под обоями идут 2 провода питания.

IMG_20161022_214421

Вот так происходит модернизация панелей Livolo

img_20161109_121025

img_20161109_121038

Удаляем перегородку и сверлим од крепление саморезов

img_20161109_121800

накладку приклеиваем обратно, только перевернув, я клеил на термоклей пистолетом

img_20161109_121941

вот так выглядит в одиночном выключателе.

img_20161109_122029

Но можно самому сделать такие панели, надо лишь вырезать стекло 4 мм, обработать кромки и вырезать самоклеящуюся пленку с рисунком кнопки, пока не до конца придумал какой он будет, в разработке.

схема проста, подключаем сенсоры на GPIO модуля, подаем питание.

ВНИМАНИЕ!!! На схеме не указаны подтягивающие резисторы 10 КОм между GPIO кнопок (сенсоров) и GND, если сенсоры то SMD резистор можно припаять между I/O и GND сенсора, если выключатель, то между соответствующим GPIO и GND 

vydelenie_189

Для подключения выключателя без фиксации вместо TТP223 выключатель подключаем по следующей схеме.

vydelenie_192

Нам надо настроить на ESP кнопки, заходим во вкладку GPIO и настраиваем как показано на рисунке (доступно только в версии Pro).

у меня заданы 4 вывода, к контактам 4,5,13,14 ESP, не забываем указать IP-адрес сервера МД в настройках модуля ESP во вкладке Servers

vydelenie_193

на этом настройки модуля закончены.

настраиваем привязку кнопок к выключателям в MajorDoMo

связанные объекты это наши объекты в switch в relays ну и задаем связанные свойства и метод в соответствии с рисунком выше.

Описание методов esp_switch описаны в разделе Подготовка выключателей в MajorDoMo.

На этом настройка закончена.

4.2. Сенсорные (или механические) кнопки с блоком реле в самом выключателе.

Настройка такая же как в пункте 4.1 кроме настроек в MajorDoMo.

К ESP8266 на выходы GPIO надо подключить реле, подходит только твердотельное реле, поскольку логическая единица на нем от 2,5 вольт до 5 вольт, а модуль у нас питается от 3.3 В и выводы не толерантны к 5 В.

vydelenie_191

Настроим модуль задав управление GPIO

vydelenie_196

В данном случае реле подключены на выходы 1,3,13,14

На этом настройка закончена, для связи с MajorDoMo можно прописать соответствующие связи в настройках модулей ESP8266.

4.3. Сенсорные (или механические) кнопки с отправкой на другой ESP8266 с блоком реле.

Для отправки команды на включение реле на другом модуле ESP8266 надо в конструкторе прошивки включить Virtual GPIO и соответственно установить какое количество модулей будет использовано, настройка выключателя точно такая же как в пунктах 4.1 и 4.2, только прописываем айпи адреса наших удаленных модулей ESP8266 с блоками реле во вкладке VGPIO

vydelenie_197

ну и соответственно вместо 1,3,12,16 в поле GPIO For Key ставим GPIO удаленного модуля из соответствующего диапазона, у нас подключен один модуль с IP-адресом 192.168.1.25 и соответственно номера GPIO в настройках выключателя будут в диапазоне 20-39, то есть 21,23,32 и 36 соответственно.

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

vydelenie_198

схема подключения удаленного ESP8266 c реле следующая.

vydelenie_194

схема выключателя как в пункте 4.1

Так же можно привязать это к системе MajorDoMo и использовать несколько выключателей для включения одного реле.

4.4. Механический выключатель с встроенным пультом 315/433 МГц с отправкой на MajorDoMo или ESP8266 c блоком реле. 

Как связать выключатель 315/433 МГц c MajorDoMo описано в разделе Включаем свет с пультов 315 МГц

Нам осталось отправлять команду с пульта на ESP8266 c блоком реле и управлять реле без MajorDoMo.

Для работы в конструкторе прошивок должна быть включена функция RCswitch приёмник 433/315

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

Код с пульта управления мы будем посылать на ESP8266 с прошивкой wifi-iot, в качестве приемника используется приемник на 315 МГц, в комплекте идет и передатчик, но нам нужен только приемник MX-05V.

и пульты на 315 МГц

подключаем DATA приемника к ESP8266 на любой свободный вывод GPIO, я использовал GPIO2, питание приемника к 3.3 вольтам.

включаем на GPIO2 модуль

vydelenie_200

коды можно посмотреть на вкладке /debug модуля нажимая на кнопки пульта.

записываем коды кнопок пульта и переходим опять во меню RC recv

vydelenie_200

и устанавливаем KeyOptions соответствие GPIO модуля ESP8266 коду кнопки, на этом настройка закончена.

Поделиться в соц. сетях

Опубликовать в Facebook
Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс
Синдикация

Понравилась статья? Подпишитесь на RSS .

комментарии отключены, по вопросам в почту или вконтакте http://vk.com/kusheev