image

В 2016 году мне попалось на глаза упоминание ESP8266 в одном из комментариев на ГТ. Беглый поиск выдал мне несколько статей об этой замечательной железке. Это недорогое устройство с широким спектром возможностей для применения в умном доме полюбилось мне с первых же строк документации. Особенно после знакомства с прошивкой NodeMCU.

Я стал всем рассказывать о том, какая это замечательная железка. Но мой восторг всегда разбивался о простой вопрос: «Да, классная железка. А зачем она нужна-то?». Мышление инертно и консервативно. Мы привыкли жить в определенном окружении и не видим, зачем нам что-то менять. Не видим, что легко и просто можно чуть-чуть поднять уровень комфорта, не считаем нужным это делать.

Эта статьяочерк — не инструкция по разводке и паянию электрических схем. Думаю, большая часть читателей ГТ скорее меня может научить. Это просто перечисление тех задач, которые лично я решил за последние полгода с помощью ESP8266. Я очень надеюсь, что в комментариях вы допишете, какие решения формата «Умный дом» применили лично вы и как они улучшили вашу жизнь в доме (Прошу не ограничиваться ESP8266, т.к. это лишь один из многих инструментов, который может быть заменен).

0. Беспроводная розетка


Конечно. Первое, что я сделал — это розетку, управляемую по Wi-Fi. Простое устройство. Hello World в мире устройств, аналогичных ESP8266.

Что характерно — в интернете очень много информации о том, как сделать беспроводную розетку. Но очень мало реальных примеров использования такой розетки. Личный опыт подсказывает, что такая розетка не особо нужна… Гораздо востребованней розетка с таймером… Но их и выдумывать не надо — продаются в каждом хозмаге.

1. Беспроводной термометр и гигрометр


Конечно, это так же тривиально, как и Wi-Fi розетка. Но применение гораздо более полезное.
Данные с устройства используются для управления газовым котлом отопления (о нем расскажу ниже) и системой вентиляции — для включения увлажнителя.

NodeMCU прекрасно работает с DHT22 датчиком. Примечательно то, что даже Black Swift у меня не работал так ровно и стабильно с этим датчиком, как ESP8266+DHT22.



2. Модуль-дополнение к сигнализации Гранит для связи с вентиляцией


Вентиляция в моем доме обычно работает в автоматическом режиме: поднялась концентрация CO2 — включается. Опустилась — выключается. В этом режиме всё отлично. Т.к. если нет людей, концентрация низкая — вентиляция не включается.

Я также сделал расписание включения вентиляции. С целью автоматического проветривания с 22:00 до 23:00. Чтобы ложиться спать в свежей комнате. Однако! Если дома никого нет и включается вентиляция с отключенным подогревом воздуха, то свежий воздух от вентиляции достаточно резко меняет температуру и срабатывает сигнализация. Что очень неприятно… Звонок от сигнализации — это каждый раз легкий стресс. Не говоря уже о том, что она пугает соседей.

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

3. Подогрев стульчака унитаза Создание расслабляющей атмосферы в туалетной комнате


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

В этой ситуации мне не нравилось два момента:

1) Необходимость идти включать и ждать пока нагреется. А это около 5 минут…
2) Риск забыть и оставить включенным подогрев и сесть на стульчак, подпитанный 220 вольтами… Конечно, стульчак хорошо изолирован. Но я не доверяю на 100% даже хорошо изолированным устройствам, если мне или моей жене на них надо садиться голой пятой точкой…

В связи с чем была создана следующая система:

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

Теперь не нужно идти заранее и включать подогрев. Подогрев включается заранее. Через 5 минут в жилой комнате пищит таймер. И «пользователя» встречает прогретый туалет с включенным светом и приятной музыкой.

P.S. Чтобы было понятнее — туалет находится в отдельном техническом помещении. Оно чуть прохладнее, поэтому без подогрева очень не комфортно. Впрочем, считаю что и в обычном туалете такой мод — не лишнее.



4. Управление температурой воды в газовом котле


Современные умные котлы (во всяком случае тот дорогущий котел, что стоит у меня дома) — очень ограниченно умны.

Например, мой котел умеет следить за температурой в доме и поддерживать её… Но есть пара «но».

1) Датчик температуры проводной. Тащить его далеко не стали и поставили недалеко от котла… А именно — на кухне. На практике это означает, что если вы в лютый мороз готовите что-нибудь активно в духовке и на плите одновременно — котел считает что дома тепло и выключается. В итоге жилые комнаты благополучно остывают. Но это полбеды…

2) Котел не умеет управлять температурой воды. Вернее — он умеет следить чтобы она не нагревалась выше заданного лимита. Лимит задается механическим потенциометром. Что это значит на практике?

На практике это значит, что если вы выставили слишком высокую максимальную температуру, то котел будет нагревать батареи примерно до 90 градусов. Температура в доме превысит целевую на градус, а то и два… После чего котел вырубится, батареи быстро остынут, дом остынет до целевой температуры и продолжит остывать… Пока котел опять прогреет заледеневшие батареи — температура опустится на градус меньше целевой… И такая канитель — целый день… 2-3 градуса колебаний температуры в доме — это беда.

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

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

