СОДЕРЖАНИЕ

Зарядка аккумуляторных устройств и отупевшая розетка

03.02.2022

Давно меня мучала странная проблема… В современном мире развелось огромное количество разнообразных электронных устройств, которые пытаются облегчить жизнь человеку. Из того, что я вижу прямо сейчас у себя на столе – это, например, powerbank, сотовый телефон, рация, машинка для стрижки волос, наушники, настольный таймер, считыватель штрихкодов, bluetooth-гарнитура, детский радиоуправляемый самолёт. Странная коллекция, но это то, что лежит на столе прямо сейчас. Не обессудьте.

Все эти устройства требуют периодической подзарядки. Огромное спасибо тем людям, которые на законодательном уровне заставили производителей отказаться от 100500 типов зарядных устройств и кое-как привели это к универсальной зарядке от USB. Отдельный луч добра хочется послать производителям бритв, которые с этим всё ещё справиться не могут, но если хорошо поискать, то решения всё-таки есть.

И пока этих устройств в хозяйстве было всего-ничего – с этим как-то можно было легко справляться. Но их развелось просто неимоверное количество. Кроме того, что я перечислил, у меня есть ещё "некоторое" количество устройств, которые куда-то убраны и ждут своего часа.

В какой-то момент, я для себя узнал, что если убогое аккумуляторное устройство с Li-ion аккумулятором будет долго лежать само по себе, то оно разрядится в ноль и аккумулятор прикажет долго жить. Было дело – я грешил на саморазряд аккумуляторов. Но боюсь, что дело не в них. Дело в самих устройствах. Приличные устройства без проблем включаются и через пять лет хранения. А лютая дрянь не может включиться и через полгода. Несмотря на полный изначальный заряд…

Но это всё лирика. Проблема в том, что все эти десятки устройств требуют постоянного внимания - периодической зарядки. Как может выглядеть подобная зарядка у нормального человека? Я вспоминаю, что какое-то устройство нужно зарядить. Достаю его и ставлю на зарядку. Дальше есть два варианта… Если оно мне срочно нужно, то мне приходится раз в 10 минут смотреть – зарядилось оно или нет? А сейчас? Ну может уже? Что, всё ещё нет? Ну когда уже? И так далее…

Этому процессу, кстати, очень помогают современные зарядки, которые умеют показывать текущий ток, которым они заряжают устройство. Это позволяет хоть как-то следить за тем, что происходит. Но тут главное слово – "следить". Ведь за этим нужно следить! А если забыть, то показания дисплея не несут под собой никакой пользы…

Второй вариант зарядки ещё более перспективный… Поставить его на зарядку и оставить там на пару недель. Ну или до момента, когда на столе закончится место.

Особенно печально это выглядит в случае, когда мне нужно зарядить коллекцию своих старых смартфонов. Я делаю это где-то раз в год. Я достаю коробку со смартфонами, достаю парочку, ставлю их на зарядку и забываю про них совсем. Но в коробке со смартфонами их сильно больше двух. И очередь до остальных доходит очень, очень нескоро. Криво всё это. Нужно как-то этот процесс формализовать и оптимизировать.

Самое простое, что приходит в голову – "хочу, чтобы зарядное устройство по окончании зарядки – начинало пищать". Это же просто прекрасная функция! Я искал подобное устройство в этом мире уже несколько лет, повторяя поиски с некоторой периодичностью. Но почему-то никто не хочет делать такие зарядные устройства. Оно, по-своему, и понятно – круг желающих относительно небольшой. А если ваше зарядка от телефона начнёт пищать посреди ночи, то скорее всего вы не обрадуетесь. И вот никто их и не делает.

Короче говоря – задумка тупиковая. Но проблема как была, так и остаётся.

В какие-то моменты своих поисков я натыкался на устройства с названием "USB-meter". Неплохие, по-своему, устройства, которые умеют показывать текущий уровень зарядки подключенного устройства. Но они всё равно требуют внимания и отслеживания того момента, когда ток зарядки достигнет минимальных значений. Почему-то в момент заказа подобных устройств мне казалось, что мне будет видно, что зарядка закончилась… Но нет, я всё ещё забываю про них "на неделю". А функцию "сигнализации окончания заряда" в них тоже не встроили.

