Доброго времени суток! В данной статье хочу рассказать о реализации устройств на модулях ESP. Тема похожих девайсов уже раскрыта в интернете, но не перестает быть актуальной.
Идея

Давно думал о реализации некой системы индикации и управления в квартире, но никак не мог найти применения, имеющихся в продаже датчиков, конкретно для себя. Первое что смущало – это наличие некого сервера (отдельной железки), который собирает данные, обрабатывает и выкидывает куда-либо для просмотра. Хотелось бы иметь наращиваемую систему независимых устройств, желательно работающих с одним приложением, оптимально, если приложение будет готовым, что казалось практически невозможным (забегая вперед скажу, что такое приложение есть и оно довольно гибко может настраиваться под наши задачи). И конечно же хотелось сделать линейку своих устройств.

Требования к системе

  1. Отсутствие аппаратного сервера («Центральный блок»).
  2. Независимые датчики/элементы управления.
  3. Датчики должны быть беспроводными.
  4. При изменении состава и типов датчиков не должно быть зависимости (добавляя новое устройство не должно быть необходимости «пилить» что-то на других).
  5. По возможности датчики должны быть с батарейным питанием.
  6. При необходимости датчики должны иметь возможность настройки, но без копания в коде (оптимально web).
  7. Уведомления. Это отдельное требование. Все мы привыкли пользоваться сотовыми телефонами и получать уведомления мгновенно.

Это далеко не полный список «хотелок», но это основные.

Поиск решения

Решение для создания системы пришло несколько позже. Сначала было разработано первое устройство, о котором я напишу в данной статье.

Аппаратная часть. ESP-12E и ESP32. Все описанные ниже проекты реализованы на первом модуле. На втором модуле есть несколько коммерческих проектов, которые в рамках данной статьи рассматриваться не будут.

О ESP-12E есть много статей и форумов в интернете, и повторяться про все плюсы и минусы я не буду. Все «затыки» происходили, в основном, из-за недостатка опыта в работе с модулем и со средой, в принципе.


Рис 1. Фото ESP-12E.

Программная часть. Прошивка для ESP писалась в среде «Arduino IDE». На стороне телефона/планшета работает приложение «Blynk». Это очень удобный конструктор для отображения данных. Приложение имеет облачный сервер, куда устройства (датчики) шлет данные, а Blynk их получает и позволяет отображать (www.blynk.cc). Таким же образом организована обратная связь с устройством. Что немаловажно, одно приложение может собирать и отображать данные с нескольких устройств.




Рис 2. Скрины приложения.

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

Первое трио датчиков

1. OpenWindAir Датчик концентрации углекислого газа.

Построен на основе Wi-Fi модуля ESP-12E. Измерение происходит при помощи датчика CO2 MH-Z19. Он широко известен и позволяет быстро и точно делать измерения. Помимо этого, в устройстве есть встроенный датчик температуры и влажности воздуха AM2302. Также существует поддержка выносного датчика для использования, например, с системой «Народный мониторинг». Питается устройство по miniUSB от ПК или блока питания 5В. Реализована светодиодная и звуковая сигнализация (последнюю можно отключать из приложения, либо использовать по часам – чтобы ночью не просыпаться).

2. LifeOfFlowers Датчик влажности почвы для растений.

Построен на основе Wi-Fi модуля ESP-12E. Измерение влажности почвы происходит при помощи втыкаемого электрода в землю (часть платы устройства). Что важно – электрод, как и вся плата, залита лаком (тут пришлось исхитриться с измерениями), что будет препятствовать гниению контактов. Помимо влажности почвы устройство измеряет влажность и температуру окружающего воздуха (AM2302), освещенность и напряжение батареек. Да, LifeOfFlowers работает от 1 до 3 лет от двух элементов питания AAA (время работы зависит от частоты обновления данных).

3. WarningWater Датчик протечек.

Построен на основе Wi-Fi модуля ESP-12E. Измерение происходит при помощи электродов, входящих в состав корпуса IP-65. Устройство работает от двух элементов питания AAA (или АА), время работы также составляет от 1 года. Размеры корпуса устройства составляют всего 55x55x30мм. Для начала работы необходимо положить девайс в потенциально опасное место и он просигнализирует о наличии воды на полу. В приложении также отображается напряжение батареек, чтобы не забыть их вовремя заменить.

OpenWindAir — аппаратная реализация

Схемотехнических изысков тут не встретить, все просто и по даташитам. Если кому-то нужна схема, могу дать.

Состав устройства:

ESP8266 ESP-12E – собственно сам модуль, отвечающий за сбор, обработку и отправку данных. Питание 3,3В.
MH-Z19 – датчик концентрации углекислого газа. Работает по UART, измеряет до 5000ppm и питается от 5В.
AM2302 – измерение влажности и температуры. Так как датчик находится внутри корпуса пришлось ввести калибровочные константы, и данные измерения являются справочными. Для более точных измерений используется выносной датчик.

1-1462037-8 (IM03TS) – реле, для коммутации слаботочки, заложили на всякий случай, поиграться. В принципе штука интересная, но применения пока не придумали (выведено на тот же внешний разъем, что и внешний датчик влажности).

CP2102-GM – USB-UART. Да, решили сделать красивые логи для отображения инфы в реальном времени, получилось очень удобно, можно смотреть данные в терминале, смотреть порядок загрузки, отлаживаться.

LM1117MP-ADJ – LDO для 3,3В.

Также есть бипер, пара кнопок и три светодиода. Помимо порогов концентрации CO2 светодиоды осуществляют индикацию процесса загрузки устройства, подключения к точке доступа (либо работу в режиме offline) и процесс обновления.

В устройстве реализовано OTA обновление. Кидаем прошивку на любой сервак (предварительно прописав его), жмем кнопку, подаем питание и начинается процесс прошивки. После прошивки (или перезапуска) в течении заданного времени можно зайти в web интерфейс (устройство представляется точкой доступа) и вбить настройки сети – после этого все готово к работе.


