Сегодня проверял работу вентилятора в ванной. У меня настроено так что он включается при включенном свете и если влажность повышается больше 70 процентов и работает пока горит свет или влажность не меньше 70 процентов. При закрытой двери и влажности больше 70 процентов вентилятор работает пять минут и после этого, если влажность опускается то он выключается.
Сегодня провел эксперимент, проверил работу вентилятора при закрытой двери, и с 86 процентов до 68 влажность упала за 22 минуты, если дверь ванную открыта, то вентилятор всегда принудительно выключается. Конечно лучшим способом снизить влажность ванной комнате это открыть дверь, за счет этого во-первых повышается влажность в других комнатах и очень быстро опускается влажность в ванной. Также я понаблюдал скорость падения влажности в ванной, получилось, что 68 до 35 процентов влажность упала за 24 минуты. У меня используется самодельный датчик температуры влажности в ванной, также на этом датчике установлен датчик освещенности, который показывает освещенность в ванной и используется в сценарии управления светом, и датчик движения. Почему я сделал свой собственный датчик, а не использую готовый, например у меня установлен там также датчик Xiaomi температуры влажности, я пробовал туда ставить датчик движения тоже от Xiaomi, но в целом получается, что не очень удобно управлять по датчику движения от Xiaomi, потому что задержка была на срабатывание повторное больше 1 минуты и например если свет выключается, то он этого не видит и не может сработать. Мой датчик сделан так что при отсутствии света и наличия движения он сразу отправляет сигнал в умный дом и я обрабатываю событие и включая свет. При сравнении двух датчиков самодельного и от Xiaomi наблюдается разница во влажности достаточно большая, датчик Xiaomi показывает около 65 процентов тогда как мой датчик показывает 85.
В нижней части датчики показывают примерно одинаково, но опять же Xiaomi показывает чуть больше чем мой самодельный датчик. Свет в ванной у меня настроен по открытию двери, на дверь я установил датчик открытия дверей и свет включатется при открытии двери, а выключается при повторном открытии двери. Есть еще несколько режимов, когда у меня при открытой двери я захожу закрываю за собой дверь момент и если он был выключен то он тоже включается. Есть еще режим временного посещения ванной когда я открываю дверь захожу, дверь не закрывая делаю дела в ванной и через некоторое время выхожу, в этот момент при закрытии дверей свет также выключается. Если дверь остается открытой то обрабатываю датчик движение и если больше минуты не было никакого движения в ванной то свет тоже выключается. Ну и конечно при открытой движение ванной и наличия движения в ванной свет тоже включается, но здесь есть нюанс, если выходишь из ванной и быстро проверять датчик движения и на него реагировать, то свет может снова включиться, поскольку пока выходишь датчик тоже отрабатывает. На датчике движения у меня используется задержка 2 секунды, этого достаточно, чтобы успесь считать с него значение. но достаточно быстро сбрасывает значение если движение отсутствует.
Сам датчик построен на attiny85 и работает от батареек, но пока временно подключены большие батарейки типа AA три штуки и конечно них он работает очень стабильно даже несмотря на то что батарейки уже не новые, а сильно подсевшие, примерно одна батарейка где-то 1.3 вольта выдает всего. Если attiny питать от батареек типа CR2032 и CR2450, то при срабатывании наблюдается сильная просадка напряжения, я использую конденсатор для того чтобы сгладить, но этого все равно недостаточно и стабильность иногда может быть нарушена. Для передачи значения с attiny 85 я использую радио канал 433 мегагерца, установлен передатчик 5-вольтовый, который может работать и до 3 вольт вполне надежно и он передает соответственно информацию о температуре и влажности и движении и освещенности, также считывается раз в сутки значение заряда батареи и тоже передается в систему умного дома.
На приемной стороне установлен самодельный приемник на базе ESP 8266, для передачи я не использовал никаких библиотек, передаю в виде сигнала 32 битного, в нем закодирована информация о датчике и значении. Температуры и влажность передается одним сигналом, а движение и освещенность двумя разными сигналами. Сама кодировка сигнала сделана просто как целочисленная, соответственно я кодирую два занака это номер сенсора и остальные семь разрядов для передачи значения, если надо передать 2 значения, то я группирую, первые три или четыре цифры это температура, вторые три цифры это влажность, температура передается с дробными значениями, с десятыми, влажность передается целыми числами. Отправка выполняется раз в полчаса, но например на других своих датчиках я делаю порядка 50 минут отправку для того чтобы каждый час у меня значение было в базе либо при резких изменениях значений, это если меняется температура на пол градуса или влажность на 5 процентов.
Также на базе attiny 85 я сделал счетчик расхода воды, раньше использовал на базе Arduino Nano, но для него требуется питание от розетки и в случае пропадания питания счетчик сбрасывался, что не очень удобно, поэтому через некоторое время я решил, что нужно сделать работу датчика от батарейки, и для этого я обычно использую attiny 85, сама схема конечно очень простая, это микроконтроллер и к нему подключены провода от счетчиков. Счетчики либо разрывает сигнал либо замыкают контакты герконом и отправляют сигнал где-то раз в 5 литров, на самом деле сделано не совсем точно один сигнал проходит через 3 литра, второй сигнал через 7 литров, но в целом я считаю это за 5 и записываю в базу именно так. Сам счетчик он тоже считает локально количество потребленных литров и каждый раз передает в систему умного дома сколько было потреблено воды и даже если при передаче были будет пропуски пакетов, то при следующей передаче просто эта информация будет обновлена и значение будут актуальны. Также я передаю каждые 5 литров сигнал, что можно использовать для контроля протечки или если кто-то забыл выключить воду. Иногда бывает, что например в бачке унитаза заедает кнопка и таким образом тоже смогу определить, что идет расход воды. Можно конечно передавать раз сутки и будет экономится батарея, но на самом деле с помощью расчетов видно, что количество передаваемых пакетов не настолько критично. Например у меня один attiny работает от батарейки CR2450, у этой батарейки расчетное количество энергии это 650 миллиамперчас, при текущем режиме работы позволяет этому датчику проработать около 4 лет. Оправка производится в среднем это шесть раз в час при потреблении 15 кубов в месяц, это для и горячей и холодной одновременно. В целом attiny достаточно экономичные и потребление в режиме ожидания совсем небольшое, это порядка 4 микроампер, потребление в режиме передачи это зависит во-первых от самого передатчика и суммарно получается около 15 миллиампер, но так как передача достаточно быстрая, обычно для частоты 433 МГц используется передача 6 пакетов, что в сумме занимает порядка 300 миллисекунд, но при работе от батареек типа CR 2032 или 2450 у них есть ограничения по максимальным току и желательно на CR 2032 использовать не более 6 миллиампер, а разовый ток на CR 2450 не более 9 миллиампер. Но у меня стоит конденсатор параллельно и он позволяет достаточно качественно передавать сигнал.
Пакеты теряются это видно по статистике записи в базу, т.е. я беру количество переданных литров, например 100 литров передалось, если я знаю что должно передаваться каждые 5 литров, то есть это 20 пакетов передачи, если я их не получаю, то соответственно я могу рассчитать надежность связи между датчиком и системой умного дома.