Интернет Вещей (IoT) и водопровод

    После публикации про интернет вещей, нам пришло письмо с идеей применения модуля ESP-8266:

    «Есть у компании Мастер-Кит очень интересная вещь – моторизированный шаровый кран. Данная модификация питается от напряжения от 3 до 6 вольт и замечательно открывает и закрывает подачу воды в бытовых трубопроводах.



    У меня дома стоит кран без моторчика и, к сожалению, расположен в жутко неудобном месте. Каждый раз, когда приходится перекрывать воду, приходится исполнять пластический этюд «Человек-змея». Поэтому и решил установить один раз моторизованный кран и забыть про гимнастику. Но тянуть кучу проводов для управления краном в недавно отремонтированной ванной комнате не хотелось, поэтому стал думать о беспроводном решении.

    Внимание привлек модуль ESP-8266,



    на основе которого у Мастер-Кит уже есть двухканальное Wi-Fi реле MP3500.

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





    Модуль ESP8266 подключил шлейфом к плате, для программирования модуля использовал ставший уже стандартным переходник USB-UART на микросхеме PL2303. Драйверы для переходника без проблем нашлись в интернете.

    А вот для программирования ESP я решил использовать прошивку nodeMCU, которая позволяет управлять модулем, используя не набор AT-команд, а скриптовый язык высокого уровня LUA.

    Для общения с краном по Wi-Fi было решено написать программу для смартфона на Андроид с помощью проекта Массачусетского технологического института Appinventor
    .
    Итак, по порядку.

    У моторизованного крана есть три вывода: один общий и два управляющих, подавая на которые положительное напряжения от 3 до 6 вольт можно открыть или закрыть кран. Стало быть, двух выводов GPIO (входов/выходов общего назначения ) модуля ESP вполне достаточно для управления. Схема «эксперимента» выглядит так:



    Напряжение питания 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-устройств.

    Конечно, программа получается несколько избыточной — объем получающегося кода куда больше, чем при традиционном программировании, но это окупается простотой и скоростью разработки. Среду нетрудно освоить, и можно самому писать вполне удобоваримые приложения. К тому же, память современных смартфонов не накладывает существенных ограничений на размер загружаемых в них программ.

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



    Здесь есть избыточные элементы, появившиеся в процессе освоения обмена данными, но основу составляют обработчики событий нажатий кнопок Button3 – поменять на 5 секунд состояние вывода GPIO00 для открывания крана, и Button4 – соответственно вывода GPIO02 для закрывания. Например, при нажатии на Button3 на сервер, поднятый на модуле, посылается вызов GET http://ip_адрес/mode=cmd&sw0, вывод GPIO00 меняет свое состояние на 0; таймер Clock2 включается на 4000 мс, а по прошествии этого времени срабатывает событие таймера, посылающее ту же команду, которая меняет состояние вывода GPIO00 на 1. Кран открыт.



    На следующем скриншоте приведена часть программы, которая отвечает за установку режима и параметров модуля ESP. Здесь, кроме режима Wi-Fi, можно поменять IP адрес, порт, маску сети, шлюз, SSID беспроводной сети и пароль. После пересылки параметров на модуль он автоматически перезагружается для работы с новыми параметрами.



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

    Итог: связка ESP8266 – водопроводный кран работает. Настоящий интернет вещей получился. Буду делать плату на SMD элементах, собирать в готовую конструкцию и устанавливать. Закончу – отпишусь!»

    Видео тестирования на работоспособность:
    МАСТЕР КИТ
    63.83
    Company
    Share post

    Comments 49

      +6
      Ну и для тех кто хочет сделать что-то подобное, а кран менять не собирается, можно поставить что-то подобное http://ru.aliexpress.com/item/shut-off-valve-for-gas-sensor-detector/1838921804.html
        0
        Там написано до +50°, его точно можно использовать для горячей воды?
          0
          эту модель не разбирал, так что не могу сказать про возможность использования на трубах с горячей водой. Плюс у меня вода только холодная, отопление и горячая идут из котла, так что у меня такой вопрос не вставал.
      • UFO just landed and posted this here
          0
          Посмотрите на ссылку, которую я указал выше. Механический привод остается на месте, при надобности можно закрыть/открыть руками. Ну а в остальное время управлять удаленно. Ну и дополнительный плюс для тех кто не верит в надежность китайского крана.
            0
            Ну и дополнительный плюс для тех кто не верит в надежность китайского крана.

            Вот эта тема меня очень беспокоит. Насколько ненадежны китайские моторизированные вентили? Мы же обычно и так китайские ставим, только без мотора? Имеет смысл ставить немецкие? Но их фиг достанешь да и стоят как вертолет.
              0
              А вот тут рулетка. Никогда не угадаешь из чего будет собран очередной образец китайского производства. Обычная проблема — в пластиковых шестернях (кстати, предлагаемый в статье экземпляр аналогичен своим братьям из китайских магазинов, только стоит вдвое дороже). Если механика крана хорошая, и сделать цикл закрытия/открытия например раз в неделю, чтобы не «застаивался» механизм, то и с родными комплектующими может прослужить долго. Для очумелых ручек есть вариант замены шестерен, на более прочные. Ну и если задействовать сигнал с концевиков то можно анализировать успех/ошибку выполнения операции, и соответственно задействовать второй уровень тревоги — «хозяин, все плохо!»
                +1
                Шестеренки — это неприятно, но не опасно. А как на счет корпуса вентиля: может лопнуть? Протечки возможны?
                  0
                  Если по второму варианту — то там ваш вентиль, уж что поставите. По первому — там тоже можно в большинстве случаев механизм привода переставить на нормальный вентиль. Так что с точки зрения безопасноти протечек/пломки тут все в норме. Скорее нужно смотреть именно на механизм привода, чтоб он не подвел в самый критичный момент.
                  0
                  Вот именно в этом и кроется проблема с закупками Китайского товара. Он может быть вполне приличного качества, а может грубой подделкой, причём выясняется это иной раз уже после того как куда нибудь его установил!
              +2
              Он обычно ставится после входных вентилей, но не вместо, так что перекрыть воду вы сможете в любом случае. Вот открыть — это да, проблема может возникнуть. Но лучше 20 минут помучится от жажды чем залить соседей. И кстати, есть модели и с механическим вентилем, но они дороже.
                +1
                + можно параллельно этому вентилю поставить обычный механический, чтобы и 20 минут не ждать. А если ещё и последовательно поставить механические вентили до и после автоматики, то и на время ремонта можно будет воду не перекрывать.
                  –1
                  Вот так
                  image
                    +1
                    Чем больше вентилей и соединений, тем больше риск прорыва. В идеале входной вентиль должен быть совмещен с автоматическим и на нем должен быть джампер для отключения автоматики — например на случай длительного отъезда.
                      –1
                      Если вентили бракованные или сантехник криворукий. В частном доме за полтора десятка лет ни одного прорыва не было ни в доме, ни на участке, ни в бане. В квартире съёмной за первый же месяц 2 прорыва было. Если делать байпас, то аккуратно.

                      В любом случае всё это нагромождение вентилей будет стоять уже после входного вентиля и счётчика, как написал scg. Иначе водоканал не разрешит. А автоматизация входного вентиля по принципу китайца из первого комментария должна быть устроена. Иначе в случае поломки придётся весь стояк перекрывать.
                        +2
                        А откуда в частном доме прорыву то взяться. Прорыв бывает обычно изза гидроудара. Когда живешь этаже так на третьем. Внизу открыли воду на полную, она пошла сверху вниз по трубе (верхняя подача), разогналась как следует, а воду резко закрыли — и бамц.
                        0
                        В идеале всё таки винтеля два. Один базовый, для того чтобы не приходилось для любого мелкого ремонта и установки нового смесителя искать сантехников в ЖЭК и умолять перекрыть воду в стояке. Кстати часто эта операция в результате обходится сильно дороже самого приличного итальянского винтеля!
                          0
                          Вентиля, конечно же, должно быть 2. Вентиль на отводе стояка — зона ответственности УК. Если его нет или он неисправен, УК обязана устранить это за свой счет. Только, все заявки и все работы УК оформлять в письменном виде и бережно их хранить. Если этот вентиль потом потечет, ремонт соседям снизу будет оплачивать УК в таком случае.

                          Требование платы «за отключения стояка» незаконна. Законом такая плата не установлена. Если общее собрание жильцов не установило плату за эту процедуру, можно слать УК в член. Опять же, в письменной форме, с требованием обосновать, на каком основании они хотят денег сверх того, что вы уже заплатили за содержание и ремонт общедомового имущества. Если и после этого требуют денег, пишите жалобу в жилинспекцию, к которой приложить ответ УК. Они реально работают (в отличие от роспотребнадзора, который только отписки пишет) и раздают УК таких феерических люлей, что вас запомнят и повторные обращения не понадобятся.
                0
                Крутая штука, но если бы она ещё содержала импульсный вход для рядом стоящего счётчика и интегрировалась бы в системы сбора показаний, цены бы не было )
                  0
                  Можно использовать что-то типа esp-12, у него больше пинов и i2c есть.
                  0
                  Ну на макетке то каждый собрать может) А кто рискнет реально такой домой поставить?
                    0
                    Сейчас планирую нечто похожее делать на даче.
                    Смотрю на такие краны и понимаю что при количестве 4 штук получается уже не кислая стоимость. Еще надо кучу датчиков и сервер с ибо. Удовольствие не дешевое.
                    У самого еще в планах сделать снятие показаний с счетчиков воды, но правда я рассматривал вариант использования модулей NRF24LE01 по причине меньшего потребления энергии. Но тк я только начинающий то есть куча вопросов, начиная от количества аппаратных внешних прерываний в этом модуле и временем выхода из глубокого сна.
                      0
                      но правда я рассматривал вариант использования модулей NRF24LE01 по причине меньшего потребления энергии

                      Ваш вариант ещё и сильно понадёжней будет. Передавать команды через NRF24LE01, а с WiFi связывать при необходимости уже управляющий передатчик.
                        +1
                        Ну у меня идея немного другая.
                        Сам модуль nrf24le01 содержит в себе еще и микроконтроллер довольно таки мощный. То есть его хватит и для большего.
                        При поступлении сигнала он счетчика его надо просто обработать, сформировать пакет для отсылки и отправить уже на сервер. Сервер принимает сообщение и уже там считает и ведет статистику.
                        Работать сам датчик должен от батареек, и работать должен довольно долго. Поэтому и встает вопрос перевода модуля в режим глубокого сна. А с учетом что зачастую счетчики воды рассчитаны на пропускание максимум 10л/с то получается что контроллер от одного счетчика будет просыпаться максимум 1 раз в секунду, от двух конечно может по чаще. Но это крайний режим работы, можно сказать это самый ресурсоемкий режим, так что зачастую модуль будет спать.
                          0
                          Мда, наличие резервного или аккумуляторного питания в таких проетках вообще очень важно. Даже в городе бывают проблемы с отключением электроэнергии, а уж в сельской то местности и дачных кооперативах…
                            0
                            не для всех проектов оно нужно.
                            но вот для считывания показаний со счетчиков оно просто необходимо. Не каждый захочет тянуть провода в отремонтированной квартире. Это же касается и передачи данных.
                            Я вообще сначала рассматривал связку attiny13a + передатчик на 433 MHz, но как понял что надо разработать протокол передачи устойчивым к помехам, плюс уместить это дело в 1КБ понял что слишком затратно.
                      0
                      Полагаю, если добавить в прошивку ESP8266 — DDNS, DHCP (mDNS), расписание (таймеры с графическим интерфейсом), веб интерфейс на jquery mini, API, MQTT, Cloud, запись температуры, emonCMS то это будет уже похоже на продукт.

                      Ну и до кучи IDE ESP8266 с диаграммами.
                        +1
                        ИМХО, натрахавшись с ESP по полной (убил флеш в 3-х модулях, пока скрипты писал и с прошивками экспериментировал), могу откровенно утверждать — для промышленного применения сырой. Оптимально писать собственную прошивку, но уж очень муторно. Под мои задачи, чтобы реализовать на lua urldecode, пришлось nodemcu править и собирать самостоятельно из-за кривых параметров буфера, иначе части команд не хватало памяти. Я бы этой штуке такую ответственную роль не отводил бы. Максимум, использовал как коммуникационный модуль вкупе с чем-нибудь типа Avr | Arduino | STM32.
                          0
                          Не чего такого не случалась со мной, так как использую ESP8266-EVB. Посмотрел несколько прошивок. Не пытался использовать LUA. Стабильно работает уже 3 месяца. Сейчас только один вопрос как сделать это ближе к народу.

                          Вот один вариант. А вот это второй.
                            +2
                            Вы, по-моему, вообще с языками не дружите, не то что с Lua.
                              0
                              github.com/Ignat99/ESP8266_Relay_Board

                              Я использую эту прошивку проверяйте. Не знаю почему вас на LUA потянуло. Всё уже написали до вас. Осталось только интерфейс с мышкой для визуального программирования приделать. MQTT и NodeRED не в счёт.

                              LUA использовал в далёком детстве в 2004 году, когда работал в Ю.Корее. Для визуальных диаграмм цепочек модулей в памяти линукс ядра. Когда делал софт для первого в мире смартфона на линукс.
                            0
                            Не замечено особых проблем с ESP…
                            У меня выключатель в комнате на ней полгода безотказно работает.
                            Когда лениво зад от стула оторвать, включаю свет с клавиатуры компа.
                            Памяти стало вполне хватать после разбиения скрипта на файловые блоки.

                          0
                          Я так понял в этом устройстве нет обратной связи: как узнать в каком положении находится кран изначально?
                            0
                            На самом деле, концевики там стоят. Если от них явно наружу не выведены провода, то они подключены внутри так, что в крайних положениях отключают от питания двигатель.
                              0
                              А, собственно, зачем? Открыл любой кран в квартире, течет вода, значит, можно закрывать.

                              Таким же образом и проконтролировать закрытие. Концевики в кране встроенные, после открывания/закрывания двигатель ток не потребляет.
                              0
                              Когда уже вся эта автоматизация обычной жилой квартиры со всеми плюшками будет продаваться в обычных магазинах, чтобы просто плаг&плэй?
                                0
                                Готовые системы защиты от протечек продаются, гугл в помощь.
                                Только если рекламируемый тут китайский кран стоит в 2 раза дороже, чем на алиэкспрессе, то система в сборе будет стоить раз в 5 дороже ( цифра с потолка, но суть передает), чем если купить все по отдельности и собрать самому.
                                  0
                                  то система в сборе будет стоить раз в 5 дороже

                                  боюсь это ещё оптимистичная оценка, хотя бы потому что производители таких систем вынуждены применят более качественные компоненты, иначе вскоре их исками завалят так что закрываться придётся. Плюс серьёзных денег стоит процесс сертификации подобного товара. Ну и жадность никто не отменял.
                                    0
                                    производители таких систем вынуждены применят более качественные компоненты

                                    Ага, конечно :)

                                    их исками завалят так что закрываться придётся

                                    Сильно сомневаюсь, что производитель понесет ответственность. Вам грамотно докажут, что вы виноваты сами, т.к. устанавливал систему ваш сантехник, который не сертифицирован для работы с такими системами, договора на регулярное ТО системы у вас нет и т.д.
                                  0
                                  В данном случае решалась конкретная задача – удобство нечастого доступа к конкретному крану.
                                  Не так уж часто приходится всю воду в квартире перекрывать. Считаем, решена успешно.

                                  +2
                                  Поделитесь исходниками LUA-скриптов для ESP?
                                    0
                                    исходников нам не прислали ((
                                      +2
                                      Поддерживаю.
                                      Как-то не совсем красиво получается.
                                      Никаких сверхсекретов там нет.
                                      Но начинающим это существенно упростило бы задачу.

                                      Сам несколько ночей провозился с работой HTTP на этом модуле.
                                      Не опубликуете — это сделаю я =)
                                        +1
                                        Ловим вас на слове!
                                          0
                                          Да пожалуйста, мы всегда только за. И когда есть что, то всегда выкладываем.
                                            0
                                            Я не думаю, что в этом есть смысл. В принципе, там лучше в общем концепцию разработки рассмотреть. Я, в частности, сделал для себя следующие выводы:
                                            1) Отдельные функции вынес в отдельные скомпилированные файлы .lc типа такого содержания
                                            return function(str)
                                            return str[0]
                                            end
                                            Так достигается значительная экономия памяти
                                            2) Все переменные, в том числе и функции после использования лучше обнулить. Сборщик мусора подберет. Например, так я подгружаю функции:
                                            urldecode = dofile(«http_urldecode.lc»)
                                            a=urldecode(b)
                                            urldecode=nil
                                            3) По возможности стоит избегать глобальных переменных, или тоже обнулять их после использования.
                                            4) Внимательно читайте API. Впрочем, это иногда тоже не спасает
                                            5) ESPlorer как IDE отвратителен. Скорее терминальная программа, чем IDE. К тому же есть баги при загрузке некоторых команд, в основном связанные с наличием ]. Спасает вставка комментариев. Безусловно, автору респект, но хотелось бы чего получше. Я пользуюсь SciTE и nodemcu-uploader.
                                            Если кто-то может что-то к этому добавить — буду благодарен.
                                              0
                                              Добавлю. Баги с ] решаются включением «Turbo mode» в настройке =)
                                        +1
                                        Да, на всякий случай: программу для смартфона можно посмотреть на ai2.appinventor.mit.edu в разделе Gallery, в поиске ввести «esp8266tap».
                                          0
                                          Отличная демонстрация простоты создания управляемых устройств. И каким бы зверством не казалось исполнение скриптовых языков на МК — всё к этому идёт :) Цель достигнута — девайс функционирует, и затраты на создание невелики.

                                          Only users with full accounts can post comments. Log in, please.