Рис 3. Фото платы с компонентами.

Хочу немного написать о форме и особенностях печатной платы. При тестировании обнаружилось что при длительной работе Wi-Fi модуль разогревает плату. Это не было бы критичным, если бы встроенный датчик температуры и влажности внутри корпуса. Пришлось разнести модуль ESP с питателем и датчики в разные стороны, а также сделать вырез в плате, куда подобно конструктору еще вставляется специальная перегородка. Тем самым не происходит смешивания воздуха внутри корпуса и измерения температуры и влажности получаются намного достовернее.


Рис 4. Фото перегородки на плате.

Корпус

Тут было много сомнений – хотелось иметь красивый металлический, обтекаемый корпус с матовой полоской индикации и т.д., но как всегда, на помощь пришел минимализм. Форм-фактор корпуса определил наличие олдскульных 5мм светодиодов, которые, как оказалось очень удобны. За счет того, что они выпуклые – это позволяет поставить устройство, например, на полку и индикация все равно будет хорошо видна. Сам корпус вырезали лазером из оргстекла 2мм.

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


Рис 5. Фото устройства.

Планы

Вообще, в планах сделать еще несколько устройств (помимо этих трех). Например, ESP32 имеет встроенный Ethernet (нужна только физика) и больше встроенных АЦП, что позволит обходиться без мультиплексора, как в случае с LifeOfFlowers, но об этом позже.

ЗЫ. Blynk имеет API сервера, которое легко разворачивается (проверяли) на ПК. Таким образом пропадает привязка к серверу.

ЗЗЫ. Чтобы было меньше негатива переименовал статью. Когда перейдем к управлению домом с помощью устройств, подкорректирую статью.

Спасибо за внимание!

