Как стать автором
Обновить

Разработка умных устройств на примере контроллера теплого пола на ESP8266

Время на прочтение11 мин
Количество просмотров24K
Всего голосов 19: ↑18 и ↓1+17
Комментарии53

Комментарии 53

НЛО прилетело и опубликовало эту надпись здесь
Значит, вы или я что-то делаем не так.
Если ваши часы зависнут — вряд ли случится что-то плохое.
А если встанет система отопления, зимой, когда все уехали в отпуск — это большая проблема. Стоимость микросхемы сторожевого таймера (100р) мизерна по сравнению с ущербом при разморозке труб водоснабжения и отопления
И всё же, когда есть хоть какой-то риск заморозить отопление, лучше применять не воду, а специальный теплоноситель-незамерзайку. Не такие уж большие деньги в сравнении с последствиями аварии.
Не во все котлы можно заливать незамерзайку, в некоторые только воду.
НЛО прилетело и опубликовало эту надпись здесь
ESP лучше рассматривать как канал связи, а алгоритм закладывать так, что бы при потере WI-FI или зависания, Ваш алгоритм оставался в работе, а потеря канала, когда он просто информационный, как пример удаленный доступ, не несет краха системе. Мой опыт такого решения www.youtube.com/channel/UCj4HeZMvSH5H3d_t6iDlQOQ, даже с учетом загруженности ESP, устройство неделю работало без перезагрузок, дальше пришлось отключить. Даже если что-то произойдет, вся логика в ПР200 продолжит работу. Хотя в 2015 делал управление котлом на одной ESP все работало, хотя иногда происходили перезагрузки, но через 5 сек. работа восстанавливалась.
Действительно, esp8266 — чрезвычайно нестабильная система. Дня не проходит, чтобы какой-нибудь из модулей самопроизвольно не отключился от сети (работают в системе метео-наблюдения). Интересно, как со стабильностью у esp32?
НЛО прилетело и опубликовало эту надпись здесь
То есть совсем всё плохо, если даже хуже, чем esp8266…
НЛО прилетело и опубликовало эту надпись здесь

Не знаю… За 2 года работы системы из 2 модулей на esp8266 (модуль управления котлом с wifi и opentherm и беспроводный термометр) не припомню зависаний.

Почему устройство умное?
По — моему это просто автомат управления системой управления в доме с функциями телесигнализации и телеуправления.
Согласен, но есть же умные розетки, умные самогонные аппараты…
Устройство умное, потому что говорить, что оно компьютеризировано (после эпохи когда всё было механизировано) стало не модно. Сменилась мода и пропали компьютеризированные дома и авторочки с унитазами, зато много умников стало на свете даже среди самогонных аппаратов.
Кстати, а есть ли какая то другая интерпретация слова «smart»?
Не силён в английском, но вы же понимаете, что слова, в большинстве случаев, не имеют смысла вне контекста? Вот некоторые значения: саднить, страдать, быстрый, резкий, сильный, значительный. Например: smart price — довольно большая цена. На самом деле, не имеет значения, как они придали значение этому выражению, например, так ли уж важно, что спам это ветчина? Если вы хотите передать смысл, просто передайте его подходящими словами родного языка.
Собираетесь ли опубликовать исходники, на том-же ГитХабе, например?
Да, статья интересная, но есть какая-то недосказанность: с одной стороны куча листингов, с другой — нет исходников (что как бы не очень друг с другом согласуется). Sapienti sat, конечно, но всё же…
Я готов делиться опытом, но не продуктами
нет, но если интересные какие-нибудь детали — поделюсь.
Что за операционная система?
У нее нет названия. Я хотел донести, что функции ОС могут иногда исполняться без ОС различными библиотеками
Напишите, пожалуйста, в начале статьи что вы используете Arduino IDE. В метках есть, но всё равно остается подозрение, что это может быть нативный тулчейн.
За параллельное выполнение… периодическое выполнение функции, с заданным интервалом.
Разве это всё уже не реализовано в SDK и ESP8266 FreeRTOS? ИМХО велосипединг.
Я не использую Arduino IDE. Я пользуюсь Visual Micro. Arduino SDK — да, использую.

