После публикации про интернет вещей, нам пришло письмо с идеей применения модуля ESP-8266:
«Есть у компании Мастер-Кит очень интересная вещь – моторизированный шаровый кран. Данная модификация питается от напряжения от 3 до 6 вольт и замечательно открывает и закрывает подачу воды в бытовых трубопроводах.
![](https://habrastorage.org/r/w780q1/files/f8f/b8d/6b4/f8fb8d6b43bb47cd9c9fe6eebe6f3bc4.jpg)
У меня дома стоит кран без моторчика и, к сожалению, расположен в жутко неудобном месте. Каждый раз, когда приходится перекрывать воду, приходится исполнять пластический этюд «Человек-змея». Поэтому и решил установить один раз моторизованный кран и забыть про гимнастику. Но тянуть кучу проводов для управления краном в недавно отремонтированной ванной комнате не хотелось, поэтому стал думать о беспроводном решении.
Внимание привлек модуль ESP-8266,
![](https://habrastorage.org/r/w780q1/files/f1f/478/91d/f1f47891d2e64e63835f8a46a2da9f11.jpg)
на основе которого у Мастер-Кит уже есть двухканальное Wi-Fi реле MP3500.
Но мне не нужно управлять большими токами и напряжениями, а плату управления хотелось упрятать в корпус моторизированного крана, поэтому захотелось минимизировать размеры устройства. Для отработки решил использовать макетную плату и выводные компоненты.
![](https://habrastorage.org/files/295/f86/070/295f860708b24ad98b8bffcc5913f082.JPG)
![](https://habrastorage.org/files/317/a63/937/317a639372e247ae924410b110622db6.JPG)
Модуль ESP8266 подключил шлейфом к плате, для программирования модуля использовал ставший уже стандартным переходник USB-UART на микросхеме PL2303. Драйверы для переходника без проблем нашлись в интернете.
А вот для программирования ESP я решил использовать прошивку nodeMCU, которая позволяет управлять модулем, используя не набор AT-команд, а скриптовый язык высокого уровня LUA.
Для общения с краном по Wi-Fi было решено написать программу для смартфона на Андроид с помощью проекта Массачусетского технологического института Appinventor
.
Итак, по порядку.
У моторизованного крана есть три вывода: один общий и два управляющих, подавая на которые положительное напряжения от 3 до 6 вольт можно открыть или закрыть кран. Стало быть, двух выводов GPIO (входов/выходов общего назначения ) модуля ESP вполне достаточно для управления. Схема «эксперимента» выглядит так:
![](https://habrastorage.org/r/w780q1/files/8d8/74d/ef5/8d874def50174f0d8fb978d172c95d90.jpg)
Напряжение питания 3,3 В берется с преобразователя USB-UART, выводы RXD и TXD преобразователя подключены соответственно к выводам TXD и RXD модуля ESP для программирования. Резисторы в соответствии с рекомендациями производителя модуля ESP подтягивают выводы к напряжению питания, транзисторы служат для усиления тока управления краном, который достигает 60 мА во время открывания или закрывания. В другое время кран ток не потребляет.
Модуль ESP может работать в двух режимах – как точка доступа, когда смартфон подключается к нему напрямую, и в режиме инфраструктуры, подключаясь к существующему роутеру, который есть теперь почти в каждой квартире. Таким образом, во втором режиме смартфон подключается уже к роутеру. Режим модуля может быть задан в процессе настройки, которая тоже происходит с помощью смартфона.
На модуле поднят простенький web-сервер, который ждет поступления команды, сообщает об успешной приеме, обрабатывает ее, и исполняет, переключая соответствующий GPIO в 0 или 1 на время, необходимое для поворота крана.
Как видно, при этом используются только внутренние возможности модуля ESP, и применять какие-либо дополнительные микроконтроллерные управляющие схемы не требуется. Кстати сказать, модули ESP существуют и с большим количеством GPIO, работающих в разных режимах, что может существенно расширить область его применения.
Прошивка модуля заливается с помощью утилиты ESPlorer – очень удобной IDE для модулей ESP, которая позволяет работать с модулем на LUA, Python’e и с помощью AT-команд – все в одном флаконе!
Программа для смартфона служит для подачи управляющих команд и дистанционной настройки режимов Wi-Fi.
![](https://habrastorage.org/files/846/364/cf8/846364cf87f94607887202580a555fea.JPG)
![](https://habrastorage.org/files/b13/b42/477/b13b42477ba9490b83f0f634e8c334e9.JPG)
Как уже говорилось, она создана с помощью проекта Appinventor. В этом проекте программирование происходит в визуальной среде, не требующей специальных знаний в области программирования android-устройств.
Конечно, программа получается несколько избыточной — объем получающегося кода куда больше, чем при традиционном программировании, но это окупается простотой и скоростью разработки. Среду нетрудно освоить, и можно самому писать вполне удобоваримые приложения. К тому же, память современных смартфонов не накладывает существенных ограничений на размер загружаемых в них программ.
Ниже приведен скриншот программы управления модулем со смартфона (все картинки можно открыть в новом окне в оригинальном размере).
![](https://habrastorage.org/r/w780q1/files/90e/bb3/cb3/90ebb3cb31e24d91b0c2a36d204c0bf1.jpg)
Здесь есть избыточные элементы, появившиеся в процессе освоения обмена данными, но основу составляют обработчики событий нажатий кнопок Button3 – поменять на 5 секунд состояние вывода GPIO00 для открывания крана, и Button4 – соответственно вывода GPIO02 для закрывания. Например, при нажатии на Button3 на сервер, поднятый на модуле, посылается вызов GET http://ip_адрес/mode=cmd&sw0, вывод GPIO00 меняет свое состояние на 0; таймер Clock2 включается на 4000 мс, а по прошествии этого времени срабатывает событие таймера, посылающее ту же команду, которая меняет состояние вывода GPIO00 на 1. Кран открыт.
![](https://habrastorage.org/r/w780q1/files/72a/3fa/e53/72a3fae53483466fa18168b23c1c9418.jpg)
На следующем скриншоте приведена часть программы, которая отвечает за установку режима и параметров модуля ESP. Здесь, кроме режима Wi-Fi, можно поменять IP адрес, порт, маску сети, шлюз, SSID беспроводной сети и пароль. После пересылки параметров на модуль он автоматически перезагружается для работы с новыми параметрами.
![](https://habrastorage.org/r/w780q1/files/444/74e/ac6/44474eac6adc44edb78442faca78d6ea.jpg)
Прошивка модуля, написанная на LUA, достаточно стандартным способом, описанным в документации, организует сервер, принимающий и обрабатывающий поступающие команды.
Итог: связка ESP8266 – водопроводный кран работает. Настоящий интернет вещей получился. Буду делать плату на SMD элементах, собирать в готовую конструкцию и устанавливать. Закончу – отпишусь!»
Видео тестирования на работоспособность:
«Есть у компании Мастер-Кит очень интересная вещь – моторизированный шаровый кран. Данная модификация питается от напряжения от 3 до 6 вольт и замечательно открывает и закрывает подачу воды в бытовых трубопроводах.
![](https://habrastorage.org/files/f8f/b8d/6b4/f8fb8d6b43bb47cd9c9fe6eebe6f3bc4.jpg)
У меня дома стоит кран без моторчика и, к сожалению, расположен в жутко неудобном месте. Каждый раз, когда приходится перекрывать воду, приходится исполнять пластический этюд «Человек-змея». Поэтому и решил установить один раз моторизованный кран и забыть про гимнастику. Но тянуть кучу проводов для управления краном в недавно отремонтированной ванной комнате не хотелось, поэтому стал думать о беспроводном решении.
Внимание привлек модуль ESP-8266,
![](https://habrastorage.org/files/f1f/478/91d/f1f47891d2e64e63835f8a46a2da9f11.jpg)
на основе которого у Мастер-Кит уже есть двухканальное Wi-Fi реле MP3500.
Но мне не нужно управлять большими токами и напряжениями, а плату управления хотелось упрятать в корпус моторизированного крана, поэтому захотелось минимизировать размеры устройства. Для отработки решил использовать макетную плату и выводные компоненты.
Модуль ESP8266 подключил шлейфом к плате, для программирования модуля использовал ставший уже стандартным переходник USB-UART на микросхеме PL2303. Драйверы для переходника без проблем нашлись в интернете.
А вот для программирования ESP я решил использовать прошивку nodeMCU, которая позволяет управлять модулем, используя не набор AT-команд, а скриптовый язык высокого уровня LUA.
Для общения с краном по Wi-Fi было решено написать программу для смартфона на Андроид с помощью проекта Массачусетского технологического института Appinventor
.
Итак, по порядку.
У моторизованного крана есть три вывода: один общий и два управляющих, подавая на которые положительное напряжения от 3 до 6 вольт можно открыть или закрыть кран. Стало быть, двух выводов GPIO (входов/выходов общего назначения ) модуля ESP вполне достаточно для управления. Схема «эксперимента» выглядит так:
![](https://habrastorage.org/files/8d8/74d/ef5/8d874def50174f0d8fb978d172c95d90.jpg)
Напряжение питания 3,3 В берется с преобразователя USB-UART, выводы RXD и TXD преобразователя подключены соответственно к выводам TXD и RXD модуля ESP для программирования. Резисторы в соответствии с рекомендациями производителя модуля ESP подтягивают выводы к напряжению питания, транзисторы служат для усиления тока управления краном, который достигает 60 мА во время открывания или закрывания. В другое время кран ток не потребляет.
Модуль ESP может работать в двух режимах – как точка доступа, когда смартфон подключается к нему напрямую, и в режиме инфраструктуры, подключаясь к существующему роутеру, который есть теперь почти в каждой квартире. Таким образом, во втором режиме смартфон подключается уже к роутеру. Режим модуля может быть задан в процессе настройки, которая тоже происходит с помощью смартфона.
На модуле поднят простенький web-сервер, который ждет поступления команды, сообщает об успешной приеме, обрабатывает ее, и исполняет, переключая соответствующий GPIO в 0 или 1 на время, необходимое для поворота крана.
Как видно, при этом используются только внутренние возможности модуля ESP, и применять какие-либо дополнительные микроконтроллерные управляющие схемы не требуется. Кстати сказать, модули ESP существуют и с большим количеством GPIO, работающих в разных режимах, что может существенно расширить область его применения.
Прошивка модуля заливается с помощью утилиты ESPlorer – очень удобной IDE для модулей ESP, которая позволяет работать с модулем на LUA, Python’e и с помощью AT-команд – все в одном флаконе!
Программа для смартфона служит для подачи управляющих команд и дистанционной настройки режимов Wi-Fi.
Как уже говорилось, она создана с помощью проекта Appinventor. В этом проекте программирование происходит в визуальной среде, не требующей специальных знаний в области программирования android-устройств.
Конечно, программа получается несколько избыточной — объем получающегося кода куда больше, чем при традиционном программировании, но это окупается простотой и скоростью разработки. Среду нетрудно освоить, и можно самому писать вполне удобоваримые приложения. К тому же, память современных смартфонов не накладывает существенных ограничений на размер загружаемых в них программ.
Ниже приведен скриншот программы управления модулем со смартфона (все картинки можно открыть в новом окне в оригинальном размере).
![](https://habrastorage.org/files/90e/bb3/cb3/90ebb3cb31e24d91b0c2a36d204c0bf1.jpg)
Здесь есть избыточные элементы, появившиеся в процессе освоения обмена данными, но основу составляют обработчики событий нажатий кнопок Button3 – поменять на 5 секунд состояние вывода GPIO00 для открывания крана, и Button4 – соответственно вывода GPIO02 для закрывания. Например, при нажатии на Button3 на сервер, поднятый на модуле, посылается вызов GET http://ip_адрес/mode=cmd&sw0, вывод GPIO00 меняет свое состояние на 0; таймер Clock2 включается на 4000 мс, а по прошествии этого времени срабатывает событие таймера, посылающее ту же команду, которая меняет состояние вывода GPIO00 на 1. Кран открыт.
![](https://habrastorage.org/files/72a/3fa/e53/72a3fae53483466fa18168b23c1c9418.jpg)
На следующем скриншоте приведена часть программы, которая отвечает за установку режима и параметров модуля ESP. Здесь, кроме режима Wi-Fi, можно поменять IP адрес, порт, маску сети, шлюз, SSID беспроводной сети и пароль. После пересылки параметров на модуль он автоматически перезагружается для работы с новыми параметрами.
![](https://habrastorage.org/files/444/74e/ac6/44474eac6adc44edb78442faca78d6ea.jpg)
Прошивка модуля, написанная на LUA, достаточно стандартным способом, описанным в документации, организует сервер, принимающий и обрабатывающий поступающие команды.
Итог: связка ESP8266 – водопроводный кран работает. Настоящий интернет вещей получился. Буду делать плату на SMD элементах, собирать в готовую конструкцию и устанавливать. Закончу – отпишусь!»
Видео тестирования на работоспособность: