Часть 1 здесь

Часть 2 здесь

В нашем чате один из пользователей выложил фото своего Air. Как выяснилось, он приклеил его на двусторонний скотч за телевизором. Лицом к стене. Мы поняли, что не всем нужны кнопки и экран. Обсудили с коллегами, и пришли к выводу, что можно разработать  более простой  и дешевый функциональный аналог Air, без кнопок, без экрана, без встроенного блока питания и на более простых датчиках.  Во «взрослом» Air,  мы, в качестве датчика СО2, использовали Senseair S8. Он показал себя с лучшей стороны – высокая точность и скорость реакции. Но для регулировки проветривания достаточно знать примерное содержание СО2. Более важно видеть тренд – что происходит с этим значением. Снижается, повышается или стоит на месте. К тому же, хорошо бы  проветривать не только при повышенном СО2, но и при других загрязнениях воздуха. И мы решили попробовать датчик Sensirion SGP30. Идею нового устройства вынесли на обсуждение пользователей чата. Как всегда, самым сложным оказалось название. Коллективный разум остановился на варианте Drivent Air Lite.

В качестве датчика температуры/влажности во взрослом Air стоит Bosch BME-280. То есть ну вот прямо не стеснялись использовать  топовые разработки.  В Air Lite решили обойтись более бюджетным по цене, но тоже весьма неплохим - Sensirion SHT31.

Накидали планы, попилили фронт работ, а мне, как обычно,  достался софт.

1 + 1 = 1 да, так бывает

Все компьютерщики ленивы.  Это аксиома. И я не исключение.  Зачем выполнять рутинные операции, если можно один раз напрячься и написать скрипт?  В данной ситуации меня не очень радовала перспектива дальнейшей поддержки уже двух прошивок – Air и Air Lite. Значит попробуем собрать их в одну. Это оказалось довольно просто. При старте прошивки, она проверяет – какие датчики у нас подключены. И, исходя из результата, ставит флаг airlite. Флаг стоит – значит у нас урезанная версия. Нет – полноценный Air.

К настоящему времени уже откатан первый прототип Air Lite, внесены исправления и собирается второй.

А в это же время на другом конце страны

Александр  @Alex__AW, проводил испытания нескольких «умных реле» с Aliexpress, с поддержкой mqtt и HomeKit.  После анализа их внутренностей, поплевался, вымыл с мылом глаза и сказал, что всё это не честно, малофункционально  и надо делать своё. Тем более опыт создания подобных устройств у него уже был набран, было обработано много информации с технических чатов и форумов, много полезных идей собрано.  Накидал пару проектов и вынес на наше обсуждение.

Основной недостаток большинства встраиваемых «умных реле», имеющихся сегодня на рынке – слабая нагрузочная способность. А 16 ампер, написанные у многих на корпусе – они чаще всего не честные! Реле, дорожки на плате и клеммы не соответствуют заявленному току нагрузки. Некоторые реле вообще залипают при коммутации даже светодиодного освещения, поскольку не выдерживают высоких стартовых импульсных токов. Александр предложил использовать  более качественные реле, которые действительно нормально держат  нагрузку, написанную  у них на корпусе.  Снабдил контроллер датчиком перехода через ноль,  датчиком тока,  для обеспечения коммутации в момент минимального питающего напряжения при минимальной нагрузке. Применил схемотехнические решения для защиты контактов реле при коммутации реактивной нагрузки. Имея датчик тока, реле  можно заставить программно работать в режиме безынерционного защитного автомата: если нагрузка превышает заданное значение – отключаем, что опять же позволяет уберечь контакты и сетевые провода от перегрузки. Вроде всё хорошо и красиво, но как-то мало, у нас же на борту не слабый микроконтроллер, надо его как следует озадачить.

Скрестить ежа с ужом