Поэтому была аккуратно проанализирована схема управления котлом (она на удивление примитивная). Разъединил дорожку, идущую от потенциометра к контроллеру. В разрыв впаял две ножки, чтобы можно было в любой момент джампером включить механический потенциометр. Ну а сейчас контакт, ведущий к контроллеру, вместо джампера подключен к ЦАП MAX518, который, в свою очередь, управляется Wi-Fi модулем.

Wi-Fi модуль через ЦАП регулирует температуру воды — на основе данных, получаемых с термометра из первого пункта. Зима только начинается, система тестируется… Но уже радует. Стабильная температура в доме — это очень приятно.



Вот так я использую Wi-Fi модули. На подходе есть еще несколько идей, но они пока не реализованы в железе. Поэтому о них решил не писать.

А как вы добавляете разумности своему дому?

P.S.
В личку и комментариях просили схему подключения котла.
Я не буду её выкладывать.
Схема очень простая, с подключением справится даже человек ничего не понимающий в электроннике.
НО! Если вы не понимаете в электроннике совсем — не лезьте в котел. Это опасно. Каким бы простым не было подключение — газовый котел это прибор повышенной опасности. Нельзя в него лезть тупо следуя инструкциям. Надо четко понимать что и зачем делаешь.
Если же вы понимаете хоть немного — вам не составит труда разобраться самостоятельно и понять где и что подключать.
Поделиться с друзьями
-->

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


  1. CyberBot
    30.10.2016 20:36
    +3

    А исходники где?


    1. AllexIn
      30.10.2016 20:43

      Так реализация примитивная же.

      Например, самое сложное — управление котлом. Пять модулей. Каждый по 50 стандартных строчек кода:
      1) Запуск веб сервера, чтобы отдавать текущее состояние и принимать запросы на изменение температуры.
      2) Управление ЦАП
      3) Запрос температуры по HTTP
      4) Сохранение/Загрузка конфига в файл
      5) Цикл который раз в 10 секунд проверяет состояние переменных и меняет мощность котла

      Каждый модуль предельно простой(сложную логику ESPшка не проглотит). Чуть ли не калька с документации по NodeMCU.
      Если что-то конкретное интересует — спрашивайте, расскажу как делал.


      1. DjPhoeniX
        30.10.2016 21:05
        +4

        сложную логику ESPшка не проглотит


        Позвольте! Мне кажется, вы не до конца оценили её мощности. При всём уважении к языку Lua (который лёг в основу многих игр), для Embedded он подходит чуть хуже, чем отвратительно. Но если отойти от отличной системы прототипирования и экспериментов NodeMCU (которая как раз использует Lua), и взглянуть на оригинальный SDK, мы увидим мощный процессор (160 мегагерц, КАРЛ!), 50 килобайт юзерспейс-памяти, и FreeRTOS с тасками, мьютексами и прочими прелестями. Не спорю, это требует гораздо большего скила, но и даёт гораздо больше возможностей.


        1. vvzvlad
          30.10.2016 21:15
          +1

          для Embedded он подходит чуть хуже, чем отвратительно.

          Обоснуйте?

          сложную логику ESPшка не проглотит

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


          1. DjPhoeniX
            30.10.2016 21:46
            +1

            Обоснуйте?

            1. Интерпретируемый язык всегда медленнее компилируемого. Да, я знаю про .lc, но это лишь байткод, ни о каком JIT речи даже близко не идёт.
            2. Следствие пункта 1 — рантайм. Очень тяжёлый в масштабах микроконтроллеров.

            Я считаю, что для микроконтроллеров (если мы говорим о серьёзных разработках, а не наколенных «Hello World»-ах) оптимальны языки максимально нативные. Это Си, Ассемблеры, немного Плюсы (но без фанатизма). Языки типа Lua и JavaScript создают больше проблем, чем решают. Однако основы работы с железом (GPIO, PWM, и прочие базовые навыки) на них отработать можно.


            1. vvzvlad
              31.10.2016 01:16
              +3

              Медленнее, чем другие языки = отвратительно подходит? Может в просто не умеете их готовить?
              Да, на самом lua не получится сделать драйвер протокола с жесткими временными задержками. Но такие вещи выносятся за пределы луа, пишутся на си(как, например, сделано в драйвере I2C для nodemcu), или вообще на вспомогательный микроконтроллер реального времени(как сделал я в Iuppiterboard).
              Про .lc, кстати, говорить вообще некорректно — nodemcu не интерпретирует сами файлы с кодом, он все равно при запуске сначала компилирует их их в байткод, а только потом исполняет(с чем связано забавное ограничение на размер запускаемого файла с кодом в nodemcu — он должен быть меньше половины свободной кучи на момент запуска, потому что нужна память на загрузку файла и на размещение в памяти байткода из него получаемого). Соответственно, сравнивать не с чем, единственный пусть исполнения — байткод.

              А по факту, кроме протоколов и некоторых специфических вещей реалтайм на IoT(а мы же говорим про интернет вещей и ESP8266, да?) не нужен — достаточно просто отсутствия задержек, заметных человеку(меньше 100-200мс). Это луа обеспечивает. А задержки на датчиках вообще не критичны. А переносимость кода(=возможность написания и отладки на компе) и легкость написания чего-то стоят.


              1. DjPhoeniX
                31.10.2016 09:17
                +2

                Возможно, мы пока что говорим о разных вещах. Есть несколько критериев, которые надо учитывать для реальных устройств (production- и consumer-ready):

                1. Безопасность. А именно нормальный TLS до сервера (при наличии удалённого управления), более-менее сложная в разборе прошивка (.lc очень хорошо декомпилируются в исходное состояние, или близко к нему), и так далее. В NodeMCU нормальный TLS пока не завезли (но с обновлением до 2.0.0 появится mbedTLS — https://github.com/nodemcu/nodemcu-firmware/pull/1435).
                2. Стабильность. Достаточно просто взглянуть на список открытых багов. И недавно закрытых.
                3. Скорость отклика. Вы удивитесь, но путь от получения IP-пакета до разобранного сообщения в Lua-callback достаточно длинный. А если контроллер должен его ещё и пережевать, и отправить ответ — время одного round-trip выглядит вообще непростительно. 300-400ms против 5-10 выглядит даже не смешно.
                4. Возможность обновления «по воздуху». Перезаписывать файлики — это просто трэш! Я пытался написать стабильно работающий модуль обновления, но каждый раз сталкивался то с багами в spiffs, то с глючной флэш-памятью, то с недостатком оперативки на распаковку 40-50кб скриптов (вполне нормальный объём для приличного проекта). А, и помним про пункт 2 — нам ещё и бинарник не обновить. В итоге был использован загрузчик rBoot, и две области памяти — одна могла записать (в потоковом режиме) другую область (включая бинарь и область файловой системы), пересчитать контрольные суммы и после этого перезагрузиться. Это работало, да, но сколько нервов мне стоило пробросить необходимые API в Lua…

                В общем, за 2 недели до сдачи проекта я пошёл к начальству и сказал, что проект с таким количеством костылей я в продакшен-серию отдавать отказываюсь. За эти 2 недели я его переписал на голом C (на RTOS SDK), и жить стало гораздо легче.


                1. AllexIn
                  31.10.2016 09:21

                  Ключевое слово — production.
                  Всё что вы описали актуально для продуктов, заточенных на массовость, а значит на максимальную эффективность использования всех ресурсов.
                  Для единичных разработок Lua хорошо подходит.

                  Кстати, подскажите, как вы сделали обновление прошивки по воздуху на С?


                  1. DjPhoeniX
                    31.10.2016 09:28

                    актуально для продуктов, заточенных на массовость… Для единичных разработок Lua хорошо подходит.
                    Двумя постами выше я это и писал:
                    если мы говорим о серьёзных разработках, а не наколенных «Hello World»-ах

                    Про обновление — да так и оставили rBoot (https://github.com/raburton/rboot), он очень даже хорош, если его правильно понять. Возможность temporary boot, наличие контрольных сумм и прочие тонкости очень хорошо спасают.


                    1. AllexIn
                      31.10.2016 09:29

                      Двумя постами выше я это и писал:
                      «Hello World» не синоним DIY.
                      Основное отличие DIY от продакшена — цена в человеко-часах важнее чем цена железа. В то время как в продакшене наоборот. Не в сложности задач отличие.

                      Про rBoot понял, спасибо.


                1. vvzvlad
                  31.10.2016 18:13
                  +1

                  300-400ms против 5-10 выглядит даже не смешно.

                  У меня на уровне 100-150ms.

                  Перезаписывать файлики — это просто трэш! Я пытался написать стабильно работающий модуль обновления, но каждый раз сталкивался то с багами в spiffs, то с глючной флэш-памятью, то с недостатком оперативки на распаковку 40-50кб скриптов (вполне нормальный объём для приличного проекта)

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

                  В итоге был использован загрузчик rBoot, и две области памяти — одна могла записать (в потоковом режиме) другую область (включая бинарь и область файловой системы), пересчитать контрольные суммы и после этого перезагрузиться. Это работало, да, но сколько нервов мне стоило пробросить необходимые API в Lua

                  Ух ты, а код можете показать?

                  Ну в общем, да, как правильно написали ниже — Hello world, DIY и продакшен это три разные вещи. Если это устройство под мелкую серию и/или есть возможность подкрутить ручками, то требования снижаются. Но в то же время это может быть вполне сложная вещь, которую никак нельзя назвать Hello world.


                  1. DjPhoeniX
                    01.11.2016 11:16

                    У меня на уровне 100-150ms.
                    Это зависит от многих факторов. В частности, жирность логики.
                    У меня чуть меньше обьем, но проблем не возникает вроде. Скачать файлы, сохранить с другим расширением, посчитать контрольную сумму, если совпадает, удалить старые, переименовать новые, перезагрузиться.
                    Вот на этапе «переименовать и перезагрузиться» у меня и возникали проблемы. Вроде как все операции завершились успехом, все flush-ы отработали и кэши очистились… А после перезагрузки нет-нет да один-два файла останутся со старым именем. И, соответственно, фейл.
                    Ух ты, а код можете показать?
                    К сожалению, не могу. Могу подробнее описать логику (в личку), а вот код был написан для рабочей платформы, соответственно, неразглашение, права, и все дела…


          1. AllexIn
            30.10.2016 21:46

            Вполне возможно что я ниасилил.
            Была мысль перенести систему вентиляции c Black Swift на ESP.
            Для этого мне не хватало поддержки LCD и USB.
            LCD без проблем поднял на i2c.
            А вот попытки поднять USB успехом не увенчались*. Естественно пробовал завести USB на нативе, а не lua.
            Так что я благополучно на это плюнул и решил использовать ESPшку для более простых задач. Для которых ИМХО он идеален.
            Например, в прошлом году делал гирлянду на дом, которая рулилась с малинки.
            В этом году планирую сделать интерактивную, с управлением по WIFi. Планирую дать возможность прохожим порулить гирляндой.

            * — позднее узнал, что есть примеры успешной реализации софтверного USB-host на базе ESP8285.


        1. Hellsy22
          31.10.2016 03:33

          У меня нет уважения к языку Lua, особенно в варианте NodeMCU — это бейсик недоделанный. Однако и существенных проблем с ним нет. Памяти для простых задач хватает с большим запасом. Плюсы интерпретатора очевидны: удобно отлаживать, а обновлять девайсы можно по воздуху.


      1. BrainFree
        02.11.2016 09:44

        Если не секрет, какая модель\фирма котла?
        Хочу сделать подобную вещь с Protherm Gepard, если правильно понял, то большинство котлов умеют подключать внешний\внутренний датчики температуры и на основании их показаний делать какие то выводы.
        Оригинальные датчики Protherm стоят в районе 5тр, насколько правильно котел реагирует на их показания непонятно, внутренний обычно ставят в самую холодную комнату и тогда результаты вроде бы получаются адекватными.
        Главная проблема в том что датчики используют закрытый протокол для общения с котлом и можно ли штатно (без впайки в схему котла подключить сторонний контроллер\датчик) честно говоря не знаю. То что видел на эту тему — несколько колхозное (по мне) подключение питания котла через реле термодатчика.

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


        1. AllexIn
          02.11.2016 09:55

          Vitopend 100.
          К нему есть всякие внешние термостаты. Проблема в том, что там нет никакого умного протокола. Там тупо в лоб: термостат замыкает контакты когда надо греть и выключает, когда не надо.
          То есть, каким бы крутым не был термостат — он не сможет управлять температурой воды.
          Да я и особо разбираться не стал. Комплектующие и настройка неадекватно дорогие.
          Исправить схему, чтобы вывести три контакта наружу заняло минут 30. И то, большую часть времени я потратил на то, чтобы аккуратно перерезать дорожку и припаять джампер.

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


  1. zvirusz
    30.10.2016 21:27
    +2

    Я от вот такой штуки в восторге:

    Вот чуть более удачный вариант реализации (меньше паять): https://github.com/X-Ryl669/wifi_display


    1. bazis13
      30.10.2016 21:54

      Киндл надо научить такие странички показывать. Там и wifi сразу есть.


      1. zvirusz
        31.10.2016 14:38

        С киндлом не уверен, что легко и просто выйдет, а вот какой-нибудь Onyx — более реально, там android же.


    1. extempl
      31.10.2016 07:41

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


      1. tmin10
        31.10.2016 12:20

        На али вон продают, около 4к стоят.


      1. zvirusz
        31.10.2016 14:41

        На Али заказывал, вот этот. Плюс esp12e и блок питания, около $60 в сумме вышло, но это ещё без корпуса, фиг знает сколько на него уйдёт.


      1. grigorygn
        02.11.2016 10:17

        Ценник, блин, конский у такого дисплея. Можно простенький смартфон взять за эти деньги — сразу готовый девайс в корпусе.


    1. safriq
      02.11.2016 09:44

      Кста, очень крутая идея. Не надо вечно лазить по инетам в поисках прогнозов, вывел на стену и вуаля.


  1. safer
    30.10.2016 21:47
    -4

    Завёл домашнюю прислугу — нужда в «умном доме» отпала.


    1. Utopia
      30.10.2016 22:57

      Завел лошадей — нужда в бензине для автомобиля отпала!


      1. alekssaff
        02.11.2016 12:18

        Завел жену — нужда отпала.


    1. AllexIn
      31.10.2016 10:15

      Я не понимаю какие из перечисленных задач вы предлагаете решить с помощью прислуги.
      Ну ладно, положим включать увлажнитель смогут.
      И свет с музыкой в туалете… И даже про подогрев сиденьки я моуг понять, хотя ИМХО дичь…
      Но вот котлом управлять они врядли смогу также эффективно как контроллер.


      1. safer
        31.10.2016 16:56

        Под «умным» домом следует понимать систему, которая обеспечивает безопасность, комфорт и ресурсосбережение для всех пользователей(Взято из интернета). Вышеуказанные функции ранее выполняла прислуга. То, что Вы изменили электрическую схему котла, то подвергаете опасности себя и окружающих людей. У любого котла есть интерфейс по управлению им. От этого, по моему мнению, нужно отталкиваться для полёта инженерной мысли. И конечно, хотелось бы в статье увидеть, как было раньше и какой эффект получили (например в ресурсосбережении).


        1. AllexIn
          31.10.2016 17:03

          По поводу безопасности:
          Замена механического потенциометра на электронный не меняет безопасность котла.
          Впешательство ограничивается подключением к трем пинам:
          Земля
          +5
          Вход контроллера для считывания значения с потенциометра.

          Что может произойти со всем этим?
          1) Замыкание Земли и +5 обрабатывается на уровне защиты котла и приведет к перегоранию предохранителя и выключению котла из строя

          2) Замыкание земли или +5 на вход контроллера. Котел будет работать на максимуме или выключится. Ничего страшного.

          И, пожалуй, всё. В рамках моего вмешательства котел опаснее не стал.

          По поводу эффекта:
          Не скачет температура в доме. Она плавно меняется примерно в пределах 0.3 градуса при изменении температары на улице.
          Энергоэффективность не мерил, ибо она не интересует. Да и не видно причин, с чего бы ей особо менятся.


    1. TheFishka
      31.10.2016 18:29

      ага, и стульчак без 220 прогреет


      1. stigory
        01.11.2016 07:14
        +1

        Хорошо вышколенная прислуга, может не только стульчак прогреть, но и наигрывать на скрипке приятные мелодии под дверью пока вы заняты процессом. Да и голосовые команды распознает не хуже Siri. И от падучести интернета мало зависит. И подзаряжается автоматически сама. Сплошные преимущества.


  1. utya
    30.10.2016 23:59

    В течении 3 лет юзал умные датчики на базе arduino+nrf24l01, плюсов много но и минусов хватает, хотел узнать у людей кто активно юзает esp8266. как обстоят дела с wifi сетью когда это чудо в сети?


    1. NLO
      31.10.2016 00:23

      НЛО прилетело и опубликовало эту надпись здесь


      1. AllexIn
        31.10.2016 09:49

        AMS1117 вообще не греется, во всяком случае я никакого нагрева не замечаю.


        1. hogans
          31.10.2016 11:28

          включать пробовали?


          1. AllexIn
            31.10.2016 13:33
            +1

            В каком смысле «включать»?
            У меня все 4 обозначенных девайса от AMS1117 питаются.
            Вот сейчас специально взял ИК термометр и померил температуру в корпусе одного из устройств. Внутри температура 32 градуса. ТЕмпература AMS1117 36. Это греется?


      1. vvzvlad
        31.10.2016 18:15

        Единственный видимый и огромный недостаток как по мне — это 3.3в, а значит либо линейный стабилизатор и грелка

        Поддерживаю, ощутимо не греется. Нагрев ESP пальцем ощущается, а вот стаба(LM1117) нет. Там ESP, atmega, светодиод.


    1. Hellsy22
      31.10.2016 03:34

      Я выделил им отдельный канал, проблем со связью нет.


  1. tmin10
    31.10.2016 02:03

    Меня у ESP8266 волнует такой момент: как долго сможет прожить устройство состоящее, допустим из батарейки, ESP8266 и кнопки? У Amazon Dash это 1000 нажатий, но если устройство будет спать (а оно должно просыпаться только по клику для сохранения батареи), то как быстро оно сможет присоединиться к сети и отправить команду? У смартфона подключение к WiFi часто занимает несколько секунд, что непримлимо для выключателя.


    1. vasimv
      31.10.2016 03:00

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

      Делайте простейший командный пульт с каким-нибудь NRF24LE1 (nrf2401 совмещенный с 8051 контроллером).


      1. PROCODER
        31.10.2016 07:14

        «до 20 секунд» верно подмечено, прямо как у провайдеров любимое — «до». Вот реальные логи аптайма с момента выхода из режима сна и до ухода в сон моего Wi-Fi логгера на ESP8266.

        В среднем до 5 секунд, отдельные выбросы до 8-ми. Так что да, для выключателя при малой скважности использования все равно многовато времени такая дежурка отнимет. Но при редком, включил и ушел, уже терпимо.


      1. ByTE1974
        31.10.2016 07:29

        ESP8266 еще и сама по себе медленно подсоединяется, до 20 секунд уходит.

        Отключаем чтение/запись WiFi конфигурации, которые происходят за сценой, и WiFi подключается за 3-5 секунд при нормальном уровне сигнала.


        1. AllexIn
          31.10.2016 07:32

          Верно. При жестко заданном конфиге никогда не видел, чтобы подключение длилось более 5 секунд.
          Но это все равно много для выключателей освещения или аналогичных задач.
          С другой стороны, если у нас есть выключатель, значит есть и питание. Раз есть питание — зачем усыплять модуль?

          Плюс не могу понять, каким образом должен модуль получить сигнал на включение выключателя, если он спит и к сети не подключен…


          1. tmin10
            31.10.2016 12:22

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


    1. shara
      31.10.2016 20:26

      как быстро оно сможет присоединиться к сети и отправить команду?

      Меньше секунды


      1. PROCODER
        31.10.2016 21:42

        любопытный вариант.


  1. stigory
    31.10.2016 07:10
    +1

    Ну, раз уж ваша статья — это в основном размышления на тему, то позволю себе поделиться своими размышлениями.
    На мой взгляд, кардинальная ошибка — пытаться заставить котел работать, учитывая конечные требования. Прямая функция котла — обеспечить стабильный теплоприток в систему. Чаще всего в буферную емкость. И с этой задачей он справляется на ура. Потому что для нее он и проектировался. Кстати, чем больше емкость — тем ровнее будет работать котел.
    Но, конечное требование, предъявляемое потребителем — тепло в помещении. И эту задачу обеспечивает второй контур, состоящий из циркуляционного насоса и теплообменников (батареи, теплый пол, фанкойлы). Таким образом, во всех подобных системах отопления присутствуют две функции: притока тепла и его расхода. И выполняться эти функции должны независимо.
    Это не значит, что надо поставить два независимых контроллера. Но логику управления лучше не смешивать.
    Котел смотрит в бак-аккумулятор и реагирует на понижение температуры теплоносителя в нем. Обычно это очень плавный процесс и для котла это самое то. Его больше ничего не должно заботить, кроме «дай тепла». А системы управления отоплением помещений должны смотреть в каждый датчик отдельно и решать сколько тепла израсходовать в каждом конкретном случае. И их не волнует откуда берется тепло.
    При таком подходе задачи автоматизации и сложной балансировки решаются гораздо легче.


    1. AllexIn
      31.10.2016 19:32

      Предлагаете в каждом помещении воткнуть по управляемому клапана?
      Решение шикарное и даст отличный результат. О нем я и подумал изначально.
      Но тут есть проблема — я не смог найти электрический кран под такую задачу. Просто клапаны есть, но открыть/закрыть — вариант не очень. А с регулировкой открытия я не нашел. Колхохить на базе обычного крана не вариант — от постоянного воздействия он быстро потечет.


      1. 4ebriking
        31.10.2016 23:36

        Как вариант на этапе проектирования системы — батареи в помещениях расположить по R-2R схеме и набирать нужную мощность напр 4-мя клапанами (16 градаций). Да хоть просто все на одну батарею но каждый со своей шайбой (так же кратно двум диаметры). Но, мне кажется — в этом случае можно влететь в трудновыявляемые и ещё более трудноустранимые неприятные стохастические автоколебания в общей системе. Их же запросто поймать и если из общего бака в кажуду комнату отдельный циркуляционный насосик, которым уже рулить оборотами… Хотя в самой идее — котёл греет бак, а расходом занят другой контроллер — что-то есть.


      1. stigory
        01.11.2016 07:03

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

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

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

        Если же речь о теплых полах, то вполне хватит управляемого запорного клапана: электромагнитного или шарового — решать вам. Я лично предпочитаю электромагнитные. Но только для небольших систем с малым перепадом давления. Но не стоит забывать, что нормальная система «теплого пола» подразумевает правило «одно помещение — один контур». В противном случае начинаются костыли и мракобесие. А так же, если общая площадь полов превышает 100-150 кв.м, или длины отдельных контуров превышают 50 метров, то придется всерьез посчитать гидравлику в проекте. Иначе опять «бубен, костыли и мракобесие» гарантированы.

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

        «Открыть/закрыть — вариант не очень». Вариант вполне нормальный. Не забывайте — система инерционна, остывает постепенно. Поэтому дискретность работы клапана практически не заметна. А время перехода состояния у электромагнитных клапанов очень мало.

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

        Первое в выдаче гугла (с этим производителем я не знаком):
        клапан http://wattsindustries.ru/catalog/11/210/
        сервоголовка http://wattsindustries.ru/catalog/5/141/
        термоголовка http://wattsindustries.ru/catalog/311/22/

        Вот вам направление к размышлению.


        1. AllexIn
          01.11.2016 08:46

          Спасибо.

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


  1. Akisame
    31.10.2016 07:20

    А какие есть аналоги которые используют Bluetooth LE или Z-Wave например?
    Интересуют беспроводные устройства, с минимальным потреблением батарейки, легко программируемые (т.к. опыта в программирования микроконтроллеров нет) и конечно же доступной ценой (что-то прилично требований набралось =) ).


    1. past
      31.10.2016 11:06

      Есть z-uno для z-wave.


    1. vasimv
      02.11.2016 09:19

      Z-Wave — от 15 баксов за модуль, причем купить мелкими партиями практически невозможно, SDK — закрытый. Есть, конечно, Z-Uno, но цена неприемлимая для таких вещей, да и габариты великоваты.


      1. Akisame
        02.11.2016 13:20

        А какие альтернативы?
        Хочется автоматизировать кое какие вещи по дому, а 15$ за модуль + еще сотню за плату для разработки перебор.


        1. vasimv
          02.11.2016 16:14

          Если требуется беспроводная связь, то ESP8266 наиболее приемлима. Есть небольшое количество альтернативных модулей, но и цена выше и доступность/качество SDK хуже — типа модулей на realtek 8711 (RT8710), EMW3165 и т.д. Для настоящих джедаев — имеется какое-то количество микроконтроллеров с собственным приемопередатчиком вроде CYRF69103 (используется в DSM/DSM2/DSMx аппаратуре радиоуправления), но придется самому плату рисовать (либо искать готовые модули в виде приемников/передатчиков от RC игрушек) и радиосвязь самому программировать.


  1. Kot57
    31.10.2016 07:20
    -2

    Я не программист, да и вообще всю школу прогулял, ломал игрушки и прочее. ESP8266 очень интересная штуковина, но писать код не по мне, пока. И я нашел в сети готовую прошивку, которою один раз залил, а потом через браузер можно добавлять или удалять датчики, термостат, логику и много еще чего, а потом все обновляется через OTA по Wifi. Также мне понравилась работа системы умного дома MajorDoMo с этим модулем. Как сюда картинки грузить пока не понял далее пара фото с моего яндекс диска

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


    1. ra3vld
      31.10.2016 09:42
      +2

      А я в восторге от ESPEasy:

      • бесплатная,
      • опен сорсная,
      • настраивается через веб интерфейс,
      • поддерживает кучу датчиков,
      • кучу протоколов,
      • отдельные датчики могут взаимодействовать между собой,
      • в веб интерфейсе можно создавать правила (пока что руки не дойдут до MajorDoMo и вся несложная логика автоматизации делается прямо на самих модулях)


      http://www.letscontrolit.com/wiki/index.php/ESPEasy
      https://github.com/ESP8266nu/ESPEasy
      Сейчас из-за того что они криво настроили редиректы на на новом сайте — фиг чего найдешь в вики через поисковики.


  1. Dark_Rider
    31.10.2016 09:51
    -1

    Умный дом конечно хорошо, но почему то на ГК все думают (впрочем, логично, это же ГК), что всем почему то нужно именно то, что они сделали.
    IoT еще находится в зачаточном состоянии, и сейчас многие вещи делаются в буквальном смысле на коленках, на костылях и прочем, это вообщем то нормально, но многие забывают, что ДОМ изначально нужен для того, что бы жить там, а не что бы делать из него выставку достижений.
    И ни о какой инерции нет и речи, вам это удобно-делайте, никто не против.
    У меня лежит пару модулей, готовы пару плат, которые вообще не относятся к умному дому, вот что мне делать?


    1. AllexIn
      31.10.2016 10:21
      +1

      Конечно дом чтобы жить, а не для выставки достижений. Поэтому речь идет не о том, что-еще-сделать-для выставки, а о том, что еще можно сделать для собственного комфорта и жизни.

      По поводу инеркции — не согласен с вами.
      Из личного опыта: никому из знакомых не приходит в голову сделать подогрев сиденьки. И саму идею большинство воспринимает с недоумением(разве что девушки некий интерес проявляют).
      Но при этом нет ни одного человека, который бы воспользовался нашим туалетом и не захотел бы себе такое же.
      Что это как не инерация мышления и консерватизм?


      1. Dark_Rider
        31.10.2016 13:33

        Эм, как бы пояснить-инерция мышления не просто так возникла, она отсеивает лишнее.
        Вы захотели, сделали.
        Мне эта история напоминает вот такую тему на хабре:
        https://habrahabr.ru/post/313946/
        Человеку было не в тяпку в 2107 все это пихать, но это не умаляет его работы.

        Вы доказываете, что кто-то, кто не согласен с вашим мнением, консерватор?
        Вы больше удивлены, что с вашим мнением не согласны, это проблема всех гиков кстати, будут убиваться и биться лбов, когда их поделки критикуют.
        Почему вы уже не сделали поющий унитаз с трансляцией смываемого содержимого в интернет?
        Вот когда кто-то из ваших знакомых СДЕЛАЕТ такой же, а не ЗАХОЧЕТ такой же, тогда и поговорим.


        1. AllexIn
          31.10.2016 13:49

          Вы что-то путаете.
          КОнсерватизм — это держаться за старое и не видеть преимуществ новых решений.
          Согласие с моим мнением или не согласие тут не при чем.
          Поющий унитаз с инстаграммингом дерьма — это идиотизм. И консерватизм тут не при чем.
          Если вы хотите покритиковать какое-то из моих решений — велкам. Но я пока не вижу критики решений в ваших комментариях. ТОлько обсуждение консерватизма и инерции мышления.


          1. Dark_Rider
            31.10.2016 14:20

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


            1. AllexIn
              31.10.2016 17:18

              Я не принимаю критику, потому что её нет. :) Во всяком случае от вас.
              Первое сообщение, где критика появилось.

              Например, в квартире, может и не быть нужды в обогреве. Видел планировки, где на маленький таулает стояло 2-3 секционный радиатор, в итоге там парилка была. Там действительно нет смысла в подогреве.
              Если же в туалете держится температура 22.4 — стульчак будет весьма не комфортной температуры.

              Но, опять же, Вы почему то решили, что я считаю всех, кто не хочет стульчак с подогревом консерваторами и обвиняю их в инерционном мышлении.
              Я это уже говорил, но вы похоже не хотите читать, поэтому повторюсь:
              Консерватизм он не в том, чтобы не использовать все-все-все новинки. Он в том, чтобы отвергать новинки просто потому что «раньше и без них хорошо жили».


  1. sneka
    31.10.2016 09:53

    так так таааак. А алгоритм пересчета внешней температуры в температуру воды в котле?


    1. AllexIn
      31.10.2016 09:59

      Так ничего умного же.
      Задается максимальная температура. 23.4, в моем случае.
      Задается диапазон регулирования, 1.4 градуса для 0 и до 0.5 для -20.
      Контроллер устанавливает температуру воды в котле от 0 до 100%, в зависимости от текущей температуры в помещении и текущего диапазона.
      То есть при 0 на улице и 22 градусах и ниже в помещении будет 100% нагрева, при 23.4 — будет 0% нагрева.
      При -20 на улице будет 100 на 22.9 и 0% на 23.4.
      Т.к. мощность падает при приближении к 23.4 — эта температура никогда не достигается в нормальной ситуации.
      Держится где-то стабильно в районе 23.2.
      При сильных морозах еще не тестировал.


      1. frizz
        31.10.2016 14:17

        думается, что PID-контроллер даст лучшие результаты в вашей ситуации.


        1. AllexIn
          31.10.2016 17:10

          Так у меня и реализован по сути PID-регулятор.


      1. sneka
        31.10.2016 15:12

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


        1. AllexIn
          31.10.2016 16:36

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


  1. mihmig
    31.10.2016 15:26
    +1

    У Вас на фото отображение концентрации CO, а в статье о её реализации ни слова…
    Какой датчик, где лучше брать?


    1. AllexIn
      31.10.2016 16:55

      У меня вот этот:
      https://habrahabr.ru/company/masterkit/blog/248405/

      О СО2 и вентиляции в статье не упоминал, потому что это отдельное сложное решение на базе Black Swift. Хотел бы о нём когда-нибудь рассказать отдельной статьей, т.к. в рамках этой статьи никак не влезть.
      Почему когда-нибудь? Потому что система работает год и всё еще есть места, которые я бы хотел улучшить. Планирую написать статью, когда всё будет готово.


    1. alemv
      01.11.2016 15:53

      Почитайте вот здесь:
      https://geektimes.ru/post/281498/#comment_9632870


  1. CmpeJ1ok
    31.10.2016 16:38
    +1

    с помощью ESP8266 можно то… можно другое… господа хорошие — где исходники, фото, схемы подключения и реализации ваших идей: какие датчики использовались, какие подводные камни были, что планируете доделать в ходе эксплуатации, а так этот материал больше похож на: «вот такое сделали за бугром, а я хочу или уже запилил у себя тут», а на вопрос: «выложите код» — та тююю, оно вам надо?! «Так реализация примитивная же.» Посему раз сами предложили: «спрашивайте, расскажу как делал» — спрашиваем, как делали?!

    ЗЫ
    может придется отдельную статью написать с полным обзором по вашим девайсам, зато не вилами по воде будет


    1. AllexIn
      31.10.2016 16:43
      +2

      Да статья получится уровня: как сделать Hello World на ESP.
      Я понял вас, подумаю как рассказать об этом всём интересно.


  1. burundukh
    31.10.2016 16:43

    /sarcasm_mode «1»

    Суть российской автоматизации умного дома — туалет на улице холодный.

    /sarcasm_mode «0»


    1. AllexIn
      31.10.2016 16:49

      Туалет теплый, стульчак холодный. :) А в остальном Вы на 100% правы.
      Вообще, туалет в частном доме, особоенно если он там изначально не предполагался — это сложная и геморная тема. Как технически, так и юридически.


  1. akubintsev
    31.10.2016 18:27

    Чтобы сделать «умный дом» нужно обзавестись для начала самим домом. А в совковой квартире всё перечисленное делать практически лишено смысла, тем более для тех, кто арендует.


    1. burundukh
      01.11.2016 15:08

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


  1. grigorygn
    02.11.2016 10:02

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


    1. AllexIn
      02.11.2016 10:03

      А можете привести примеры задач, для которых нужно управление из интернета?
      Я вот у себя таких задач не увидел вообще.


      1. grigorygn
        02.11.2016 10:11

        Я думаю вариантов может быть масса.
        У меня была например необходимость ограничить доступ к телевизору и интернету удаленно. Роутер отключался просто через реле. Для ESP была создана отдельная сеть с отдельным роутером (чтоб не отрубить и управление вместе с инетом :) ).


        1. AllexIn
          02.11.2016 10:15

          «Я думаю вариантов может быть масса.»
          Ага. Вот весь интернет пестрит примерами как сделать WiFi розетки, а в качестве применения отговорка про «может быть масса».
          Но на практике оказывается, что массы нет и есть разве что несколько очень индивидуальных потребностей.


          1. grigorygn
            02.11.2016 10:41

            А у вас в обычные розетки что включено? Думаю то, что надо именно вам, нет стандартного набора, у каждого свои погремушки.

            А если нужен живой пример, то например можно удаленно включить чайник или кофеварку, чтобы по приезду домой (или в контору) самовар уже закипел. Удобно? Думаю что да.
            Можно так же обогреватель включать удаленно, чтобы прийти уже в прогретое помещение.