Это мой первый проект по реализации устройства DIY IOT. Так что велосипедостроение присутствует — в Arduino SDK есть класс Ticker, c подобным функционалом. Но что удивительно — в примере arduino.ru/tutorials/BlinkWithoutDelay не используется этот класс. А я наверное посмотрел пример, и решил написать свой тикер, не зная что есть готовый.
Тем более напишите, вы же видите сколько вариантов.
Немного вопросов:
Насколько я понимаю у вас нет возможности управлять котлом кроме как вкл/откл?
Вы контролируете только температуру воздуха по зонах или воздух, сам пол, приток и обратка?
Рекомендуемая температура теплого пола около 25°C (в зависимости от типа помещения), это как-то учтено?
Это должно быть учтено при настройке петель, т.е. если врубаете круглосуточный обогрев — то температура поверхности не должна превышать норму, а отключение петли влияет именно на температуру в комнате. Правда не совсем понял зачем весь котёл отключать, разве что для экономии если все контура уже отключены…
Правда не совсем понял зачем весь котёл отключать, разве что для экономии если все контура уже отключены…

А куда девать горячую воду, если она не нужна? котел не может работать в холостую
Для этого в систему ставят байпас. У вас как реализован водоотбор на теплые полы? Обычно ставят трёхходовой кран/клапан где третий выход как раз байпас. У меня в параллель к нему стоит ещё один байпас, только он по давлению срабатывает, как раз на случай если все контура одновременно будут перекрыты. Правда у меня котёл ещё и на ГВС работает, так что выключать его не вариант, да и у меня вместе с ТП обычные радиаторы стоят. Хотелось бы чтобы вы описали систему отопления более подробно, тогда логика вашей систему управления станет более ясной, а вообще регулировать температуру теплоносителя в петлях с помощью котла — не есть правильно.
У меня отопление исключительно теплыми полами. Никаких байпасов.
Если холодно (хотя бы в одной из комнат) — контроллер включает котел. Петли комнат где тепло — запираются. Везде тепло — все отключаем.

ГВС — этот блок управляется самим котлом и не требует вмешательства. Т.е. когда надо, котел переключает трехходовой кран и греет ГВС в бойлере.

Я так понимаю, у вас температура теплоносителя в петлях регулируется смесительным клапаном. А у меня котел в низкотемпературном режиме работает, выдает 30...50гр., смесительный клапан не требуется.
ГВС — этот блок управляется самим котлом и не требует вмешательства. Т.е. когда надо, котел переключает трехходовой кран и греет ГВС в бойлере.


так как он сработает если вы питание котла отключаете?
я не отключаю питание котла. Для моего котла предусмотрено внешнее управление ВКЛ / ВЫКЛ для отопления.
Вот теперь логика ясна :) По тексту подумал что весь котёл отрубается.
Для моего котла предусмотрено внешнее управление только ВКЛ / ВЫКЛ. Но мне большего не требуется. Температура пола определяется температурой воды из котла. Это задается на котле и у меня стоит 40гр.
Используя эту микросхему, можно использовать преимущества шины 1Wire и избавиться от ее недостатков за счет трансляции 1Wire <-> i2c

И приобрести недостатки i2c ногодрыга от esp
Какие будут предложения?
Никаких, учитывая что чип esp8266.
Если есть выбор — перейти на более «нормальный» чип wifi+mcu (mt/rtl/cc), либо использовать BLE например (который как бы для этого и разрабатывался), но по видимому этот вариант Вам не подойдет.
Я бы перешел. ESP8266 мне не нравится — вот сейчас демо-стенд повис. А на нем нет вачдога.
Сейчас думаю на что портировать.
Рассматриваю ESP32, Orange Pi i96, Omega 2.