Свободной памяти у нас много, свободных портов тоже достаточно. А давайте повесим датчик температуры? Или температуры и влажности. Какой именно? Да любой! На наш взгляд, самым доступным и удобным внешним интерфейсом  является однопроводный, хотя бы потому,  что требуется всего один цифровой порт. Поэтому решили поискать что-то из этой серии. Имея опыт работы с прошивкой Air – Air Lite я предложил взять несколько датчиков с возможностью выбора их в прошивке. Ну а попозже попробовать вообще сделать автоопределение.  Вполне закономерно выбор пал на DS18B20 и DHT.

Если появляется датчик, то реле превращается в регулятор.  Нагреватель – охладитель, или  увлажнитель – осушитель, в зависимости от применяемого для регулировки параметра.  Соответственно всё это должно интегрироваться в HomeKit, Home Assistant, Алису, Марусю  и другие известные системы Умного дома. Так же в реле переехали наши наработки для  Air – например расписание. Причем не банальное – включить/выключить, а с возможностью, например, если реле работает с датчиком в режиме нагревателя, то можно в 9:00 поставить нагрев до 27, в 14:00 выключить, а в 18:00 нагрев до 29.  

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

Не забываем про привод окна

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

В него добавился датчик дождя, для работы автоматизации закрытия,  датчик питающего напряжения, по которому автоматически подбираются регулировки для поддержания стабильной скорости. Часть ручных регулировок упразднилась, но появилось много дополнительных функций и настроек для них. Мы долго думали   – как бы задействовать BLE в контроллере.  Мне на глаза мне попался датчик температуры и влажности Xiaomi Mijia LYWSD03MMC. Как выяснилось, с прошивкой АТС от pvvx он умеет так же выводить на экране любые значения. В результате этот датчик был интегрирован в привод не только с возможностью PID регулировки окна по температуре, но и для вывода процента открытия окна ему на дисплей. Долго мучился с системой добавления датчика в настройках привода. Вбивать вручную MAC адрес очень не хотелось. В результате было найдено следующее решение.  Запускаем в приводе процедуру поиска датчика. Датчик в этот момент должен лежать на приводе. Процедура находит все BLE датчики в радиусе своего действия, но по уровню сигнала RSSI определяет – какой из датчиков в данный момент находится на заданном расстоянии (в пределах нескольких десятков сантиметров от привода) и добавляет именно его. Просто, но очень эффектно. Кстати, на эту мысль меня навела подобная процедура добавления пульта к Apple TV. По запросам и предложениям пользователей, в новой редакции  привода на esp32 появилась возможность подключения удаленных кнопок как длинными линиями с гальванической развязкой так и беспроводным вариантом с ПДУ на 433 Мгц.

Также параллельно, тоже на esp32, развивается автономный вариант привода с питанием от аккумулятора. Зарядка аккумулятора может осуществляться от любого источника питания с напряжением от 5 до 12В и от солнечной батареи.

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

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

И если у вас есть еще какие-то вопросы, рекомендации, или просто хотите пообщаться с разработчиками – добро пожаловать в нашу группу в Telegram.

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


  1. peacemakerv
    14.10.2022 20:40

    Кто-бы сделал готовую "ребуталку сервера", с розеткой 220В уже, т.е. простую и надежную wifi-релюшку, но без приложений, а с настройкой на свой собственный сервер.
    Я понимаю, что ethernet гораздо дороже, но хоть wifi.


    1. AGRO666 Автор
      14.10.2022 21:37

      Не совсем понял - зачем? Что за сервер? Если нормальный - так там iLo есть, ребутайте на здоровье. И по Ethernet. Или о каком-то другом речь?


      1. peacemakerv
        14.10.2022 21:40

        Вот поэтому и нету полезных устройств, потому что непонятно, что всякое бывает.


        1. AGRO666 Автор
          15.10.2022 00:02

          Нет, непонятно что у вас за сервер, который перегружать надо (полноценный i386 сервер или малина какая-нибудь) и что значит - реле с настройкой на собственный сервер. Скажем реле, которое можно включить/выключить GET запросом подойдет? Точнее задачу опишите - и я посоветую, как проще решить.


        1. AGRO666 Автор
          15.10.2022 00:09

          Мне, например, как яблочнику вполне бы такая подошла для перезагрузки какой-нибудь железки по питанию. Тупо подключил ее к HomeKit и рулишь через iPhone. Без всяких лишних программ и облаков.


          1. peacemakerv
            15.10.2022 12:28

            рулишь через iPhone. Без всяких лишних программ и облаков.

            Вот раз через iPhone, то как-раз и не обойтись без программ и облаков.
            А вот пассивный контроллер, который с какой-то авторизацией стучится на твой собственный сервер (заданный в web-форме админки ESP8266), и поймав там команду на выключение - выключает релюшку на десяток секунд, и включает снова.


            1. AGRO666 Автор
              15.10.2022 18:00

              Странный у вас подход. Программа Дом в iPhone идет изкоробки. Она там предустановлена. И работает она локально. А вот ваш веб-сервер точно в облаке. А теперь ответ - поднимите на своем сервере службу mqtt сервера с авторизацией. И цепляйте к нему любое реле, которое mqtt умеет. А таких вагон. Не изобретайте свои протоколы. Учитесь пользоваться существующими. Ваш веб сервер же должен знать - подключено ли к нему реле, живое ли оно, поймало ли оно команду, выполнило ли ее. И если связь с реле пропала в момент когда сервер отправляет ему команду - нужно быть уверенным, что реле ее выполнит, как только связь восстановится. В mqtt все это есть опять же изкоробки.


              1. peacemakerv
                15.10.2022 18:43

                И зачем мне "локальное удаленное управление" ?
                Ответы на ваши предположения большей частью - нет.
                Но вот мысль про mqtt - отличная. Подскажете полвагончика примеров железок, поддерживающих ?


                1. AGRO666 Автор
                  15.10.2022 20:52

                  Реле, выключатели и розетки от ATHOM с Алиэкспресс. Это последнее что щупал. С HomeKit и с mqtt. Вообще поиск вам в помощь. Или спрашивайте продавцов, если лень искать.

                  Тасмота например имеет встроенную mqtt. А с этой прошивкой на Али куча девайсов. И куча, которую можно перешить на тасмоту


    1. duckhawk
      17.10.2022 04:58
      +1

      Netping, например. Насчёт простой не уверен, оно разные сценарии использования поддерживает. Но у них, насколько помню, только ethernet

      https://netping.ru/products/netping-v4/


      1. AGRO666 Автор
        17.10.2022 10:19

        Хорошая железка, надёжная. Правде реле у неё вроде низковольтные, поэтому нужен будет еще контактор. Но она изначально предназначена именно для удаленного контроля и управления оборудованием.


        1. makapohmgn
          17.10.2022 12:03

          У меня валяется такая, кое-то время поработала и перестала, тупо виснет и веб-интерфейс не открывается


  1. solderman
    14.10.2022 23:43
    +1

    Хмм , спасибо за идею снизить мощность передатчика. У меня при отсылке данных мониторинга на агрегатор эпизодически вылетает в перезагруз и после серии перезагрузок образумливается и снова некоторое время работает как надо.

    Надо будет придушить и погонять :)


  1. slog2
    15.10.2022 20:27

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

    И вы думаете что включая реле попадете в момент перехода напряжения через ноль? Не попадёте. Это во-первых. Во-вторых, проблема с обгоранием контактов она в момент размыкания, когда между контактами не может потухнуть дуга. Датчик перехода через ноль + реле проблему не решит.

    ESP32 + аккумулятор - тут вас тоже ждёт очень много сюрпризов.

    А вообще, от статей ощущение что вы бегаете по давно известным граблям. Вам в команду надо грамотного инженера. И про 99% ваших проблем вы бы даже и не узнали что они существуют. Они исключаются ещё на этапе проектирования.


    1. AGRO666 Автор
      15.10.2022 21:03

      Мы не думаем, нам удается попадать в момент перехода. И мы не говорили, что это единственная защита. Погасить дугу - тоже не проблема.

      Да, видел кучу статей, что невозможно заставить на esp32 четко работать одновременно WiFi и BLE. Потому что там антенна одна. Но у меня же работает это в боевом режиме уже больше 3 месяцев. И не отваливается ни WiFi ни BLE.

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