Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Часть 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.