Комментарии (130)


  1. altcms
    15.02.2018 15:52

    Интересно, но в очередной раз связь через чужой сервер.
    Посмотрим что будет в остальных частях. Пока всё стандартно, как и во многих аналогичных «Умных домах».


    1. the_bat Автор
      15.02.2018 16:05

      Дописал в конце статьи по поводу сервера.


      1. altcms
        15.02.2018 16:28

        + отдельный сервер. Опять не то.


        1. de1m
          15.02.2018 23:38

          а как вы хотите?
          Сама архитектура IoT подразумевает какой-то концентратор данных. Как-то так это выглядит


          1. altcms
            16.02.2018 04:09

            Я хочу и вправду устройство умного дома, а не примитивный сбор телеметрии, в данном варианте он умеет только собирать данные с датчиков и отсылать на внешний сервер (притом весьма не надёжный), тут нет ни логирования, ни возможности отработать данные датчиков и что либо предпринять (как минимум хоть воду перекрыть в случае протечки, или включить вентиляцию), это устройство даже само не может передать данные на смартфон (без внешнего сервера расположенного не известно где, притом я не уверен за надёжность дойдут данные или нет). Так что это не более чем игрушка. Её конечно можно использовать как блок обработки датчиков для умного дома, и не более того.


    1. Barnaby
      16.02.2018 07:35

      Умный дом без сервера https://youtu.be/NrIrLw1rOdk
      Сам не тестил, но идея интересная.


  1. Mogwaika
    15.02.2018 16:09

    Зачем градусник ставить рядом с ИК грелкой?


    1. the_bat Автор
      15.02.2018 16:12

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


      1. Mogwaika
        15.02.2018 16:16

        Я про то, что лучше bme280 на проводке повесить.
        И ещё для MH-Z19 сделать полноценные окошки по месту, у него не очень хорошая циркуляция и так…
        p.s. я увидел что у вас есть выносной датчик, но не понятно зачем нужен ещё один внутри, с учётом, что наверное в esp есть встроенный, который какую-нибудь погоду на Марсе покажет.


        1. the_bat Автор
          15.02.2018 16:20

          Для циркуляции сделаны отверстия в корпусе на входе и выходе MH-Z19.


    1. vibornoff
      15.02.2018 16:17

      чтоб получить справочные данные же :-)


  1. Mogwaika
    15.02.2018 16:21

    И почему вас так пугает один центральный блок например на nrf-ке, у вас же есть wi-fi роутер как шлюз?
    А всякие nrf52 будут сильно меньше кушать батарейку.


    1. the_bat Автор
      15.02.2018 16:28

      Этот вариант продумывался. Роутер есть практически у каждого пользователя. Не хочу патчить софт центрального блока. Не хочу завязываться на дальность до датчика, спаривание. Не нравится что устройство получается не мобильным, в плане привязки к блоку. Хочу чтобы можно было в любом месте где есть только роутер установить устройство. Например на работе тоже поставил датчик CO2, и не пришлось ваять еще один сервер.


      1. Mogwaika
        15.02.2018 16:32

        Наверняка блютус можно сопрячь с телефоном.


        1. the_bat Автор
          15.02.2018 16:35

          Нет удаленного просмотра и управления. ESP32 имеет BT, но это нарушает некую идеологию. Если использовать устройство как датчик разбития окна/открытия двери (совместно, например с IP камерой торчащей в интернет), то актуально получать данные находясь не только дома.


          1. Mogwaika
            15.02.2018 16:47

            Зачем вам удалённо знать уровень CO2 на работе?


            1. the_bat Автор
              15.02.2018 17:00

              Во-первых, это для примера, выше написано про окно и дверь, во-вторых, я пишу с работы жене, чтобы проветрила дома)


              1. Mogwaika
                15.02.2018 17:06

                Так дома и не сложно на той же esp-шке сделать сбор данных с легковесных датчиков, а-ля как у Xiaomi. Но вы этого не хотите, согласно п. 1.


                1. the_bat Автор
                  15.02.2018 17:11

                  Да, так я не хочу. хотя изначально примерно так и задумывалось. Получать данные в ESP по 433 и уже кидать в интернет


                  1. Mogwaika
                    15.02.2018 17:20

                    Зачем этот 433, если есть много умных энергоэффективных передатчиков со всякими плюшками типа mesh сетей?


              1. greensky
                15.02.2018 23:24
                +1

                А еще по градиенту роста уровня CO2 можно определить, сколько людей в квартире, и занимаются ли они активной физической работой.


              1. Artemiy117
                16.02.2018 13:40

                Вся суть Умного дома. ))


  1. Punk_Joker
    15.02.2018 16:22

    Что значит требование:
    1. Отсутствие аппаратного сервера?


    1. the_bat Автор
      15.02.2018 16:29

      «центральный блок» как написали выше в коментах


      1. konchok
        16.02.2018 07:15

        Отсутствие этого блока = отсутствие 'умного дома'. Потому что именно в этом блоке и реализуется его функционал. По факту получились в очередной раз просто датчики подключённые к сети.


        1. the_bat Автор
          16.02.2018 12:35
          -1

          Вы не правы, как мне кажется. Если Вы создадите 10 устройств, которые автономно могут работать и при этом не только собирать информацию, но и управлять чем-то — это будет считаться умный дом? Грубо говоря, если не говорить о стоимости, у меня может быть каждое устройство и сервером (центральным блоком) и датчиком? Мне кажется имеет право.
          Приведу примеры:
          — WiFi розетка
          — Устройство управления вентиляцией
          — Датчик протечки с управлением кранами
          Принципиально, чтобы они все были привязаны к одной железке? Мне нет.

          ЗЫ Я к тому, что система будет наращиваться и не будет включать в себя только датчики, также будут устройства управления. Невозможно сделать все и сразу, не возможно все предусмотреть. Идей много. Реализовываем постепенно.


          1. ProstoUser
            16.02.2018 12:41

            Полностью согласен!

            Хоть и не могу, надеюсь, пока не могу, похвастаться чем-то работающим, но считаю, что оптимальный вариант — датчики/исполнительные устройства, которые обмениваются между собой данными и принимают решения «каждый за себя».

            Центральный блок — это single point of failure. Он может давать какой-то дополнительный функционал, но делать функционирование всей системы зависимым от исправности единственной железки — это не совсем правильно.


            1. the_bat Автор
              16.02.2018 12:47

              Ну вот как раз одним из таких доводов я и пользуюсь. Если заглючит/сгорит/уронит кот (которого у меня нет)/сядут батарейки центрального блока — вся система не работает.


            1. konchok
              16.02.2018 13:14

              >Приведу примеры

              Вот я и говорю что ничего 'умного' тут нет. Ну и Blynk в качестве той же самой единой точки отказа.


              1. the_bat Автор
                16.02.2018 14:03

                Вы минусанули?
                Вы не поняли примеры? Что тогда для Вас умный дом?
                Для меня система сбора и обработки данных, а также управление.
                Разверните свой сервер на расбери или ПК и тогда Вы получите свой сервер, если он Вам нужен.


                1. konchok
                  16.02.2018 14:18

                  Не, мне не положено.
                  Умный дом обрабатывает данные, статистику собирает и сам 'принимает решения'. А не просто интерфейс на телефоне к выключателю и оповещения. Вам уже выше сказали что даже вода при протечке автоматом не отключается.
                  Я кстати развернул у себя OpenHAB на Odroid XU4


                  1. the_bat Автор
                    16.02.2018 14:21

                    Я же так и написал:
                    — Устройство управления вентиляцией
                    — Датчик протечки с управлением кранами


            1. Alexeyslav
              16.02.2018 15:39

              Это так кажется только когда датчиков и исполнительных устройств не больше десяти, и связи достаточно прямые с минимальными перекрестными. Это называется малая автоматизация. Зависимость от главной железки лечится очень просто — местным управлением исполнительными устройствами, тогда при выходе из строя ядра системы перестаёт работать только «умность» а выключателем света по прежнему можно управлять вручную.
              Соединение датчика протечки с электрическими вентилями это всего-лишь автоматизация и только МОЖЕТ быть элементом умного дома который сможет управлять вентилями не только по датчику а так же по расписанию, признаку «уехал на месяц на курорт а ты только подергай вентили каждые три дня» и т.д.


              1. ProstoUser
                17.02.2018 15:03

                Думаю, мы с вами тут расходимся только в терминах.
                Тот же выключатель может принимать широковещательные сообщения от датчика движения и от датчика освещенности и включать свет без использования центрального сервера. Это будет «малая автоматизация». А вот на центральном сервере может уже работать более сложный алгоритм, который даст команду включить свет, когда вы только подойдете к двери, за которой находится зона обнаружения датчика движения. Немного кривой пример, конечно.

                В общем, суть простая — я бы старался делать более или менее автономные связки датчиков и исполнительных устройств, а на центральный сервер переносил бы какие-то высокоуровневые функции, типа изменения режимов работы. Дергать вентили каждые три дня надо в любом случае, значит делать это надо локально. А включать режим «вентили по умолчанию закрыты» должно быть можно как вручную, так и при установке центральным блоком режима «уехал в отпуск».


          1. Alexeyslav
            16.02.2018 14:28
            +1

            Это будет не умный дом, а малая автоматизация. Связи датчик-датчик слишком бедны на информацию чтобы работать действительно умно, и вынуждены будут дублировать некоторые сенсоры. Например, привод управляющий ставнями на окнах должен быть завязан на расписание работы, освещённость снаружи(защита от чрезмерно яркого солнца, даже если по расписанию ставни должны быть открыты), наличие дождя, людей в комнате, знать открыто ли окно… когда количество необходимых параметров для учета больше двух, то выигрывает всё-таки централизованная система с глупыми исполнительными устройствами. Для надежности можно некоторые датчики(температуру измерять с двух сторон дома и брать минимальное значение) и ядро системы дублировать. И да, при изменении алгоритма работы «умного дома» не надо бегать с программатором к каждому устройству и перепрошивать. Загрузка прошивки по воздуху — лишняя точка уязвимости.


            1. ProstoUser
              17.02.2018 15:15

              Согласен. Сенсоры дублировать, конечно, не надо — они могут быть широковещательными. Но вот загрузка и особенно изменение прошивок — это проблема. Нужен какой-то компромисс между интеллектом и сложностью прошивок «глупых устройств».
              Я не слишком много думал на эту тему. Просто наблюдаю, как приятель едет неожиданно на дачу, поскольку завис RaspberryPi, на котором работает Open Hab, управляющий в том числе дежурным отоплением. При том, что моя система управления отоплением гораздо тупее, но за то полностью автономна и работает без каких либо вмешательств уж 5 лет. Но он может дистанционно поменять температуры в разных комнатах, а мне надо только локально менять уставки термостатов в каждой комнате отдельно. Идеально было бы — объединить сильные стороны и не добавить новых слабых сторон.


  1. sanfteam
    15.02.2018 16:25

    А в других частях датчики будут подробно обозреваться, например LifeOfFlowers и WarningWater?


    1. the_bat Автор
      15.02.2018 16:30

      Да, конечно.


  1. 13vitia
    15.02.2018 16:29

    Как получили такое время работы?
    И есть ли фото WarningWater?


    1. the_bat Автор
      15.02.2018 16:30

      У ESP есть хороший спящий режим. Тестами и расчетами получили данное время. Фотка есть, но это в следующей статье.


      1. 13vitia
        15.02.2018 17:26

        А на сколько оно спит? Ведь тогда, насколько мне известно, его роутер должен отключить и оно будет тратить много энергии на подключение. Интересно, сколько реально сможет работать.


        1. sp01
          16.02.2018 17:29

          Хорошо спит. www.youtube.com/watch?v=6SdyImetbp8
          Понятное дело, что deep sleep нет смысла использовать для передачи информации раз в 10 секунд.


  1. bcmob
    15.02.2018 16:55

    Blynk сервер меня разочаровал своей нестабильностью.
    Но, blynk бесплатно дают серверную часть на java и его можно запустить где угодно, тем самым еще и убрать лимиты при бесплатном использовании.


    1. the_bat Автор
      15.02.2018 16:57

      По поводу нестабильности сказать ничего не могу, проблем в течении года не было. По поводу API написал в статье, да.


  1. Daniyar94
    15.02.2018 17:07
    +1

    Доверять свои данные каким-то третьим лицам? Яб не решился. Особенно если функционал расширяется.


    Использую расбери с установленным homeassistant, как сервер. Через OpenVPN получаю данные удаленно. Никаких торчащих устройств в интернет нет.


    1. the_bat Автор
      15.02.2018 17:08

      Поднимали свой сервер, работает без проблем. Можно реализовать внутри локальной сети.


    1. spax555
      15.02.2018 17:26
      +1

      Что страшного в том, что кто-то узнает влажность почвы в вашем горшке?


      1. iig
        15.02.2018 17:45
        +1

        Третий день горшок не поливается — возможно, никого нет дома.


        1. the_bat Автор
          15.02.2018 17:47

          По CO2 можно отлично отслеживать)))


        1. SergeyMax
          15.02.2018 22:48
          -1

          Третий день горшок не поливается — возможно, никого нет дома.

          А где дом?


          1. QWhisper
            16.02.2018 00:00

            А это определяем по температуре, давлению и концентрации СО2!


  1. Mogwaika
    15.02.2018 17:22
    +1

    А можете показать, как стойки снизу к корпусу у вас крепятся, очень уж аккуратная коробочка у вас получилась.


    1. the_bat Автор
      15.02.2018 17:30

      Вот такие стойки используются, а сверху/снизу винтики как на фото.


  1. VokaMut
    15.02.2018 17:36

    Не думали над созданием умной розетки/выключателя света?
    Сейчас изобретаю ESP плюс реле внутри обычного выключателя света, но нехватка знаний и времени затягивает процесс уже несколько месяцев


    1. the_bat Автор
      15.02.2018 17:38

      Есть где-то макет розетки, но пока решили отложить.


      1. VokaMut
        15.02.2018 17:41

        Хочется заменить все выключатели дома на аналогичные с ESP в начинке.
        Сначала думал приобретать подобное втридорога от Xiaomi, но как оказалось, что размером они больше


        1. Mogwaika
          15.02.2018 17:46

          Купите розеток от сяоми и накладных кнопок.


          1. VokaMut
            15.02.2018 17:48

            Решение так себе я вам скажу


            1. Mogwaika
              15.02.2018 17:51

              Чем вас не устраивает? У меня один такой костыль успешно работает совместно с датчиком движения.
              Вы сами как-то быстро перешли от розеток на выключатели…


    1. nochkin
      15.02.2018 18:29

      Есть несколько готовых решений Sonoff. Или это совсем не то?


    1. Alex_ME
      15.02.2018 22:19

      Я как-то делал тестовый вариант, но не на ESP, RTL8710 (ну и в семействе есть более крутые). Вместо реле — оптрон и симистор, чтобы не получить залипание дешевых китайских реле.


      Схемотехника реле тупа до безобразия (но не факт, что все правильно). Но ей нельзя коммутировать мощную индуктивную нагрузку, по-идее может сгореть симистор.


      Заголовок спойлера



      1. Zubaru
        16.02.2018 00:10

        оптрон с zero crossing, снаббер из р4 и с1 не нужен. Чтобы коммутировать индуктивную нагрузку в выходную цепь цепляется ntc резистор. И да, оно будет не хило так греться


        1. Alex_ME
          16.02.2018 01:57

          И да, оно будет не хило так греться

          С индуктивной нагрузкой? Или с любой? Я как-то не испытывал на чем-то более мощном, чем освещение.


          1. zapimir
            16.02.2018 02:30

            С любой. На 10 А выделяется порядка 9 Вт, что требует неплохого радиатора. Интересная тема проскакивала на Geektimes (Щелкаем реле правильно: коммутация мощных нагрузок). Там симистор который с небольшой задержкой шунтируется реле, тем самым избавляя от дребезга контактов релешки, плюс стартовые токи берет на себя симистор, который кратковременно может выдержать очень большие токи. Тоже планирую так делать, только с управлением от микроконтроллера (чтобы реле включалось, только при значительной нагрузке, плюс хочется туда всунуть измерение потребляемой мощности).


  1. kumekay
    15.02.2018 18:15
    +1

    А где можно почитать подробности о LifeOfFlowers (или заказать себе)?


    1. the_bat Автор
      15.02.2018 18:31

      Как только закончим тестирование выложу еще одну статью


  1. FGV
    15.02.2018 19:03
    +1

    >Wi-Fi модуль разогревает плату
    у Вас еще один нагреватель там есть — LM1117MP, но греет раза в два меньше чем esp.

    если не секрет, где заказывали печатные платы?


    1. the_bat Автор
      15.02.2018 19:05

      Да, я поэтому и написал что отнес питатель и ESP подальше.
      Не секрет — в резоните. Белые получились случайно) они не красиво смотрятся.


  1. WebConn
    15.02.2018 21:00

    А есть особый смысл в датчике протечки без автоматической реакции? Если в момент протечки дома не будет интернета, смысл как-то пропадает. Умный дом всё-таки должен уметь сам решать проблемы, потому централизованный контроль в ходу.


    1. altcms
      15.02.2018 22:19

      В последнее время все «Умные дома» скатились до уровня телеметрии и всё. Притом практически все зависят от внешних ресурсов в интернете.
      Интересное было направление, но пошло по странному пути.


    1. the_bat Автор
      15.02.2018 23:06

      Есть у нас система для работы с шаровыми кранами (без esp) просто реализация под дин рейку на STM32. Но чтобы поставить мне ее дома мне нужно врезать два электромеханических крана, что уже само по себе сложно (хоть я и проводил все трубы сам изначально). Так же нужны провода к кранам, мощный аккум и зарядка подключенная, так как чтобы повернуть два крана даже по очереди севшего аккума не хватит. В общем это все рассматривалось, но пока было решено остановиться именно на таком варианте сигнализации протечки.


      1. altcms
        16.02.2018 04:25

        Ну так назвали бы тогда статью «Телеметрия помещения на ESP».
        Это устройство в этом виде на большее не способно. Пока это просто игрушка.


    1. rustavelli
      16.02.2018 12:31

      лучше узнать о протечке сразу, а не спустя 5 часов. Меньше ущерба в большинстве случаев.
      То же самое с пожаром, проникновением в помещение и прочими форс-мажорами.
      У меня не стоят краны с электроприводом, зато есть дистанционно управляемый замок. Можно впустить человека, который попытается устранить проблему, если вы вдруг оказались слишком далеко от дома.


      1. the_bat Автор
        16.02.2018 12:43

        О протечке узнаем в течении сразу или в течении минуты, пока думаем как лучше сделать. Никто не говорил что спать будет ESP по 5 часов.


        1. rustavelli
          16.02.2018 12:47

          5 часов — это ситуация, когда потекло в обед, а узнал ты об этом, только когда с работы вернулся и дверь открыл.
          С обычным уведомлением всегда лучше, чем находится в полном неведении.


          1. the_bat Автор
            16.02.2018 12:51

            Началось с того, что у меня начал капать тройник, а узнал я через примерно неделю, судя по количеству воды, которая стекла в угол (теперь я знаю куда сунуть датчик). Капал он медленно и до соседей не успело протечь, но, так сказать, осадок остался.
            (Я согласен, что если бы еще закрылись краны, было бы отлично, но пока я хочу быть хотя бы предупрежден)


  1. telobezumnoe
    15.02.2018 21:34

    по-моему лучше на опенврт установить москитто, и все данные отправлять на него, прокинуть порты и воспользоваться каким нибудь дднс чтоб с любого места иметь доступ к публикуемым данным. сервер блинк на роутер уже не натянешь. есть приложения mqtt которые отображают графики, есть удобные с кнопочным интерфейсом, так же с помощью таскера, автовойса и плагина для mqtt управлять устройствами голосом с любого экрана сказав только ок Гугл… так же опрашивать показания датчиков температуры влажности, даже показания счетчиков. помимо температуры влажности сейчас измеряю текущую потребляемую мощность прикрепив фоторезист напротив лампочки эл счетчика, и даже без интернета все работает и обменивается данным внутри дома.


    1. konchok
      16.02.2018 13:21

      Сейчас такие роутеры что там можно запустить и сам роутер и несколько виртуалок под домашние эксперименты c умным домом итд.
      www.aliexpress.com/item/Celeron-J1900-Mini-pc-free-shipping-micro-sd-two-usb-and-four-lan-laptop-overwatch-Computer/32794678352.html


      1. sp01
        16.02.2018 17:43

        Еще вашему варианту нужен будет wi-fi.
        А на dir320 за 500р это уже есть. MQTT+MySQL на таком железе крутиться на ура.


        1. konchok
          16.02.2018 17:56

          Ну крутится, он и на старом телефоне может крутиться. Только функционал ниже плинтуса, никакого простора для экспериментов. На роутерах за 500р даже и файрвол нормальный не сделать, всё ляжет на 10Мбит, какой умный дом ещё там…


          1. sp01
            16.02.2018 18:14

            На старом телефоне это все просто летает. (но и ему нужен будет Wi-FI)
            Человек выше расписал, как реально работает что-то подобное (домашний интернет вещей, опрос датчиков) и не только у него.

            Если вы на телефоне не можете «развернуться» и вам для этого нужен простор в виде 2,5 Ггц и SSD, возможно проблема в выбираемых инструментах. Как фаирволл предлагаемая вами железка просто шикарна.


            1. konchok
              16.02.2018 19:03

              OpenHAB вполне стандартный инструмент и его не запустить на dir320. И это первое что в голову пришло.


        1. telobezumnoe
          17.02.2018 10:46

          дир 320 было много ревизий, на моем 16 оперативы что конечно же маловато, а так да, за 400 рублей с китайщины простой роутер 32мБ 4мБ, как раз отдельная сеть для устройств, чтоб для домашних пользователей ничего не просаживалось, единственный минус -слабая антенна, но мою квартиру он покрывает


  1. LastNormal
    15.02.2018 21:51
    +1

    Делайте подвязку для какого нить Open Hab-a. Иначе мертворожднное дитя очередное. Сколько их уже было. У Вас не хватит ресурсов покрыть весь необходимый ассортимент. А значит единственный путь выживания и развития это объединеени уже существующим.


    1. Alex_ME
      15.02.2018 22:28
      +1

      Поделюсь своими соображениями...


      Как-то я на одной выставке разговаривал с человеком, разрабатывающим "еще одну систему умного дома". Его путь был "мы делаем центральные блоки и ПО, а переферию — китай, за ними все равно не угнаться". И вот таких куча.


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


      На мой взгляд, единственный путь, чтобы это вышло за узкий круг гиков — это что-то наподобие магазинов приложений, которые во многом сыграли свою роль в популяризации смартфонов. И стандартизация железа и софта. Логика такая:


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

      Аналогично с железом. Стандарты и протоколы есть (хоть и много разных), больше совместимых между собой программных и аппаратных устройств — больше пользы, больше аудитории.


      Но нееет, все каждый раз делают "свою супер-систему с блэкджеком".


  1. LastNormal
    15.02.2018 23:30

    Вопрос главный — кто предполагаемый потребитель продукта???


  1. Dvlbug
    15.02.2018 23:44

    Меня интересует каким способом подключать датчики 1-wire к плате?
    Хочу сделать подарок девушке, esp8266 + два датчика ds18b20 + реле + ssh1306 (у нее две агамы)
    Но она находится в другом городе, и боюсь что при обрыве провода у нее возникнут закономерные вопросы, как это припаять.
    Самый простой способ со стороны датчика это RJ-11, но ничего кроме макетки мне не достать, либо не знаю как искать. И поэтому теряюсь в догадках, как установить гнездо.

    Можете что нибудь посоветовать? Уже задумываюсь заказать купорос


    1. SvSh123
      16.02.2018 08:48

      Как вариант — нажимные клеммы, вот такие, например. А со стороны датчика — любой коаксиальный, из тех, что ставят в блоки питания. Можно и с обоих концов клеммы.


    1. dmiceman
      16.02.2018 11:28

      Вот буквально недавно решил этот вопрос, подключения ds18b20, использованием dupont-коннектора на штырьки. Под рукой оказался пятипиновый коннектор, в него завел три провода от завалявшегося кабеля под сигнализацию (две витых пары), а коннектор воткнул в штырьки, припаянные к макетке. Очень удачно, что именно дырку под этот коннектор я правильно рассчитал при подготовке корпуса к 3d печати, другие дырки пришлось дорабатывать напильником :-)

      Не подумавши, я три провода по пяти пинам раскидал так:

      GND
      NC
      NC
      DATA
      +3.3v

      А вот если бы подумал, можно было бы так:

      GND
      DATA
      +3.3v
      DATA
      GND

      И тогда можно было бы втыкать любой стороной.


    1. Alexeyslav
      16.02.2018 11:32

      Используй обычный разъём 3.5мм как на наушниках. Есть 4-х контактные при необходимости.
      Если питание ограничить резистором в 100 Ом, то ничего страшного не случится даже если туда всунут наушники.
      Или что-то из этого ассортимента — не шибко большой но весьма надёжный 6-контактный разъём.


      1. Kisa_ua
        16.02.2018 14:32

        Тоже в своих поделках для присоединения датчиков использую 3.5мм как на наушниках. Легко в продаже найти для монтажа маму/папу и замена датчика становиться очень простым делом. Применять прижимные клеммы, не очень понравилось.


        1. batal
          16.02.2018 15:13

          Я для себя открыл RJ11 (телефонный кабель) :) Тоже очень удобно через него датчики цеплять. Как бонус удобная коробка сразу с мамой RJ11 в которую отлично встают датчики. В случае i2c еще и возможность параллелить линию для нескольих датчиков.


  1. Plone
    16.02.2018 00:04

    Датчик температуры лучше вынести в отдельный блок. Я понимаю, что будет некрасиво/неудобно, но иначе вы будете иметь погрешность в несколько градусов. Смысл измерений пропадает. Особенно если использовать нормальный датчик температуры. Впрочем, как можно догадаться, показания датчика влажности в этом случае тоже будут ошибочны.

    Ну, и нагородив столько железяк, вы почему-то отказываетесь от еще одной — сервера. Например, на что-то-там-Pi. Это никоим образом не улучшит надежность «умного дома» — хоп до внешнего сервера и обратно не улучшит стабильность и отзывчивость.
    Ну, и раз был упомянут термин «умный дом», то безопасность такого решения тоже под большим вопросом. Только собственные сервера, только VPN. И все равно никаких гарантий. =)


  1. zapimir
    16.02.2018 03:03

    А как у Вас решается вопрос общения устройств между собой при отсутствии сервера? Может датчик отправить команду конкретному исполнительному устройству или устройство «слушать» показания определенного датчика.
    Т.е. грубо говоря может датчик влажности включить систему полива.


    1. the_bat Автор
      16.02.2018 10:13

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


  1. r00tGER
    16.02.2018 09:10
    +1

    Если это всё делается для себя ради хобби — то это здорово. Обычно такие поделки заканчиваются монтажной платой с кучей соплей внутри какого-нибудь импровизированного корпуса.

    А, вот если с коммерческими амбициями — то сомневаюсь, что можно конкурировать с тем, что уже сейчас повсюду продается. Ни по цене, ни по функционалу.


  1. dmiceman
    16.02.2018 11:32

    Вот тоже сейчас играюсь с mh-z19 и есть вопрос: а насколько оно в закрытом корпусе без принудительной вентиляции реалистичные данные выдает? У меня оно сейчас открыто на макетке стоит, вдали от дыхания, и на долгих прогонах кажется здорово занижает данные. Думаю попробовать вентилятор приколхозить.

    И еще вопрос: какая прошивка ESP-шки используется и как читается mh-z19, через UART или PWM?


    1. batal
      16.02.2018 11:58

      Принудительная вентиляция не нужна.

      Игрался с MH-Z19/MH-Z19B/SenseAir S8 LP одновременно. Некоторые из них были в закрытых корпусах (близко к тому что у автора) — это к тому на чем основано мое утверждение :)


      1. mhuk
        16.02.2018 14:52

        И какой из трех датчиков вы считаете наиболее точным/стабильным в работе?


        1. batal
          16.02.2018 15:17

          SenseAir S8. Он же используется например в Airvisual Node, Tion MagicAir и прочих.

          MH-Z19B — при нормальной калибровке с ним полностью совпадет. Но! Период ABC калибровки у него всего один день. В итоге если в течении 24 часов комнату не проветрили — следующие 24 часа будет показывать заниженные данные.
          (у S8 этот алгоритм реализован существено лучше — период взят 8 дней а так же калибровка за один раз может откоррективать данные не более чем на 50ppm)

          Если комната стабильно проветривается раз в сутки или же отключить ABC калибровку — MH-Z19B тоже отличный датчик.

          MH-Z19 (мои две штуки) — иногда показывали хорошие данные, а иногда +-400ppm…


    1. the_bat Автор
      16.02.2018 12:27

      Чтение по уарт, прошивка своя, позже выложим исхлдники.


  1. CryptoPirate
    16.02.2018 11:33

    Можете написать во сколько это всё обошлось, хотябы примерно?


    1. the_bat Автор
      16.02.2018 13:00

      Себестоимость без блока питания $45 при покупке компонентов в России на одно устройство.
      Соответственно, тут есть плата, компоненты, корпус и сборка.


  1. lilek
    16.02.2018 11:42

    А почему ничего не написано про питание датчиков?


    1. dmiceman
      16.02.2018 11:49

      Так там все с USB берется.


    1. iig
      16.02.2018 12:03
      +1

      Написано

      По возможности датчики должны быть с батарейным питанием.


      Тут самое интересное. За батарейками надо следить. Их надо регулярно менять. Учитывая, что WiFi в ESP кушает порядочно — менять нужно часто. А если датчиков много?


      1. the_bat Автор
        16.02.2018 12:05

        Про измерение батареек и про время работы написано по тексту


        1. iig
          16.02.2018 12:17

          Ну да…

          Датчик протечек.

          Построен на основе Wi-Fi модуля ESP-12E. Измерение происходит при помощи электродов, входящих в состав корпуса IP-65. Устройство работает от двух элементов питания AAA (или АА), время работы также составляет от 1 года.


          Как, узнать, жива ли батарейка в датчике? Датчик закинут под стиралку в прошлом году… Или в позапрошлом… Через полгода про него все забудут. А через полтора года случится то, ради чего его туда забросили, а он протух.


          1. the_bat Автор
            16.02.2018 12:19

            Есть способ узнать, но об этом в следующей статье. И да, корпус для этого вскрывать не нужно, и кнопок на нем тоже нет.


            1. Mogwaika
              16.02.2018 12:23

              Он будет противно пищать, пока не израсходует остатки батарейки или отправит команду перекрыть воду на всякий случай?


              1. the_bat Автор
                16.02.2018 12:25

                А Вы спрашивайте о забытом девайсе или о батарейках?
                Если Вы изначально о батарейках, то тоже все предусмотрено.


                1. Mogwaika
                  16.02.2018 12:39

                  – Знаешь, как заинтриговать?
                  – Как?
                  – Завтра скажу.


            1. iig
              16.02.2018 12:46

              Мой внутренний Альтшуллер заинтригован ;)


      1. batal
        16.02.2018 12:08
        +1

        ESP без проблем живет в спящем режиме очень долго.
        А вот MH-Z19 в спящий режим не увести (он прогревается како-то время) а жрет он много. Смысла связываться с батарейками никакого.


        1. the_bat Автор
          16.02.2018 12:10

          Конкретно в этом устройстве поэтому и нет батареек


  1. Kisa_ua
    16.02.2018 12:02
    +1

    Сама идея создания умного дома с требованием:

    Отсутствие аппаратного сервера («Центральный блок»).

    тупиковая ветвь развития.

    На Хабре статей о умных домах очень много, считаю что датчик СО2, температуры, состояние полит/не полит любимый фокус не применимо к понятию о умном доме. Веб камера направленная на ртутный градусник не может называться умным домом.
    Если мы хотим иметь умный дом, то мы должны им управлять и реагировать на датчики/сенсоры и в зависимости от сенсора это может быть включение света/отопление или же отключение воды или других приборов. А все это должно обрабатываться и управляться с некоего сервера аки «центрального блока». По этой причине, присоединяюсь ко всем комментариям выше, которые критикуют идею создания умного дома без серверной части.
    Как выше сказано — хобби это замечательно и тут главное что б было в радость.
    Но ИМХО уже много коммерчески успешных проектов на базе ESP. Выше уже упомянули Sonoff, который перепрошивается и позволяет навешивать ряд датчиков. На выходе имеем Wifi модуль + Сенсор + Реле. И все это довольно в небольшом бюджете. Увязывайте все пучком через «сервер» и это будет что-то большее похожее на умный дом. «Сервер» или дома на малиноподобных Pi или же на облачных платформах. Выбор зависит от степени паранои.
    На тот же сервер вешаем в нагрузку задачу отправки разного рода уведомлений о событиях происходящих дома или же никто не мешает настроить тот же Blynk.

    Хочеться реальных тестов на сколько хватит модулей при их автономной работе. Как я понял из статьи и комментариев, то время автономной работы это теоретические расчеты. Пока склоняюсь к тому, что всякого рода автономные датчики должны работать по рф433 или другим менее прожорливым по питанию технологиям. Но время не стоит на месте…

    За статью спасибо, ждем продолжения.


    1. Stalker_RED
      16.02.2018 19:20

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

      Меня это несколько удивляет, но я готов подождать и посмотреть что получится. Взять, к примеру, муравейник — центральный «штаб» отсутствует, но система в целом работает, и даст фору большинству умных домов.


      1. Kisa_ua
        17.02.2018 01:08

        В идеале критичные узлы должны иметь дублирование. По питанию, акку/бесперебойник; wifi/gsm. Но для комфортной/правильной работы/управление умным домом без центрального блока управления не обойтись.
        Опять же реализация таких вещей для дома, очень часто упирается в финансы, а так же уже существующую систему коммуникаций. Не всегда есть в нужном месте проложенное питание или слаботочка для повышения необходимого уровня надежности, как результат приходится чем то жертвовать.
        Каждый участок вне штатной ситуации должен уметь уйти в безопасный режим и иметь ручное управление.
        В природе очень много хороших примеров организации и как пример движение птиц/пчёл… то что у людей происходит на улицах и дорогах очень далеко до самоорганизации сравнимой с некоторыми животными.


  1. batal
    16.02.2018 12:05

    Играюсь дома с MH-Z19\MH-Z19B\SenseAir S8 LP и всевозможными датчиками влажности и температуры.

    Некоторые комментарии от меня:
    1) MH-Z19 греется до 30-35 градусов на открытом стенде. Это не может не влиять на DHT22.
    2) MH-Z19B греется еще больше (за счет того что измеряет в два раза чаще) — мало ли кому пригодится. У этого датчика настоятельно рекомендую отлключать ABC калибровку.
    3) DHT22 (AM2302) — на долгосроке не выдерживает никакой конкуренции. Стабльно через год у половины датчиков «откывает» датчик влажности. Начинает показывать или всегда 1%, или всегда 99%. Основано на десятке таких датчиков — валяются дома (надо выкинуть). При этом температуру показывают отлично.
    4) Я лично рекомандовал бы заменить датчики температуры и влажности на что-то от Sensirion (SHT20\21\30\31) — отличные датчики. Один такой уже почти год живет на улице — никаких проблем со табильностью.

    BME280 основываясь на своем опыте рекомендовать не могу — мой единственный экземпляр сильно врет по температуре.

    P.S. В идеале MH-Z19(B) заменить на SenseAir S8. На али не сильно дороже (36$) — но датчик сильно лучше.


  1. the_bat Автор
    16.02.2018 14:08

    Переименовал статью, чтобы название было более корректным


  1. Bonio
    16.02.2018 15:19

    Интересно посмотреть на схему, в особенности, как реализовано питание от двух батареек. Тоже хочу собрать батарейный датчик температуры/влажности/давления на улицу.


    1. batal
      16.02.2018 15:22

      Из личного опыта.

      От 18650 (на 3400) с отправкой раз в 7.5 минут ESP8266 (Wemos D1) прожила 4 месяца (c deep sleep само собой).

      Если нужные сроки от года — это либо переходить на NRF либо наращивать емкость батарей.


      1. Bonio
        16.02.2018 15:56

        Литий на мороз нельзя, только батарейки. И для отправки температуры интервал можно минут до 15 увеличить.
        ESP8266 тем и привлекательны, что для них база не нужна, достаточно точки доступа, которая есть у всех.


        1. Mogwaika
          16.02.2018 19:11

          Я прикрутил к датчику 26650 LiFePo4, вроде ему понравилось)))


      1. Alexeyslav
        16.02.2018 16:48

        Wemos D1… что-то знакомое. там стабилизатор на 3.3В неотключаемый и прожорливый(что-то в районе 1мА), что садит батарейку медленно но верно. Обойти стабилизатор и выдать свои 3.3В без выпайки встроенного тоже не выйдет — в таком режиме линейные стабилизаторы(отсутствие напряжения на входе, но есть на выходе) потребляют повышенный ток впустую. Поэтому надо менять на свой стабилизатор, с собственным потреблением тока порядка 1-10мкА и тогда ваш девайс заиграет красками, а не жалкие 4 месяца.


      1. Mogwaika
        16.02.2018 19:10

        Зимой или летом?


  1. SlPo
    16.02.2018 17:46

    На фото CO2 364ррм? Вы в лесу что ли меряли?


    1. the_bat Автор
      16.02.2018 17:47

      Нет, в офисе на ваське с открытым окном. Каждый раз когда падает — это как раз открытие окна.


  1. Igrek_L
    16.02.2018 17:48

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


    1. Gryphon88
      17.02.2018 15:39

      Тут помогает аналог натяжного потолка или он сам, в частном многоэтажном доме. Т.е. под трубами в кухне (обычно лопается гибкий шланг) натянуть п/э плёнку, и мерить уже на ней.