И вот, через несколько лет поисков…

Меня осенило. Я случайно вспомнил, что некоторые из устройств "USB-meter" на борту имеют bluetooth-модуль. Вообще, насколько я понимаю, этот модуль предназначен для построения графического отчёта о том, как именно шёл процесс заряда аккумулятора. Иногда это может быть полезно, особенно если ты пишешь какой-то отчет о состоянии заряжаемого устройства. Но мне отчёт был не нужен, и я этой функцией никогда не пользовался. Да и зачем?

Но ведь если постоянно следить за состоянием этого "USB-meter" устройства, то ведь можно узнать о том, что процесс зарядки завершился? И может быть это именно то, что мне нужно?

У меня в коллекции, совершенно случайно, оказалась пара устройств UM34C, которые имели на борту bluetooth-модуль. И я решил попробовать.

При ближайшем рассмотрении всё оказалось не так уж и плохо. Был даже какой-то относительно внятный софт, который умел получать данные с этого устройства. https://github.com/bzgec/UM34C_BT

К сожалению, данный проект был явно задуман просто под то, чтобы следить за устройством с экрана компьютера. И никакой внятной автоматизации не подразумевал. Но исходники были на простейшем C/С++, так что некоторое количество правок и данная программа превращается во внятный демон, который передаёт данные о процессе заряда в централизованную систему.

У меня на столе постоянно живёт для тестов Raspberry PI, поэтому выбор в качестве контроллера пал на него. Не буду сильно вдаваться в подробности, но тот bluetooth-чип, который у RPi на борту – не выдержал работы с UM34C. Начали появляться какие-то неадекватные сбои, которые уже начали меня подталкивать к мысли, что ничего путного у меня не выйдет. Но после установки USB-свистка – всё заработало как часы.

Какое-то время и силы ушли на написание обработчиков этих данных и их визуализацию. Но не очень много. В итоге я получил уведомления в Telegram о начале зарядки устройства, напоминание раз в три часа, что зарядка всё ещё идёт, и уведомление об окончании зарядки. Получилось просто отлично.

Нужно сознаться, что не во всех случаях адекватно срабатывает уведомление об окончании зарядки. Контроллеры некоторых устройств ведут себя адекватно и в случае полного заряда устройства полностью отключают линию внешнего питания. Какие-то устройства попроще – остаются висеть на линии питания и потреблять от-туда что-то незначительное. Но где та грань незначительности? Например, максимальный ток заряда крошечных наушников – 15ma. А ток холостого хода уже полностью заряженного телефона ZTE – 40ma.

А некоторые устройства и вовсе по окончании заряда внутренней батареи просто переходят на работу от внешнего источника питания. Как сегодняшний пример – прекрасный ShellyButton1. Он просто считает нормальным работать от внешнего питания.

В общем - грань отслеживания момента окончания прополучилась достаточно размытая. Здесь ещё предстоит немного поработать.

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


И вообще-то я собирался здесь статью закончить. Но не тут-то было.


Ведь "аппетит приходит во время еды"?

Всё-таки не все устройства в современном мире имеют зарядку от USB. Осталось ещё много устройств, обладающих собственными зарядными устройствами, которые на входе требуют 220VAC. Ну вот, как и в прошлый раз – из того, что вижу: мой ноутбук, ирригатор, зарядное устройство для крупных аккумуляторов. Ведь все эти устройства заряжаются в точно таком-то же убогом режиме и точно также хотелось бы понимать когда именно процесс заряда был завершён.

Значит нужно найти какое-то решение для 220VAC. Какое может быть решение? Ну, первое, что приходит в голову из современной электроники – умная розетка! У большинства заявлена возможность измерения потребляемой мощности. Казалось бы – это ведь оно?

