Attiny
Сначала я пытался сделать устройство которое работает сети, питается от 5 вольт, но довольно быстро стало понятно что гораздо удобнее использовать устройства на батарейках, на рынке конечно было достаточно мало устройств, которые можно было купить, либо они стоили очень дорого, и мне пришлось изучать на чем же можно сделать эти устройства альтернативно, в основном я в итоге пришел к тому что использую микроконтроллер attiny 85, есть специальная версия, которая позволяет работать с низким потреблением в режиме сна это версия 20u и на этой версии потребление в режиме сна этого микроконтроллера составляет всего 4 микроампера, так в режиме работы этого микроконтроллера около 4 миллиампер и это конечно, например если я использую батарейку CR2450 я ее выбрал потому что она побольше у неё больше номинальный ток, который она может отдавать, и этот микроконтроллер в режиме ожидания может проработать 17 лет, а если его он будет работать в режиме непрерывном, то он конечно проработает около 6 дней, если исходить с того что батарейка CR 2450 имеет емкость 610 миллиампер час.
Watchdog
Для того, чтобы этот микроконтроллер постоянно засыпал используется специальный режим Watchdog, это такой таймер который позволяет пробуждать микроконтроллер с какой-то периодичностью например на этом микроконтроллере есть возможность его настраивать на разных диапазоны от 100 миллисекунд до 8 секунд и получается так что микроконтроллер когда выполнил какое-то действие переводит себя в режим сна, и дальше этот таймер, он работает параллельно питается отдельно и соответственно он потребляет очень мало энергии собственно эти четыре микроампера, и дальше при срабатывании этого условия, этих 8 секунд, он пробуждает микроконтроллер. Он достаточно быстро пробуждается, в принципе включается на том же месте на котором он остановился и дальше продолжается программа выполняться с сохранением всех данных, которые на нем были момент накоплены.
Лайфхак
Чтобы обеспечить работу этого датчика достаточно долго, для этого микроконтроллера конечно нужно чтобы он как можно дольше спал и как можно меньше работал, это позволяет сделать таким образом что сам цикл работы должен быть очень короткий. Конечно можно сделать например если используются какие-то датчики опрашивать например раз в минуту, это сделано таким образом что когда таймер пробуждается например каждые 8 секунд он проверяет суммарно прошло ли 60 секунд, и если они прошли, то можно выполнить какое-то действие, если не прошли то микроконтроллер снова сразу засыпает и практически не тратит время, но некоторые датчики которые я использую, например датчики температуры, они работают по протоколу i2c, этот протокол последовательного обмена и нужно некоторое время для того чтобы с этого датчика считать значение, то есть отправлять специальные наборы импульсов, датчик обрабатывает и возвращает значение тоже достаточно быстро, но это может быть даже до 50 миллисекунд продолжаться и существенно влияет на расход батарейки.
Счетчик
Или например если у меня используется датчик в качестве счетчика воды, то само срабатывание геркона на счетчике может выполняться достаточно часто, и если например микроконтроль будет просыпаться только раз 8 секунд он может пропустить это действие и соответственно не посчитать этот расход, поэтому есть разные счетчики, которые считают по литру, есть которые считают по 10 литров, но в основном конечно все ставят которые считают по 10 литров за цикл импульса, то есть одно включение и выключение, то есть получается что включение или выключение это 5 литров, то есть если идет расход то конечно может оказаться что за 8 секунд эти 5 литров потратились и микроконтроллер не увидел изменения статуса этого геркона, приходится делать так что микроконтроллер должен просыпаться чаще это может быть и несколько миллисекунд допустим 100 или 200, или 500, либо это может быть несколько секунд например одна или две, или четыре, это я подбирал опытным путем, нужно понимать например какой расход идет если например все краны одновременно будут включены, то успевать в этот момент засечь изменение статуса, но чем чаще пробуждается тем конечно больше получается у него время работы суммарно и тем больше расход батареи.
Я конечно пытаюсь придерживаться соотношение где-то 1000, в таком режиме он позволяет проработать примерно 500 дней, вообще я сделал такой способ измерения работы микроконтроллера, чтобы понять сколько он находится в режиме активным сколько в режиме сна, то я просто например есть такой таймер millis на микроконтроллере, команда которая позволяет посмотреть сколько времени контроллер в принципе проработал в активном режиме, если он засыпает то этот таймер останавливается, и понятно что нужно каким-то другим образом понимать как идет время когда микроконтроллер спит, и в этом случае я знаю просто на какой таймер у меня настроено, и соответственно если допустим на 8 секунд настроен, то я к значению параметра, который сохраняет время сна прибавляю 8 секунд и таким образом понимаю сколько всего находился и в каком режиме.
Сколько
Конечно если использовать батарейку например другую, вообще этот микроконтроль позволяет достаточно большой диапазон работы с батарейками, он может работать от пяти с половиной вольт максимально, до где-то 2.8 вольта, дальше работает нестабильной, но оно еще зависит от того какая частота на микроконтроллере используется, я использовал 8 мегагерц, это практически заводская настройка и обычно я конечно питаю от трехвольтовых батареек, но принципе можно и использовать 5 Вольт например это питать от какого-то usb-зарядника, или например это может быть три батарейки пальчиковых типа АА, то они вместе будут давать четыре с половиной вольта, но это по номиналу конечно новые батарейки дают больше и есть конечно вероятность что даже выйдет за 5 с половиной вольт, также для некоторых датчиков я использую питание от литий-ионной батарейки, там базовое напряжение на 3.8 вольта, но когда она только что заряжена была, то там обычно показывают 4.2 вольта, это для микроконтроллера вполне нормально и он конечно от такой батарейки может работать очень долго, причем никакие большие токи например, которые требуются для передачи информации, на напряжение практически не влияет.
Еще на микроконтроллере есть возможность измерять напряжение питания, там есть встроенная такая функция, если например я измеряю при питании от батарейки то в этот момент конечно контроллер включен и напряжение обычно сильно занижено в отличии от того если его измерять допустим в режиме сна микроконтроллера, или просто без нагрузки измерять напряжение на батарейке, но допустим от питания от больших пальчиковых или мизинчиковых батареек, или от литий-ионнной батарейки, то там такого проседания практически нет, и на основании этой информации, конечно можно также передавать систему умного дома, и отслеживать состояние батареек.
Дольше
С литий-ионными батарейками конечно нужно быть аккуратней, потому что они очень плохо относятся к переразряду, но такой контроллер в принципе не способен по факту посадить эту батарейку, если только не будет работать в режиме постоянно включено.
Такой микроконтроллер это самый простой, есть конечно еще Attiny 13 у которого характеристики поменьше, и памяти встроенной и производительности поменьше, но практически я не использовал никогда, потому что абсолютно нет смысла, Attiny 85 стоит не намного дороже, порядка 100 рублей, к нему датчики, например датчик температуры стоит порядка 200 рублей, это если хороший, если это самый простой датчик, то он может около 50 рублей стоит, эти датчики температуры и влажности идут одновременно, что принципе достаточно удобно.
А надо?
Вообще стоимость конечного такого устройство получается достаточно низкой, то есть порядка 500 рублей, но конечно можно найти фирменные устройства например Xiaomi или Tuya, который тоже будет работать либо на на батарейках либо даже на CR2032, и примерно такое же время, конечно у них достаточно красивый корпус уже и они в целом гораздо качественнее сделаны, но плюс самодельного устройства это то что можно подключить например еще датчик освещенности и параллельно измерять освещенность датчиком освещенности, это простой фоторезистор за 2 рубля который можно купить, и конечно функциональность датчика сильно расширяется.
Автоматизация в умном доме должна быть полезной и создавать дополнительный комфорт, но иногда всё идет не так… Причины этого, и как всё настроить в смотри и читай на моем канале!
Присоединяйтесь к Телеграм каналу про Умный дом 👍
Читайте новые статьи, слушайте подкасты, смотрите видео, изучайте новинки на сайте AlexSmartHome 📌
💡 Если есть идеи как можно улучшить автоматизацию, сделать её более надежной, быстрой и полезной, то можно оставить комментарий ниже. Попробую реализовать предложения и расскажу в следующих статьях и видео!