В 2016 году мне попалось на глаза упоминание ESP8266 в одном из комментариев на ГТ. Беглый поиск выдал мне несколько статей об этой замечательной железке. Это недорогое устройство с широким спектром возможностей для применения в умном доме полюбилось мне с первых же строк документации. Особенно после знакомства с прошивкой NodeMCU.
Я стал всем рассказывать о том, какая это замечательная железка. Но мой восторг всегда разбивался о простой вопрос: «Да, классная железка. А зачем она нужна-то?». Мышление инертно и консервативно. Мы привыкли жить в определенном окружении и не видим, зачем нам что-то менять. Не видим, что легко и просто можно чуть-чуть поднять уровень комфорта, не считаем нужным это делать.
Эта
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)
zvirusz
30.10.2016 21:27+2Я от вот такой штуки в восторге:
Вот чуть более удачный вариант реализации (меньше паять): https://github.com/X-Ryl669/wifi_displayextempl
31.10.2016 07:41А где брали дисплей (вы же реализовали или просто планируете?)?
Цена немного кусается, надо бы туда столько всего напихать сверх показа погоды, чтоб она (цена) себя оправдала.zvirusz
31.10.2016 14:41На Али заказывал, вот этот. Плюс esp12e и блок питания, около $60 в сумме вышло, но это ещё без корпуса, фиг знает сколько на него уйдёт.
grigorygn
02.11.2016 10:17Ценник, блин, конский у такого дисплея. Можно простенький смартфон взять за эти деньги — сразу готовый девайс в корпусе.
safriq
02.11.2016 09:44Кста, очень крутая идея. Не надо вечно лазить по инетам в поисках прогнозов, вывел на стену и вуаля.
safer
30.10.2016 21:47-4Завёл домашнюю прислугу — нужда в «умном доме» отпала.
AllexIn
31.10.2016 10:15Я не понимаю какие из перечисленных задач вы предлагаете решить с помощью прислуги.
Ну ладно, положим включать увлажнитель смогут.
И свет с музыкой в туалете… И даже про подогрев сиденьки я моуг понять, хотя ИМХО дичь…
Но вот котлом управлять они врядли смогу также эффективно как контроллер.safer
31.10.2016 16:56Под «умным» домом следует понимать систему, которая обеспечивает безопасность, комфорт и ресурсосбережение для всех пользователей(Взято из интернета). Вышеуказанные функции ранее выполняла прислуга. То, что Вы изменили электрическую схему котла, то подвергаете опасности себя и окружающих людей. У любого котла есть интерфейс по управлению им. От этого, по моему мнению, нужно отталкиваться для полёта инженерной мысли. И конечно, хотелось бы в статье увидеть, как было раньше и какой эффект получили (например в ресурсосбережении).
AllexIn
31.10.2016 17:03По поводу безопасности:
Замена механического потенциометра на электронный не меняет безопасность котла.
Впешательство ограничивается подключением к трем пинам:
Земля
+5
Вход контроллера для считывания значения с потенциометра.
Что может произойти со всем этим?
1) Замыкание Земли и +5 обрабатывается на уровне защиты котла и приведет к перегоранию предохранителя и выключению котла из строя
2) Замыкание земли или +5 на вход контроллера. Котел будет работать на максимуме или выключится. Ничего страшного.
И, пожалуй, всё. В рамках моего вмешательства котел опаснее не стал.
По поводу эффекта:
Не скачет температура в доме. Она плавно меняется примерно в пределах 0.3 градуса при изменении температары на улице.
Энергоэффективность не мерил, ибо она не интересует. Да и не видно причин, с чего бы ей особо менятся.
TheFishka
31.10.2016 18:29ага, и стульчак без 220 прогреет
stigory
01.11.2016 07:14+1Хорошо вышколенная прислуга, может не только стульчак прогреть, но и наигрывать на скрипке приятные мелодии под дверью пока вы заняты процессом. Да и голосовые команды распознает не хуже Siri. И от падучести интернета мало зависит. И подзаряжается автоматически сама. Сплошные преимущества.
utya
30.10.2016 23:59В течении 3 лет юзал умные датчики на базе arduino+nrf24l01, плюсов много но и минусов хватает, хотел узнать у людей кто активно юзает esp8266. как обстоят дела с wifi сетью когда это чудо в сети?
NLO
31.10.2016 00:23НЛО прилетело и опубликовало эту надпись здесь
AllexIn
31.10.2016 09:49AMS1117 вообще не греется, во всяком случае я никакого нагрева не замечаю.
hogans
31.10.2016 11:28включать пробовали?
AllexIn
31.10.2016 13:33+1В каком смысле «включать»?
У меня все 4 обозначенных девайса от AMS1117 питаются.
Вот сейчас специально взял ИК термометр и померил температуру в корпусе одного из устройств. Внутри температура 32 градуса. ТЕмпература AMS1117 36. Это греется?
vvzvlad
31.10.2016 18:15Единственный видимый и огромный недостаток как по мне — это 3.3в, а значит либо линейный стабилизатор и грелка
Поддерживаю, ощутимо не греется. Нагрев ESP пальцем ощущается, а вот стаба(LM1117) нет. Там ESP, atmega, светодиод.
tmin10
31.10.2016 02:03Меня у ESP8266 волнует такой момент: как долго сможет прожить устройство состоящее, допустим из батарейки, ESP8266 и кнопки? У Amazon Dash это 1000 нажатий, но если устройство будет спать (а оно должно просыпаться только по клику для сохранения батареи), то как быстро оно сможет присоединиться к сети и отправить команду? У смартфона подключение к WiFi часто занимает несколько секунд, что непримлимо для выключателя.
vasimv
31.10.2016 03:00К Wifi быстро не подсоединиться, тут ничего не поделаешь — ограничения протокола. ESP8266 еще и сама по себе медленно подсоединяется, до 20 секунд уходит. Батарейку выжрет за считанные часы в активном подключенном состоянии.
Делайте простейший командный пульт с каким-нибудь NRF24LE1 (nrf2401 совмещенный с 8051 контроллером).PROCODER
31.10.2016 07:14«до 20 секунд» верно подмечено, прямо как у провайдеров любимое — «до». Вот реальные логи аптайма с момента выхода из режима сна и до ухода в сон моего Wi-Fi логгера на ESP8266.
В среднем до 5 секунд, отдельные выбросы до 8-ми. Так что да, для выключателя при малой скважности использования все равно многовато времени такая дежурка отнимет. Но при редком, включил и ушел, уже терпимо.
ByTE1974
31.10.2016 07:29ESP8266 еще и сама по себе медленно подсоединяется, до 20 секунд уходит.
Отключаем чтение/запись WiFi конфигурации, которые происходят за сценой, и WiFi подключается за 3-5 секунд при нормальном уровне сигнала.AllexIn
31.10.2016 07:32Верно. При жестко заданном конфиге никогда не видел, чтобы подключение длилось более 5 секунд.
Но это все равно много для выключателей освещения или аналогичных задач.
С другой стороны, если у нас есть выключатель, значит есть и питание. Раз есть питание — зачем усыплять модуль?
Плюс не могу понять, каким образом должен модуль получить сигнал на включение выключателя, если он спит и к сети не подключен…tmin10
31.10.2016 12:22У выключателя есть только 2 провода, которые он замыкает и размыкает, у него нет второй фазы.
А у модуля люстры как раз должно быть постоянно.
stigory
31.10.2016 07:10+1Ну, раз уж ваша статья — это в основном размышления на тему, то позволю себе поделиться своими размышлениями.
На мой взгляд, кардинальная ошибка — пытаться заставить котел работать, учитывая конечные требования. Прямая функция котла — обеспечить стабильный теплоприток в систему. Чаще всего в буферную емкость. И с этой задачей он справляется на ура. Потому что для нее он и проектировался. Кстати, чем больше емкость — тем ровнее будет работать котел.
Но, конечное требование, предъявляемое потребителем — тепло в помещении. И эту задачу обеспечивает второй контур, состоящий из циркуляционного насоса и теплообменников (батареи, теплый пол, фанкойлы). Таким образом, во всех подобных системах отопления присутствуют две функции: притока тепла и его расхода. И выполняться эти функции должны независимо.
Это не значит, что надо поставить два независимых контроллера. Но логику управления лучше не смешивать.
Котел смотрит в бак-аккумулятор и реагирует на понижение температуры теплоносителя в нем. Обычно это очень плавный процесс и для котла это самое то. Его больше ничего не должно заботить, кроме «дай тепла». А системы управления отоплением помещений должны смотреть в каждый датчик отдельно и решать сколько тепла израсходовать в каждом конкретном случае. И их не волнует откуда берется тепло.
При таком подходе задачи автоматизации и сложной балансировки решаются гораздо легче.AllexIn
31.10.2016 19:32Предлагаете в каждом помещении воткнуть по управляемому клапана?
Решение шикарное и даст отличный результат. О нем я и подумал изначально.
Но тут есть проблема — я не смог найти электрический кран под такую задачу. Просто клапаны есть, но открыть/закрыть — вариант не очень. А с регулировкой открытия я не нашел. Колхохить на базе обычного крана не вариант — от постоянного воздействия он быстро потечет.4ebriking
31.10.2016 23:36Как вариант на этапе проектирования системы — батареи в помещениях расположить по R-2R схеме и набирать нужную мощность напр 4-мя клапанами (16 градаций). Да хоть просто все на одну батарею но каждый со своей шайбой (так же кратно двум диаметры). Но, мне кажется — в этом случае можно влететь в трудновыявляемые и ещё более трудноустранимые неприятные стохастические автоколебания в общей системе. Их же запросто поймать и если из общего бака в кажуду комнату отдельный циркуляционный насосик, которым уже рулить оборотами… Хотя в самой идее — котёл греет бак, а расходом занят другой контроллер — что-то есть.
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/
Вот вам направление к размышлению.AllexIn
01.11.2016 08:46Спасибо.
Не факт что в итоге заморочаюсь, потому что в текущем виде система вроде бы работает хорошо. Самый большой раздражающий фактор я убрал — колебания температуры.
А контроль температуры в помещениях, как вы верно указали, вполне возможен с помощью ручных регуляторов на каждом радиаторе отдельно.
Akisame
31.10.2016 07:20А какие есть аналоги которые используют Bluetooth LE или Z-Wave например?
Интересуют беспроводные устройства, с минимальным потреблением батарейки, легко программируемые (т.к. опыта в программирования микроконтроллеров нет) и конечно же доступной ценой (что-то прилично требований набралось =) ).vasimv
02.11.2016 09:19Z-Wave — от 15 баксов за модуль, причем купить мелкими партиями практически невозможно, SDK — закрытый. Есть, конечно, Z-Uno, но цена неприемлимая для таких вещей, да и габариты великоваты.
Akisame
02.11.2016 13:20А какие альтернативы?
Хочется автоматизировать кое какие вещи по дому, а 15$ за модуль + еще сотню за плату для разработки перебор.vasimv
02.11.2016 16:14Если требуется беспроводная связь, то ESP8266 наиболее приемлима. Есть небольшое количество альтернативных модулей, но и цена выше и доступность/качество SDK хуже — типа модулей на realtek 8711 (RT8710), EMW3165 и т.д. Для настоящих джедаев — имеется какое-то количество микроконтроллеров с собственным приемопередатчиком вроде CYRF69103 (используется в DSM/DSM2/DSMx аппаратуре радиоуправления), но придется самому плату рисовать (либо искать готовые модули в виде приемников/передатчиков от RC игрушек) и радиосвязь самому программировать.
Kot57
31.10.2016 07:20-2Я не программист, да и вообще всю школу прогулял, ломал игрушки и прочее. ESP8266 очень интересная штуковина, но писать код не по мне, пока. И я нашел в сети готовую прошивку, которою один раз залил, а потом через браузер можно добавлять или удалять датчики, термостат, логику и много еще чего, а потом все обновляется через OTA по Wifi. Также мне понравилась работа системы умного дома MajorDoMo с этим модулем. Как сюда картинки грузить пока не понял далее пара фото с моего яндекс диска
Прошивка платная, но цена очень разумная, далее ссылка на сайт самой прошивки
PS: я против барыг и это не реклама прошивки, просто делюсь тем, что мне понравилось.ra3vld
31.10.2016 09:42+2А я в восторге от ESPEasy:
- бесплатная,
- опен сорсная,
- настраивается через веб интерфейс,
- поддерживает кучу датчиков,
- кучу протоколов,
- отдельные датчики могут взаимодействовать между собой,
- в веб интерфейсе можно создавать правила (пока что руки не дойдут до MajorDoMo и вся несложная логика автоматизации делается прямо на самих модулях)
http://www.letscontrolit.com/wiki/index.php/ESPEasy
https://github.com/ESP8266nu/ESPEasy
Сейчас из-за того что они криво настроили редиректы на на новом сайте — фиг чего найдешь в вики через поисковики.
Dark_Rider
31.10.2016 09:51-1Умный дом конечно хорошо, но почему то на ГК все думают (впрочем, логично, это же ГК), что всем почему то нужно именно то, что они сделали.
IoT еще находится в зачаточном состоянии, и сейчас многие вещи делаются в буквальном смысле на коленках, на костылях и прочем, это вообщем то нормально, но многие забывают, что ДОМ изначально нужен для того, что бы жить там, а не что бы делать из него выставку достижений.
И ни о какой инерции нет и речи, вам это удобно-делайте, никто не против.
У меня лежит пару модулей, готовы пару плат, которые вообще не относятся к умному дому, вот что мне делать?AllexIn
31.10.2016 10:21+1Конечно дом чтобы жить, а не для выставки достижений. Поэтому речь идет не о том, что-еще-сделать-для выставки, а о том, что еще можно сделать для собственного комфорта и жизни.
По поводу инеркции — не согласен с вами.
Из личного опыта: никому из знакомых не приходит в голову сделать подогрев сиденьки. И саму идею большинство воспринимает с недоумением(разве что девушки некий интерес проявляют).
Но при этом нет ни одного человека, который бы воспользовался нашим туалетом и не захотел бы себе такое же.
Что это как не инерация мышления и консерватизм?Dark_Rider
31.10.2016 13:33Эм, как бы пояснить-инерция мышления не просто так возникла, она отсеивает лишнее.
Вы захотели, сделали.
Мне эта история напоминает вот такую тему на хабре:
https://habrahabr.ru/post/313946/
Человеку было не в тяпку в 2107 все это пихать, но это не умаляет его работы.
Вы доказываете, что кто-то, кто не согласен с вашим мнением, консерватор?
Вы больше удивлены, что с вашим мнением не согласны, это проблема всех гиков кстати, будут убиваться и биться лбов, когда их поделки критикуют.
Почему вы уже не сделали поющий унитаз с трансляцией смываемого содержимого в интернет?
Вот когда кто-то из ваших знакомых СДЕЛАЕТ такой же, а не ЗАХОЧЕТ такой же, тогда и поговорим.AllexIn
31.10.2016 13:49Вы что-то путаете.
КОнсерватизм — это держаться за старое и не видеть преимуществ новых решений.
Согласие с моим мнением или не согласие тут не при чем.
Поющий унитаз с инстаграммингом дерьма — это идиотизм. И консерватизм тут не при чем.
Если вы хотите покритиковать какое-то из моих решений — велкам. Но я пока не вижу критики решений в ваших комментариях. ТОлько обсуждение консерватизма и инерции мышления.Dark_Rider
31.10.2016 14:20Чем с точки зрения обывателя поющий унитаз хуже обогрева стульчака?
Вы не видите ничего, так как не принимаете критику вообще.
Не вижу преимуществ обогрева пятой точки например в квартире.AllexIn
31.10.2016 17:18Я не принимаю критику, потому что её нет. :) Во всяком случае от вас.
Первое сообщение, где критика появилось.
Например, в квартире, может и не быть нужды в обогреве. Видел планировки, где на маленький таулает стояло 2-3 секционный радиатор, в итоге там парилка была. Там действительно нет смысла в подогреве.
Если же в туалете держится температура 22.4 — стульчак будет весьма не комфортной температуры.
Но, опять же, Вы почему то решили, что я считаю всех, кто не хочет стульчак с подогревом консерваторами и обвиняю их в инерционном мышлении.
Я это уже говорил, но вы похоже не хотите читать, поэтому повторюсь:
Консерватизм он не в том, чтобы не использовать все-все-все новинки. Он в том, чтобы отвергать новинки просто потому что «раньше и без них хорошо жили».
sneka
31.10.2016 09:53так так таааак. А алгоритм пересчета внешней температуры в температуру воды в котле?
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.
При сильных морозах еще не тестировал.sneka
31.10.2016 15:12Мммм то есть получается, что наружная температура вообще не при чем, а регулирование идет по внутренней? :)
Я то думал делается какой то прогноз и подбирается оптимальная мощность, чтоб котел молотил непрерывно, но на нужной мощности. Именно это даст максимальную равномерность температуры.AllexIn
31.10.2016 16:36Наружная температура учитывася, увеличивается или сокращается диапазон регулирования.
О прогнозе на основе внешней температуры я думал, но у меня пока нет даных для этого.
С момента создания еще не было морозов сильных.
mihmig
31.10.2016 15:26+1У Вас на фото отображение концентрации CO, а в статье о её реализации ни слова…
Какой датчик, где лучше брать?AllexIn
31.10.2016 16:55У меня вот этот:
https://habrahabr.ru/company/masterkit/blog/248405/
О СО2 и вентиляции в статье не упоминал, потому что это отдельное сложное решение на базе Black Swift. Хотел бы о нём когда-нибудь рассказать отдельной статьей, т.к. в рамках этой статьи никак не влезть.
Почему когда-нибудь? Потому что система работает год и всё еще есть места, которые я бы хотел улучшить. Планирую написать статью, когда всё будет готово.
CmpeJ1ok
31.10.2016 16:38+1с помощью ESP8266 можно то… можно другое… господа хорошие — где исходники, фото, схемы подключения и реализации ваших идей: какие датчики использовались, какие подводные камни были, что планируете доделать в ходе эксплуатации, а так этот материал больше похож на: «вот такое сделали за бугром, а я хочу или уже запилил у себя тут», а на вопрос: «выложите код» — та тююю, оно вам надо?! «Так реализация примитивная же.» Посему раз сами предложили: «спрашивайте, расскажу как делал» — спрашиваем, как делали?!
ЗЫ
может придется отдельную статью написать с полным обзором по вашим девайсам, зато не вилами по воде будетAllexIn
31.10.2016 16:43+2Да статья получится уровня: как сделать Hello World на ESP.
Я понял вас, подумаю как рассказать об этом всём интересно.
burundukh
31.10.2016 16:43/sarcasm_mode «1»
Суть российской автоматизации умного дома — туалет на улице холодный.
/sarcasm_mode «0»AllexIn
31.10.2016 16:49Туалет теплый, стульчак холодный. :) А в остальном Вы на 100% правы.
Вообще, туалет в частном доме, особоенно если он там изначально не предполагался — это сложная и геморная тема. Как технически, так и юридически.
akubintsev
31.10.2016 18:27Чтобы сделать «умный дом» нужно обзавестись для начала самим домом. А в совковой квартире всё перечисленное делать практически лишено смысла, тем более для тех, кто арендует.
burundukh
01.11.2016 15:08Как раз тем кто арендует — разумно использовать быстроразвертываемую систему бюджетной фото-видеосигнализации.
Для тех, кто живет в своей коробке — те же условия распространяются на гаражно стояночную тематику.
grigorygn
02.11.2016 10:02Насчет бесполезности wifi розетки это как посмотреть… Если розетка управляется не только из домашней сети, а еще и с любых просторов интернета, то весьма полезная вещь. MQTT в помощь.
И это может быть не обязательно розетка, а блок реле для управления кучей разных нагрузок.AllexIn
02.11.2016 10:03А можете привести примеры задач, для которых нужно управление из интернета?
Я вот у себя таких задач не увидел вообще.grigorygn
02.11.2016 10:11Я думаю вариантов может быть масса.
У меня была например необходимость ограничить доступ к телевизору и интернету удаленно. Роутер отключался просто через реле. Для ESP была создана отдельная сеть с отдельным роутером (чтоб не отрубить и управление вместе с инетом :) ).AllexIn
02.11.2016 10:15«Я думаю вариантов может быть масса.»
Ага. Вот весь интернет пестрит примерами как сделать WiFi розетки, а в качестве применения отговорка про «может быть масса».
Но на практике оказывается, что массы нет и есть разве что несколько очень индивидуальных потребностей.grigorygn
02.11.2016 10:41А у вас в обычные розетки что включено? Думаю то, что надо именно вам, нет стандартного набора, у каждого свои погремушки.
А если нужен живой пример, то например можно удаленно включить чайник или кофеварку, чтобы по приезду домой (или в контору) самовар уже закипел. Удобно? Думаю что да.
Можно так же обогреватель включать удаленно, чтобы прийти уже в прогретое помещение.
CyberBot
А исходники где?
AllexIn
Так реализация примитивная же.
Например, самое сложное — управление котлом. Пять модулей. Каждый по 50 стандартных строчек кода:
1) Запуск веб сервера, чтобы отдавать текущее состояние и принимать запросы на изменение температуры.
2) Управление ЦАП
3) Запрос температуры по HTTP
4) Сохранение/Загрузка конфига в файл
5) Цикл который раз в 10 секунд проверяет состояние переменных и меняет мощность котла
Каждый модуль предельно простой(сложную логику ESPшка не проглотит). Чуть ли не калька с документации по NodeMCU.
Если что-то конкретное интересует — спрашивайте, расскажу как делал.
DjPhoeniX
Позвольте! Мне кажется, вы не до конца оценили её мощности. При всём уважении к языку Lua (который лёг в основу многих игр), для Embedded он подходит чуть хуже, чем отвратительно. Но если отойти от отличной системы прототипирования и экспериментов NodeMCU (которая как раз использует Lua), и взглянуть на оригинальный SDK, мы увидим мощный процессор (160 мегагерц, КАРЛ!), 50 килобайт юзерспейс-памяти, и FreeRTOS с тасками, мьютексами и прочими прелестями. Не спорю, это требует гораздо большего скила, но и даёт гораздо больше возможностей.
vvzvlad
Обоснуйте?
Прекрасно проглатывает, если понимать, как оно работает. Где у вас были затыки?
DjPhoeniX
1. Интерпретируемый язык всегда медленнее компилируемого. Да, я знаю про .lc, но это лишь байткод, ни о каком JIT речи даже близко не идёт.
2. Следствие пункта 1 — рантайм. Очень тяжёлый в масштабах микроконтроллеров.
Я считаю, что для микроконтроллеров (если мы говорим о серьёзных разработках, а не наколенных «Hello World»-ах) оптимальны языки максимально нативные. Это Си, Ассемблеры, немного Плюсы (но без фанатизма). Языки типа Lua и JavaScript создают больше проблем, чем решают. Однако основы работы с железом (GPIO, PWM, и прочие базовые навыки) на них отработать можно.
vvzvlad
Медленнее, чем другие языки = отвратительно подходит? Может в просто не умеете их готовить?
Да, на самом lua не получится сделать драйвер протокола с жесткими временными задержками. Но такие вещи выносятся за пределы луа, пишутся на си(как, например, сделано в драйвере I2C для nodemcu), или вообще на вспомогательный микроконтроллер реального времени(как сделал я в Iuppiterboard).
Про .lc, кстати, говорить вообще некорректно — nodemcu не интерпретирует сами файлы с кодом, он все равно при запуске сначала компилирует их их в байткод, а только потом исполняет(с чем связано забавное ограничение на размер запускаемого файла с кодом в nodemcu — он должен быть меньше половины свободной кучи на момент запуска, потому что нужна память на загрузку файла и на размещение в памяти байткода из него получаемого). Соответственно, сравнивать не с чем, единственный пусть исполнения — байткод.
А по факту, кроме протоколов и некоторых специфических вещей реалтайм на IoT(а мы же говорим про интернет вещей и ESP8266, да?) не нужен — достаточно просто отсутствия задержек, заметных человеку(меньше 100-200мс). Это луа обеспечивает. А задержки на датчиках вообще не критичны. А переносимость кода(=возможность написания и отладки на компе) и легкость написания чего-то стоят.
DjPhoeniX
Возможно, мы пока что говорим о разных вещах. Есть несколько критериев, которые надо учитывать для реальных устройств (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), и жить стало гораздо легче.
AllexIn
Ключевое слово — production.
Всё что вы описали актуально для продуктов, заточенных на массовость, а значит на максимальную эффективность использования всех ресурсов.
Для единичных разработок Lua хорошо подходит.
Кстати, подскажите, как вы сделали обновление прошивки по воздуху на С?
DjPhoeniX
Про обновление — да так и оставили rBoot (https://github.com/raburton/rboot), он очень даже хорош, если его правильно понять. Возможность temporary boot, наличие контрольных сумм и прочие тонкости очень хорошо спасают.
AllexIn
Двумя постами выше я это и писал:
«Hello World» не синоним DIY.
Основное отличие DIY от продакшена — цена в человеко-часах важнее чем цена железа. В то время как в продакшене наоборот. Не в сложности задач отличие.
Про rBoot понял, спасибо.
vvzvlad
У меня на уровне 100-150ms.
У меня чуть меньше обьем, но проблем не возникает вроде. Скачать файлы, сохранить с другим расширением, посчитать контрольную сумму, если совпадает, удалить старые, переименовать новые, перезагрузиться.
Ух ты, а код можете показать?
Ну в общем, да, как правильно написали ниже — Hello world, DIY и продакшен это три разные вещи. Если это устройство под мелкую серию и/или есть возможность подкрутить ручками, то требования снижаются. Но в то же время это может быть вполне сложная вещь, которую никак нельзя назвать Hello world.
DjPhoeniX
Вот на этапе «переименовать и перезагрузиться» у меня и возникали проблемы. Вроде как все операции завершились успехом, все flush-ы отработали и кэши очистились… А после перезагрузки нет-нет да один-два файла останутся со старым именем. И, соответственно, фейл.
К сожалению, не могу. Могу подробнее описать логику (в личку), а вот код был написан для рабочей платформы, соответственно, неразглашение, права, и все дела…
AllexIn
Вполне возможно что я ниасилил.
Была мысль перенести систему вентиляции c Black Swift на ESP.
Для этого мне не хватало поддержки LCD и USB.
LCD без проблем поднял на i2c.
А вот попытки поднять USB успехом не увенчались*. Естественно пробовал завести USB на нативе, а не lua.
Так что я благополучно на это плюнул и решил использовать ESPшку для более простых задач. Для которых ИМХО он идеален.
Например, в прошлом году делал гирлянду на дом, которая рулилась с малинки.
В этом году планирую сделать интерактивную, с управлением по WIFi. Планирую дать возможность прохожим порулить гирляндой.
* — позднее узнал, что есть примеры успешной реализации софтверного USB-host на базе ESP8285.
Hellsy22
У меня нет уважения к языку Lua, особенно в варианте NodeMCU — это бейсик недоделанный. Однако и существенных проблем с ним нет. Памяти для простых задач хватает с большим запасом. Плюсы интерпретатора очевидны: удобно отлаживать, а обновлять девайсы можно по воздуху.
BrainFree
Если не секрет, какая модель\фирма котла?
Хочу сделать подобную вещь с Protherm Gepard, если правильно понял, то большинство котлов умеют подключать внешний\внутренний датчики температуры и на основании их показаний делать какие то выводы.
Оригинальные датчики Protherm стоят в районе 5тр, насколько правильно котел реагирует на их показания непонятно, внутренний обычно ставят в самую холодную комнату и тогда результаты вроде бы получаются адекватными.
Главная проблема в том что датчики используют закрытый протокол для общения с котлом и можно ли штатно (без впайки в схему котла подключить сторонний контроллер\датчик) честно говоря не знаю. То что видел на эту тему — несколько колхозное (по мне) подключение питания котла через реле термодатчика.
Насколько знаю для оптимизации работы котла и задания дельты по температуре для нагрева, включения циркуляции и тп люди донастраивают котел через инженерное меню, возможно так можно обойтись меньшими жертвами
AllexIn
Vitopend 100.
К нему есть всякие внешние термостаты. Проблема в том, что там нет никакого умного протокола. Там тупо в лоб: термостат замыкает контакты когда надо греть и выключает, когда не надо.
То есть, каким бы крутым не был термостат — он не сможет управлять температурой воды.
Да я и особо разбираться не стал. Комплектующие и настройка неадекватно дорогие.
Исправить схему, чтобы вывести три контакта наружу заняло минут 30. И то, большую часть времени я потратил на то, чтобы аккуратно перерезать дорожку и припаять джампер.
На более дорогой моделе этого котла есть контакты для подключения датчиков наружной температуры. Полагаю они по умнее. Но во-первых — уменя уже стоит котел и нет смысла покупать новый. Во вторых — платить тысячу баксов за то, что я могу сделать за 20 — это борщ.
Ну и в третьих — фиг знает как там его регулирование работает. А здесь я точно знаю как работает и могу всегда изменить, если не устроит.