Умный дом для геккона и сверчков: год спустя
Примерно год назад я уже писал, как собрал умный дом для моего любимого эублефара.
За это время он прошёл несколько модификаций, и у меня появилась живая еда, которой тоже нужен свой дом. Что характерно, тоже умный. Если вы не читали первую часть, то рекомендую начать с неё, так как буду рассказывать не с нуля, а про апгрейды.
Дисклеймер
Прежде, чем читать дальше, давайте уточню, что я не герпетолог и не электрик. Я простой бекенд разработчик. И ни за что бы не доверил жизнь животного автоматике, если бы не мог её постоянно контролировать глазами. Пожалуйста, будьте осторожны, и не копируйте бездумно то, что я здесь написал. Я предупредил, и не буду чувствовать себя виноватым, если вы, например, сварите своих аквариумных рыбок. Но мне будет их искренне жаль!
Выявленные проблемы
Первый блин всегда комом, и этот проект не стал исключением. Первая версия, описанная в прошлом посте, уже была немного обкатана, но часть проблем вылезают спустя длительное время.
Завязка на автоматизации во внешнем сервере. Сценарии обогрева были прописаны на Home Assistant. И зависание сервера привело к остановке его работы. Хорошо, что я догадался заранее сделать закладку в коде микроконтроллера на этот счёт, чтобы он выключал обогрев, если не получает корректирующий сигнал. В результате в один прекрасный день геккон был немного недогрет, зато не прожарен.
Использование беспроводных датчиков. Зигби и беспроводные технологии это восхитительно. Но ровно до тех пор, пока работает безукоризненно или на них не завязано никаких критичных вещей. А в моём случае я столкнулся со странной спецификой работы то ли датчиков, то ли софта, в результате которой при отвале датчиков на сервере я получал константную температуру. И когда она была низкой, то лампа в результате не переставала греться… И это тот самый случай, когда всё могло бы закончиться плохо, если бы я не смотрел за гекконом глазами и не имел бы механического термометра.
И всё же влажность влажна. То есть, важна. В комментариях к прошлому посту я писал, что в результате отрубил увлажнитель, так как и без него всё неплохо. Но сравнение линьки с увлажнителем и без него однозначно показало, что легче мини-дракон линяет при наличии увлажнителя.
Механическое реле это плохо. Свет и увлажнитель я изначально включал при помощи механических реле. Стандартных ардуиновских и умной розетки известного бренда. Поначалу это казалось быстрым простым решением, однако… Иногда они просто не отрабатывают. К счастью, на них не было завязано ничего критически важного.
Прототип должен быть легко разборным. Хочется сразу сделать суровую коробку и всё там намертво зафиксировать, но это очень сильно затрудняет отладку и ремонт.
Греющая лампа сильно сушит воздух в террариуме и разогревает его крайне неравномерно. Для меня было удивительно, что температура и влажность оказались супер локальным явлениями и могут значительно отличаться на расстоянии в жалких 10 сантиметров!
Поставленный изначально увлажнитель увлажнял воздух вокруг террариума, и его приходилось включать на полную мощность, чтобы удержать зимой требуемые значения. Как следствие, воду приходилось доливать примерно каждые 12 часов, что несколько надоедало.
Новые решения
Проводной датчик температуры. Теперь в террариуме стоят два датчика Dallas, которые не боятся влажности и довольно точно меряют температуру. Беспроводные датчики остались (фиг их отклеишь), но служат как источник дополнительных данных. Кстати, за год батарейки в них просадились всего до 57%. Так что не стоит верить странным людям, которые твердят про постоянную замену батареек.
Вместо реализации логики на стороне Home Assistant, я унёс её внутрь микроконтроллера. Теперь он сам узнаёт время суток, понимает требуемую температуру, сравнивает её с текущей, ставит мощность диммера и включает \ выключает лампу освещения. Ну, а Home Assistant служит чисто для мониторинга и алертов.
Механические реле были заменены на твердотельные. Да, там предельный ток меньше… Но на лампы и увлажнитель хватает с лихвой. Ничего больше не щёлкает и не залипает.
Увлажнитель я заменил на другой, в комплекте с хоботом, чтобы не колхозить. А хобот направил в террариум. Правда, оказалось, что минимальная мощность увлажнителя превращает дом геккона в что-то из Silent Hill. Было лень думать, как сделать мощность ещё меньше, так что я вспомнил постулаты ТРИЗ и настроил микроконтроллер, чтобы он включал увлажнитель раз в минуту на 15 секунд. Отлично работает!
На смену бинарной логике греющей лампы пришёл диммер. Теперь, вместо того, чтобы включать обогреватель на полную, он включается лишь на часть мощности в зависимости от разницы температур. Да, в силу того, что система инертна, в результате график температуры выглядит как синусоида -, но колебания выходят не больше, чем в пол градуса.
Под террариум добавился греющий коврик. Он не может нагреть стекло и подстилку над ним до опасной температуры, но поднимает её без потери влажности внутри. Забавно, но оказалось, что при наличии постоянно одинаково работающего коврика и включащейся днём лампы получается почти тот же самый режим, что я старался сделать греющей лампой. Так что сейчас она включается реже — только когда температура сильно упала по всему дому.
Будущие доделки
В прошлом посте я писал про то, что доволен тем, что получилось, и думал, что это финальная версия. Но год мелких доработок показал, как я был неправ. Да и скажем честно — мне приятно и интересно этим заниматься. Так что на будущее я меня запланировано следующее:
собрать удобный корпус для всего этого
добавить термореле на случай восстания машин
Поменять Wemos D1 на что-то с большим количеством памяти, а то предел почти достигнут
Добавить локальный звуковой алерт
добавить красивый дисплей. Лучше, чем с Home Assistant, не будет, но прикольно же!
добавить кнопку для обозначения кормления, и алертинг, если животное долго не кормили
добавить амперметр, чтобы видеть, что какой-то из потребителей (коврик, лампа, увлажнитель) сломался и его надо менять
Сверчки? Что сверчки?
Ах, да. Сверчки. Геккону полезно есть их свежими, а не замороженными или консервированными. Так что в какой-то момент дома появилась и эта нечисть. И конечно же мне сразу стало интересно, как максимизировать их продолжительность жизни. Оказалось, что для этого им нужно поддерживать температурный режим и низкую влажность. Казалось бы — что проще? Однако как раз влажность они каким-то образом повышают сами! Ну или может быть она идёт от корма. В общем, эта задача была проще, чем с гекконом, и решилась датчиком, греющим ковриком и вентилятором. После этого они стали жить по несколько недель и довольно сверчать ночами. Пока что я удерживаюсь от того, чтобы дать им условия для размножения, и просто периодически закупаю новых. Но не знаю, сколько ещё смогу держать себя в руках…
Бесплатный бонус
Во время сбора датчиков температуры, я умудрился снова заболеть ковидом. А градусника дома не было. Немного подумав, я взял датчик Dallas и замерил температуру им — получилось довольно точно! Хотя детей вид отца с торчащим из-под руки проводом немного удивил. Хотя нет, кого я обманываю. Вообще не удивил, они меня уже много лет знают!
Если вы тоже хотите автоматизировать своего геккона
Код управления диммером террариума
Код управления увлажнителем
Код дома сверчков