У меня даже завалялась в хозяйстве красивая розетка от Xiaomi. Она, правда, zigbee, но у меня под это была готова инфраструктура, так что это меня не очень пугало. Всё настроил, подключил, начал проверять. В целом – неплохо. И даже можно пользоваться. Но вот есть сложность с разрешающей способностью… Адекватная градация измерения мощности была в районе 5 ватт. Сама по себе цифра не такая плохая, особенно если смотреть на то, какие именно устройства Xiaomi предлагает подключать через данную розетку. Например кондиционер. Да понятно, что 5вт там не имеют вообще никакого значения!

Но мне хотелось включить в эту розетку зарядное устройство для аккумуляторов Liitokala, и следить за зарядом Ni-MH и LiIon аккумуляторов. А потребляемый при зарядке ток тут уже измеряется единицами и долями ватт. Что явно не входило в расчёт Xiaomi.

Плюс вторая проблема – частота обновления информации. Zigbee не очень богатый на трафик протокол, поэтому обновления от устройства приходят нечасто. К чести Xiaomi можно сказать, что при существенном изменении потребляемой мощности – апдейт всё-таки приходит. Но существенное изменение в моём понимании и в их понимании – оказались разными.

Ладно, с Xiaomi не задалось. Ещё, говорят, неплохие розетки делает Tuya. Не буду вдаваться в подробности – всё закончилось на 99% также, как и с Xiaomi. Никаких разительных достижений не оказалось.

Очень интересное предложение розетки от Rubetek с описанием на habr.

Мне очень понравилось всё, что я прочитал, пока не добрался до комментариев. В комментариях выяснилось, что API для прямого доступа так и не открыто, не смотря на обещания производителя. Итого эта прекрасная розетка работает только через родное облако. Польза есть, но в целом достаточно сомнительная. Вживую – не пробовал.

Где-то на форуме наткнулся на чей-то комментарий о том, что Xiaomi – это прекрасно, но Shelly не хуже и сильно дешевле. Полез посмотреть, кто такой Shelly.

И вы знаете… Не прогадал. Очень интересные устройства. Очень неплохой модельный ряд. И вполне сносный дизайн!

Заказал себе пару розеток для теста. ShellyPLUG-S.

Розетки оказались прямо вот очень, очень адекватные. Внешний вид достойный, родной интерфейс не требует никаких сторонних прошивок – всё из коробки адекватно настраивается. Можно включить работу через облако, а можно включить работу через локальный MQTT-сервер. Есть ещё какие-то опции связи, но я не полез разбираться.

Да, приложение на телефоне требуется для первоначальной настройки. И оно не менее убогое, чем Xiaomi Mi Home. Но после настройки WiFi-сети на устройстве – всё остальное делается (может делаться!) через web-интерфейс и выглядит просто отлично! На родном сайте абсолютно адекватная документация на MQTT-протокол. Честно говоря – не розетка, а просто чудо. Если ничего разительно не поменяется за ближайшее время, то я сниму ту пару zigbee-розеткок, которые реально использую и поменяю их на Shelly.

Ну и возвращаясь к точности измерений. Более чем достойно! На небольших токах на графиках прекрасно видно разрешающую способность уровня 0.1-0.2Вт. При условии, что при 220VAC эта цифра соответствует 0.9mА – это просто фантастический результат!

На радостях заказал себе какое-то количество прекрасных розеток. Пока ждал их приезда – привёл в порядок интерфейс управления, доделал разные мелочи. Короче – подготовился морально.

И вот они приехали.

Нашёл время и начал их подключать в систему. Долго ли, коротко ли, мероприятие успешно закончилось и я решил по старой традиции проверить корректность их срабатывания путём включения их в режиме "змейки". Ну а заодно стандартный скрипт реализующий змейку ещё автоматом проверяет полное включение всех устройств и полное их отключение. И вот пока скрипт проходил проверку с десяток раз – я почуял неладное…

Странность заключалась в звуке. В звуке, который исходил от одновременно включенных семи розеток. Это было что-то непонятно. Было похоже звук утечки воздуха из шланга компрессора. Но при выключении розеток – звук полностью пропадал.

Оперативные изыскания привели к странному выводу… Умная розетка ShellyPlug-S издаёт очень странный звук во включенном состоянии. А семь розеток, стоящих рядом друг с другом, да ещё на расстоянии 1м от уха – издают нормальный такой звук! К сожалению, я от расстройства отвлёкся и не померял громкость звука в dB. А поскольку изначально подразумевалось, что розетки будут всегда во включенном состоянии стоять и мерять текущую нагрузку, то вся моя идея полностью проваливалась, поскольку работать под этот странный шуршащий звук было явно некомфортно.

Времени что-то придумывать не было (да и что тут придумаешь?) и я их отключил и отвлёкся на неделю на другие, более полезные дела.

И вот появилось немного свободного времени и я полез посмотреть, может быть случится какое-то чудо? Но чуда не предвещалось… Я предположил, что шумит дешёвый преобразователь AC/DC, и при разборе розетки выяснилось, что для моего уровня пайки – он немного мелковат.

Но после того, как я немного подумал (никогда не вредно!), я понял, что если бы это был он, то шумел бы он всё время. А он шумел только при "включенной" розетке. Значит это был не блок питания. Мои познания в радиотехнике на этом этапе были исчерпаны и пришла очередь "звонка другу". Коллегиально мы пришли к выводу, что скорее всего шумит реле, которое отвечает за включение/выключение выхода розетки. Скорее всего это связано с сильными помехами в схеме питания реле. Информация интересная, но полезность её очень сильно оставляет желать лучшего – изменить схему питания реле задача не тривиальная, особенно при условии того, что она (кажется) сделана на smd-элементах.

И вроде бы уже пора было сдаться… Но подумалось мне, что мне вообще-то во всей моей задаче - нет никакой ценности в управлении этой розеткой. Мне от неё был нужен power-meter. А значит – я могу избавиться от реле, как от такового. А если реле не будет, то и шуметь будет нечему. Сказано – сделано!

Осталось только придумать как это реализовать. Опущу страдания на ровном месте. Перейдём сразу к решению. Берём дримель и высверливаем управляющую ногу реле. Причём высверливаем её в самом реле! Она нам больше не нужна. Выглядит нога так.

А так выглядит идеально выпиленная нога.

Только не перестарайтесь. Если перестараться, то из реле начинают вылезать волосы медной обмотки катушки. Это очень нетривиально с точки зрения дальнейшей их изоляции. Короче – делайте как на фотографии. Получится отлично.

После этого возникает проблема с тем, каким образом подать "фазу" на выход умной розетки, при условии того, что реле уже не функционирует. Можно поставить шунт с помощью ПУгВ, но места в розетке под него небогато. Поэтому нашёлся другой вариант. Только не ржать! Мы уже всё равно надругались на реле? Давайте вскроем его окончательно.

Таким несложным образом мы получили доступ к коммутирующим контактам реле.

Припой на них ложится идеально. Спаиваем их вместе и никакой внешний шунт нам больше не нужен.

Странное вмешательство в механизм умной розетки…

И да, розетка отупела - управлять ей больше нельзя. Но функцию power-meter она полностью сохранила!

Зато теперь она абсолютно бесшумная! Сомневаюсь, что кого-то в этом мире переклинит также сильно, как меня, но если это случится, то есть шанс, что эта инструкция немного пригодится.

Немного примеров того, что было получено в результате работы не очень умной розетки:

Как-то так заряжался ноутбук (не сильно разряженный).

Зарядка пары Ni-MH аккумуляторов в устройстве Liitokala.

Ирригатор

В общем, подытоживая всю историю - очень рекомендую подобное решение. Наверняка у него есть и более интересные применения, чем то, ради которого оно было сделано. Может быть я ещё добавлю что-то к этой статье. Но в целом я считаю, что время было потрачено не зря.

UPDATE 2022-09-07: Время показало, что как измерительное устройство ShellyPlug-S прекрасна. Но хочу всех предостеречь - в качестве управляемой розетки её стоит использовать с большой осторожностью. Внимательно подумайте - точно ли вам не будет мешать её "шуршание" в том месте, где вы её собираетесь ставить. В полной тишине оно более чем заметно. И с двух и с трёх метров. Аккуратнее!

UPDATE 2022-10-14: Одна из розеток приказала долго жить. Интересно, сколько протянут остальные. Помониторю.