Посоветуйте…
Для начала определитесь что у вас за устройство (slave/master).
Не вижу смысла тащить на slave (какой нить датчик например) даже мини компьютер, те что бы это плохо или хорошо, просто это избыточно. Плюс, все миниплатники подразумевают Linux — опять таки, зачем какой-то розетке все это?
Далее выберите wireless стек, с которым вам хочется/удобно/дешево/доступно работать. BLE/Wifi/zigBi — у всех этих технологий есть свое предназначение, и соответсвенно плюсы/минусы.
Что касаемо именно mcu, это могут быть практически любые MK, которые Вас не стесняют, и достаточно популярны/просты. Не хочу показаться хейтером, но я бы взял ARM-based типа STM, в противовес AVR например или тем же MSP430.
В случае с wireless+mcu, недавно вот заказал BLE nRF52832, так как с esp-стеком бороться уже не было сил. Что касается wifi то есть rtl8710, более дорогие и качественнее серия CC от TI.
По сути — дело вкуса и принципов, esp взлетела только из-за своей цены, по этому, народ и начал на ней клепать все что не попадя
Посоветуйте, мне требуется чтобы в системе можно было бы ПРОСТО развернуть WEB-сервер с поддержкой WEB-сокетов.
Ну и естественно WiFi с возможностью создать точку доступа
Я Вам выше написал все возможные юзкейсы, rtl8710 и ей подобные, возможно esp32, с последней дело не имел.
я на rtl не нашел примера web сервера.
на esp32 — да, есть, рассматриваю этот вариант

На омегу даже не смотрите, серьёзно. Столько красноречивого хочется про неё сказать.
Она красивая на картинках и в брошюрах, когда на ней детишки уже готового робота гоняют по полу через веб-IDE.
Когда дело доходит до закономерной сборки OpenWRT с минимально необходимым обвесом и нормальных применений — оказывается что это неюзабельная хрень, у которой даже режимов энергосбережения нет нормальных.
Плюс, ESP — Это совершенно другого класса устройство.
Возможно, стоит иметь небольшой хост, который не будет энергонезависимым и постоянно подключен к розетке и небольшой контроллер с BLE, который подключается к хосту.
Можете посмотреть платы у particle.io (не реклама).

дело доходит до закономерной сборки OpenWRT

я не знаток линукса — вроде же в плате уже есть ОС. Что с ней не так? С учетом того, что энергосбережение меня не волнует. Этот проект без розетки имеет мало смысла.

Не скажу за всех, но свободного места, которое остаётся от оригинальной прошивки, мне не хватило на установку минимально урезанного питона.
Плюс, для более-менее готового устройства (опять же, за себя говорю) все эти приблуды от омеги не особо нужны (вроде встроенной web ide и всяких модулей к ней).
Если вам достаточно поиграться и что-то просто погонять — то можете смело брать. Но если возникает инженерное вдохновение — на каждом шагу начинают появляться какие-то навязчивые проблемы, которые и на форуме onion никто не сможет помочь разрешить. Можете его почитать, если интересно.

протокол 1Wire очень чувствителен к таймингам, поэтому все реализации программного мастера шины используют delay
Есть реализация на uart, есть на protothreads, можно целиком на прерываниях. если DMA есть.
А смысл? DS2482 стоит 100р., что гораздо дешевле чем искать глюки в извращенных программных реализациях.
Как бы всё давно отловлено, сколько лет прошло… Нет, я не настаиваю, просто категоричность не понравилась.
На ESP я подобных решений не нашел. Только какие-то обрывки. На UART — вообще не вариант, он мне самому нужен. Только не говорите, что чип г. — это выше обсуждали.
Нормальный чип, хотели мало, но все в одном месте — ну, вот и оно. Код на protothreads с авр на esp достаточно легко адаптируется, правда, примера конкретно с 1-wire я за пару минут не нашёл.
Модули esp8266 очень плохо уживаются друг с другом, особенно находясь рядом. Если использовать 1-2 модуля рядом — еще ничего, а больше, будет сплошная боль. Это вещь поиграться на выходные, но не для серьезного применения, увы…
НЛО прилетело и опубликовало эту надпись здесь

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории