Что показывает дисплей индикации энергопотребления

Обновлено: 04.07.2024

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

Поэтому сегодня я расскажу о некоторых ухищрениях, которые позволят сохранить десяток-другой драгоценных процентов, когда это будет необходимо. Многие уже о них знают, но, думаю, так же многим материал будет полезен. Говорю сразу: да, почти все скопировано с других ресурсов, но моя цель - собрать как можно больше информации "под одной крышей". Будет рассказано об снижении энергопотребления без использования Root-доступа. О возможностях с Root-доступом планирую рассказать во второй части.

Начнём с простого. Потяните вниз шторку уведомлений. Какие беспроводные соединения включены? Безжалостно отключайте те, которые сейчас не нужны. Следует понимать, даже если вы не пользуетесь включенными в данный момент Wi-Fi, Bluetooth, GPS, ваше устройство всё равно расходует энергию на многочисленные неявные соединения. Поэтому совет прост, включаем при необходимости и отключаем при ненадобности.

В дополнительных настройках Wi-Fi включите функцию "отключение Wi-Fi в спящем режиме", это значительно уменьшит расход энергии, тогда, когда экран устройства выключен и Wi-Fi по сути не нужен.

Чтобы навигационное приложение быстрее и менее энергозатратно вас находило, включите функцию "определение координат по беспроводным сетям" вместо GPS, во многих случаях полученной точности местоположения будет достаточно, а энергии на это потребуется в несколько раз меньше.

Чтобы ускорить поиск спутников посредством GPS (а значит и сэкономить заряд), включите кратковременно "Передачу данных", программа скачает координаты спутников из интернета и быстрее их найдёт.

Передача данных (мобильный интернет) тоже расходует энергию. Включённая функция "Передача данных" позволяет многочисленным приложениям постоянно "ломиться" в сеть для обновления своих данных, загрузки рекламы и отправки различных запросов. Поэтому рекомендуется при неиспользовании интернет-соединения всегда отключать передачу данных (EDGE, 3G, WiFi и пр.), это может сэкономить до 20% заряда за ночь. Если интернет вам всё же необходим на постоянной основе, можно снизить энергопотребление от передачи данных уменьшив кол-во приложений имеющий свободный доступ в интернет. Для этого необходимо установить и настроить Firewall (например Mobiwol: Firewall без root, а также отключить автосинхронизацию в ненужных аккаунтах (учётных записях).

Экономичный режим для 3G сети.

При использовании режима 3G и в случае если вы не пользуетесь SIP-протоколом можно уменьшить расход энергии на связь путём отключения обязательную регистрацию IMS в сети.

2. В открывшемся меню выбираем "Информация о телефоне";

3. Нажимаем кнопку "Обязательная регистрация IMS", должно стать "отключена".

4. Закрепляем результат перезагрузкой.

Отключение радиомодуля и "лишних" радиочастот.

Уровень приёма сотовой связи оказывает значительное влияние на сохранение заряда. Чем слабее уровень принимаемого сигнала (меньше делений индикатора антенны на экране) тем больше аппарат тратит энергии на его усиление. Поэтому, в зонах неуверенного приёма сети (к примеру в поездке) лучше отключать радиомодуль аппарата, переводя его в режим "в самолете".

Сэкономить заряд можно также отключив не задействованные вашим сотовым оператором диапазоны частот, тем самым аппарат не будет впустую тратить энергию на их сканирование. Для этого необходимо попасть в инженерное меню с помощью кода. Далее на вкладке Telephony выбрать BandMode -> SIM1 (SIM2) -> убрать галочки с неиспользуемых диапазонов и нажать SET.

В России используются следующие режимы частот:

для GSM (2G) - GSM900 и DCS1800;

для UMTS (3G) - WCDMA-GSM-900, WCDMA-IMT-2000 (2100) и CDMA450 (абоненты Скайлинк);

для LTE (4G) - LTE2500, LTE800, LTE2600, реже LTE2300 (Ростелеком), LTE1800 (Екатеринбург), LTE450 (Скайлинк).

По возможности отключайте автояркость, автоповорот дисплея.

Сенсоры и датчики (акселерометр, датчик магнитного поля и т.д.)

Современные мобильные устройства буквально напичканы всевозможными датчиками, которые естественно, требуют энергии для своей работы. Посмотреть, какие датчики есть в вашем аппарате и сколько они потребляют очень просто, достаточно установить приложение Android System Info, зайти во вкладку System и выбрать пункт Sensor. В первых Android-устройствах обычный акселерометр (датчик, определяющих положение устройства) потреблял до 15 мАч, в современных аппаратах это значение как правило в 100 раз меньше, порядка 0.1-0.15 мАч. Если у вас примерно такие же цифры, то нет особого смысла отключать "автоматическую ориентацию экрана" или "автоматическую яркость" (датчик освещённости), каким-либо значительным образом это не отразится на общем энергопотреблении аппарата.

Однако, следует помнить, что многие приложения (прежде всего игры), в которых задействовано управление наклонами аппарата, могут использовать сразу несколько датчиков (акселерометр, гироскоп, датчик вращения, датчик ускорения, датчик ориентации, датчик гравитации и т.д.), что в сумме может дать потребление до 50 мАч.

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

Энергосбережение Anddroid OS. Часть 1. Android, Энергосбережение, Совет, Длиннопост

Чем больше на этой картинке будет чёрного цвета и тёмных оттенков, тем меньше AMOLED экран будет потреблять энергии. Поэтому используйте по возможности тему с чёрным или тёмным цветным фоном, с температурой цветов более 6500К (см. рис. ниже).

Энергосбережение Anddroid OS. Часть 1. Android, Энергосбережение, Совет, Длиннопост

Сторонние и встроенные режимы энергосбережения, приложения для экономии.

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

В Android 5.0 наконец-таки появился встроенный режим энергосбережения. Чтобы активировать его, идём в Настройки (Параметры) > Батарея, жмем на три точки в правом верхнем углу, выбираем Режим энергосбережения - и вуаля!

Энергосбережение Anddroid OS. Часть 1. Android, Энергосбережение, Совет, Длиннопост

Энергосбережение Anddroid OS. Часть 1. Android, Энергосбережение, Совет, Длиннопост

Энергосбережение Anddroid OS. Часть 1. Android, Энергосбережение, Совет, Длиннопост

Энергосбережение Anddroid OS. Часть 1. Android, Энергосбережение, Совет, Длиннопост

Думаю, на скриншотах все ясно без объяснений. Можно выбрать, при каком уровне заряда он будет включаться автоматически, либо включить принудительно.

Одной из "фишек" недавно презентованной ОС Android 6.0 Marshmallow стал режим Doze.

Энергосбережение Anddroid OS. Часть 1. Android, Энергосбережение, Совет, Длиннопост

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

Если же у вас нет ни того, ни другого, на помощь придут многочисленные приложения для экономии электроэнергии в Google Play. Достаточно набрать в поисковой строке "battery saver", "экономия энергии", и появится список наиболее популярных приложений. На мой взгляд, наиболее полезными функциями в таких программах является выбор режима экономии из предусмотренных, добавление своих режимов, а также автоматическая смена режимов - либо при достижении определенного уровня заряда, либо в указанный временной промежуток.

По поводу использования таск-киллеров, мнения обычно делятся на два лагеря:

1. Встроенный менеджер задач прекрасно справляется, выгружая из памяти неиспользуемые приложения. Если вы видите в "Запущенных", например, Браузер, который не запускали, - не пугайтесь, просто система заблаговременно сама поместила неактивные части программы в память и, когда вы решите его-таки запустить, необходимо будет подгрузить лишь малую активную часть (activity). Лучше пусть при запуске подгрузится лишь часть необходимых ресурсов.

2. Эти-то фоновые приложения и вытягивают драгоценную энергию, лучше их совсем "прибить". Да и оперативная память очистится.

Поэтому я не могу дать однозначного ответа, полезны ли менеджеры задач для экономии энергии или наоборот, вредны.

Стандартные средства ОС Android дают возможность отключать многие системные программы, начиная с версии ОС 4.0 и принудительно останавливать ВСЕ программы. И то, и другое будет полезно для экономии энергии.

Пользуетесь любимым музыкальным плеером, а стандартный простаивает без дела? Так отключите же его! Для этого идём в Настройки (Параметры) > Приложения > Все > [Нужное приложение] и смотрим, есть ли пункт "Отключить".

Энергосбережение Anddroid OS. Часть 1. Android, Энергосбережение, Совет, Длиннопост

Но будьте внимательны: некоторые системные программы, отвечающие за корректную работу системы и взаимодействие с пользователем, отключать нельзя, а удалять уж тем более. Обычно такие программы не отображаются в меню приложений и не имеют пользовательского интерфейса. Android вроде бы не даст отключить приложения, без которых система не будет работать при перезагрузке, но приложения, без которых не будут работать те, или иные компоненты, отключить, тем не менее, можно. Например, в моем Sony не будет работать геопозиционирование без приложения ANT Radioservice, хотя отключить его можно. Уточняйте приложения, необходимые для стабильной работы вашего аппарата на тематических сайтах. Что смело можно отключать: приложения экосистемы Google (Play Market, YouTube, Google+, Карты Google и т.п., но не трогайте Сервисы Google Play (Play Services Framework), без них не будут работать оставшиеся гуглоприложения), медиаприложения (галерея, аудио/видеоплер, эквалайзер/улучшалка звука камера (без отключенной стандартной камеры могут перестать работать сторонние)), сторонние приложения, встроенные в систему.

Принудительная остановка той или иной программы тоже поможет сэкономить энергию. Для этого идём в Настройки (Параметры) > Приложения > ищем нужное и жмем "Остановить".

Энергосбережение Anddroid OS. Часть 1. Android, Энергосбережение, Совет, Длиннопост

Наконец, удаление ненужных сторонних приложений тоже можеть дать некую экономию.

Вот, вроде, все. Если что забыл, где-то ошибся, прошу больно не бить. =) На вопросы постараюсь ответить. =)

Ваттметр (измеритель мощности электрического тока) кажется элементарным прибором, но на самом деле он должен выполнить непростую математическую задачу.
Ведь это только в школьном учебнике физики для получения мощности просто надо перемножить ток на напряжение!
А по жизни ток может иметь гораздо более сложную форму, чем синус или постоянный ток; причем фаза тока и напряжения могут не совпадать, и всё это надо как-то учесть.
Современные цифро-аналоговые процессоры (можно назвать микроконтроллерами) позволяют эту задачу решить прямым вычислительным способом: взять величину тока и напряжения за каждый дискрет времени, перемножить их и просуммировать за некоторый интервал времени; в результате чего получить мощность и ещё кучу разнообразных параметров.
В этом обзоре будет рассмотрена одна из многочисленных разновидностей такого рода приборов:


(изображение с Алиэкспресс)

Этот цифровой ваттметр куплен на Алиэкспресс у этого продавца, цена на дату обзора — $12.5 (может меняться).

И ещё несколько слов, поясняющих, почему точное значение мощности нельзя получить, просто взяв и перемножив ток на напряжение даже для чисто активной нагрузки.

Обычные измерительные приборы (вольтметры, амперметры, мультиметры) не измеряют непосредственно величину среднеквадратичного значения измеряемого параметра (тока или напряжения), которая нужна для расчёта мощности.

Они измеряют обычно величину среднего выпрямленного значения параметра (тока или напряжения), и на этой основе перемасштабируют в среднеквадратичное значение.

Такой способ — вполне корректен для «идеального» синуса, но в наших розетках нет идеального синуса!

Вот пример осциллограммы напряжения в розетке (взят из обзора блока выпрямителя и фильтров для УНЧ):


Для такого рода напряжения не будет полного совпадения значения, измеренного «обычным» вольтметром, с реальным среднеквадратичным значением.

Иными словами, такая форма напряжения может создать некоторую погрешность метода, причём в данном случае даже затруднительно предсказать знак погрешности.

А ещё в добавок может быть сдвиг фазы между током и напряжением, если в нагрузке присутствует реактивная составляющая.

И вот здесь на помощь приходят цифровые ваттметры, которые могут всё замерить и посчитать, «как надо»! Причём, смогут замерить не только основной параметр (мощность), но и сопутствующие: ток, напряжение, коэффициент мощности (он же — знаменитый «косинус фи»). И, дополнительно — расход энергии и даже денег. :)

Внешний вид, конструкция и схемотехника ваттметра

Внешний вид ваттметра представлен на следующих фото:



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

Собственно, за это такие приборы и называют в народе «ваттметрами в розетку». Звучит немного жаргонно, но суть отражает верно. :)

Экран ваттметра — буквенно-цифровой жидкокристаллический, без подсветки.

Обновление экрана происходит примерно раз в 2 секунды. Это — время накопления и усреднения мощности. Производитель мог бы легко реализовать и более быстрое обновление, но это привело бы к «мельтешению» показаний.

На задней стороне прибора находится шильдик с его параметрами:


Всё здесь ясно и понятно, за исключением третьей строки: «Wide voltage range: 230V ----250V».

Ну какой же он «Wide»?! Это не «Wide», а убожество какое-то! Неужели он при стандартном напряжении 220 Вольт не сможет работать?!

Как оказалось, сможет. А вопрос о нижней границе работоспособности прибора будет происследован в обзоре отдельно.

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


Электронная часть прибора состоит из двух плат.

Плата на левой половине отвечает за индикацию, а плата на правой половине — за измерения и вычисления.

С той её стороны, которая обращена к нам, видно несколько важных элементов схемы.

Зелёненький «бочонок» слева вверху платы — это никель-металлогидридный аккумулятор из 3-х элементов ёмкостью 20 мАч на напряжение 3.6 В. Сразу надо сказать, что он — не для работы прибора, а только для подпитки с целью сохранения параметров при отключении от питающей сети.

То есть, прибор с ним включится (по нажатию кнопки), но ничего замерить не сможет (если подать на него какое-то небольшое напряжение).

Под ним — пара электролитов (фильтрация питания), а далее под ними — большой желтый «сухой» конденсатор.

Посмотрим на него в другом ракурсе:


Номинал желтого конденсатора — 0.68 мкФ, он работает реактивным гасителем лишнего напряжения для системы питания самого ваттметра.

Последовательно с ним подключен резистор 33 Ом (справа от конденсатора); он служит для предотвращения резких бросков тока в момент включения ваттметра в розетку.

А слева от конденсатора — шунт в виде скобы из толстой проволоки. Он нужен для замера протекающего в нагрузку тока.

Ещё на этой стороне платы находится кварц, необходимый для тактового генератора аналого-цифрового процессора, расположенного на обратной стороне платы. Вот ей сейчас и займёмся.


Главная микросхема на плате (U3) — специализированный цифро-аналоговый процессор BL6523GX, спроектированный для измерения мощности.

Его структурная схема (взята из datasheet):


Рассматривать эту схему не будем, чтобы не утяжелять обзор.

Ещё одна микросхема (U2), поменьше, — это ATMHK220 24CO2N. Она работает в качестве флеш-памяти с последовательной передачей данных.

Последняя, самая маленькая микросхема (U3, 78L05) — стабилизатор питания 5 В.

Режимы ваттметра

Посмотрим на органы управления ваттметра:


На передней панели имеются 5 кнопок: 4 большие кнопки и одна полускрытая кнопка — RESET.

Кнопкой RESET рекомендую пользоваться при каждом включении прибора в розетку, иначе он может показывать белиберду. После нажатия RESET прибор работает стабильно, проблем нет.

Из остальных кнопок самая главная — это FUNCTION. С помощью этой кнопки пользователь определяет, какую информацию он желает посмотреть.

При нажатии на эту кнопку последовательно переключаются по кругу следующие режимы отображения:

  • Время работы (с ненулевой мощностью) + мощность + стоимость (если была установлена цена за КВт*час);
  • Время работы + суммарное потребление энергии (накопление);
  • Время работы + напряжение в сети;
  • Время работы + потребляемый ток + коэффициент мощности (косинус фи);
  • Время работы + минимальная потребляемая мощность за время работы;
  • Время работы + максимальная потребляемая мощность за время работы;
  • Стоимость за КВт*час (просмотр и установка).

Остальные три кнопки как раз используются для установки цены за КВт*час.

Как выглядит экран ваттметра в режимах показа напряжения и тока, можно посмотреть на следующих фото (режим мощности был показан выше):



Теперь перейдём к оценке «профпригодности» ваттметра — его тестированию.

Тестирование ваттметра

Первым делом проверяем точность измерения прибором напряжения и тока. Для этого проводилось сравнение показаний с мультиметром DT9205A:


Если взять за основу показания мультиметра, то ваттметр слегка занижает показания по напряжению (на 0.7%). Учитывая ограниченную точность обоих приборов, можно считать, что расхождений нет.

По току расхождение составило чуть больше: 1.5% с тем же знаком (ваттметр показал меньше).

Соответственно, при измерении мощности эти две погрешности сложатся, и погрешность измерения мощности должна будет составить 2.2%. Но эта цифра — только ориентировочная (с учетом возможной погрешности мультиметра).

Конечно, по-хорошему надо бы проверять тестируемый ваттметр не с помощью вольтметра и амперметра, а с помощью образцового ваттметра, сертифицированного Ростестом. Но извиняйте: чего нет, того нет.

Теперь подсовываем прибору простую активную нагрузку — лампу накаливания 25 Вт:


Эх, как же он приятен — тёплый ламповый свет! Но речь в данном случае о том, что номинальная мощность лампы подтвердилась с высокой точностью.

Теперь — небольшая таблица с пробными замерами различной аппаратуры, которая покажет, в том числе, как «дурят нашего брата»:

Тестируемая аппаратураНоминальная мощностьИзмеренная мощностьИзмеренный коэффициент мощности
Паяльник25 Вт27.3 Вт0.97
Светодиодная лампа «Старт»10 Вт8.3 Вт0.59
Светодиодная лампа «Старт»15 Вт11.8 Вт0.59
Микроволновка в простое-1.8 Вт0.44
Микроволновка (в режиме 800 Вт)1200 Вт1274 Вт0.91
Зарядка смартфона10 Вт11.1 Вт0.54
Системный блок компьютера (выключен)-2.7 Вт0.35
Системный блок компьютера (включен, в простое)-45 — 67 Вт0.54
Системный блок компьютера (нагрузочный тест OCCT-Linpack) - 95 — 98 Вт 0.75
Системный блок компьютера (нагрузочный тест OCCT-Большой набор) - 105 — 111 Вт 0.76

Немного обсудим полученные результаты.

Микроволновка показала результат заметно выше указанной на ней самой номинальной мощности. Учитывая высокий КПД магнетрона, можно предположить, что и на нагрев продуктов пошло не заданные 800 Вт, а значительно больше.

Это — пример обмана в пользу потребителя, но одновременно потребителю надо задуматься и о достаточной «прочности» электропроводки.

Интересной была попытка замерить мощность микроволновки в режиме «320 Вт». Микроволновка периодически то включалась на полную мощность (1274 Вт), то периодически снижала мощность почти до нуля, чтобы в среднем получилось 320 Вт.

Со светодиодными лампами обман получился уже в обратную сторону, т.е. лампам мощности недодали.

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

В общем, ваттметр помог совершить много интересных открытий касательно имеющейся в доме аппаратуры.

Последний вопрос в тестировании ваттметра — нижний предел его работоспособности по напряжению.

Для выяснения этого вопроса был использован трансформатор ТПП-282-127/220-50 с множеством отводов от первичной обмотки (своего рода замена ЛАТР-у).

Эксперименты с подключением к разным отводам трансформатора показали, что ваттметр работоспособен при напряжении 112 Вольт и выше (по показаниям самого ваттметра). При более низких напряжениях прибор включался, но ничего не измерял (показывал нулевые ток, напряжение и мощность).

Таким образом, ваттметр будет работоспособным даже при значительных колебаниях напряжения в питающей сети.

Итоги и выводы

Протестированный «ваттметр в розетку» показал точность, вполне достаточную для бытовых применений (без претензий на что-то более высокое). И это — главное.

Естественно, у него есть множество недостатков, простительных за его цену.

У него нет возможности передать данные в компьютер или смартфон; нет и возможности запротоколировать график потребления мощности по времени.

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

И, конечно, отсутствие подсветки экрана — тоже не украшение.

Но, с учётом цены, право же, всё это — мелочи. :)

Купить ваттметр можно на Алиэкспресс по этой ссылке.

Кроме протестированного варианта ваттметра в таком же корпусе выпускается ваттметр на основе другого процессора. Он не тестировался, но, вероятно, должен показать аналогичные характеристики.

Сейчас все больше и больше людей интересуются темой мониторинга потребляемого электричества.
В некоторых случаях эти знания имеют очень большое значение (например, для вашего загородного дома выделили 8кВт мощности и вам необходимо понять, насколько близко вы находитесь к разрешенному пределу и т.п.).
Есть уже готовые изделия, одно из них уже было героем обзора на Хабре.

Но мы не из тех, кто ищет легких путей и сделаем вот такое устройство:


В руки попал вот такой датчик:

Остальные компоненты будем использовать наиболее доступные и приоритет будем отдавать тем, что уже имеются в наличии.

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


Датчик, фото которого приведено выше — неинвазивный датчик тока (до 100А). Выход датчика — токовый.
Напрямую к аналоговому входу ардуинки этот датчик подключать нельзя (точнее можно, но пользы это не принесет никакой).
Чтобы получать адекватые значения измеряемой величины нам необходимо добавить несколько элементов и подключить датчик по следующей схеме:

Обоснование схемы и расчет номиналов элементов приводится по следующей ссылке.

Таким образом, значение тока сможем измерить, но наша цель — измерить потребляемую мощность.
Воспользуемся известной формулой: P=U*I.

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

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

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

От моих первых шагов по освоению ардуинки остались микросхема ATmega168 и ЖК-дисплей 12х2 с поддержкой кириллицы — их и будем использовать.

На этапе прототипирования выяснилось, что ATmega168 есть, а вот кварца с парой конденсаторов к нему — нет. Но, как все знают, атмега может спокойно работать на частоте 8МГц с внутренним осциллятором.

Этот режим работы совершенно нормальный, но точность внутреннего осциллятора невысока. Для создаваемого устройства это не критично.

  1. Ардуинка с прошитым скетчем Arduino ISP
  2. Ардуинка с DIP-панелькой для «подопытного» МК (или беспаечная макетка, где собрана ардуинка с минимальным «обвесом»)
  3. Несколько проводков для соединения ардуинок (или ардуинки и макетки)
  4. Правильная запись для «новой платы» в файле boards.txt

atmega168ic8mhz.name=ATmega168 (internal clock 8MHz)

atmega168ic8mhz.bootloader.low_fuses=0xe2
atmega168ic8mhz.bootloader.high_fuses=0xdd
atmega168ic8mhz.bootloader.extended_fuses=0x00
atmega168ic8mhz.bootloader.path=arduino:atmega
atmega168ic8mhz.bootloader.file=ATmegaBOOT_168_pro_8MHz.hex
atmega168ic8mhz.bootloader.unlock_bits=0x3F
atmega168ic8mhz.bootloader.lock_bits=0x0F

atmega168ic8mhz.build.mcu=atmega168
atmega168ic8mhz.build.f_cpu=8000000L
atmega168ic8mhz.build.core=arduino:arduino
atmega168ic8mhz.build.variant=arduino:standard

Внимание, если у вас МК уже с ардуиновским бутлоадером, то обновлять бутлоадер нужно с использованием кварцевого резонатора.

Прошивка прошла успешно, МК заработал на внутреннем осцилляторе.

Теперь надо было подумать, как подключить дисплей и кнопки.

Задачка совсем несложная и можно подключить так, как делается во всех примерах (см.ссылки ниже).

Дисплей подключаем в 4-х битном режиме (для экономии используемых цифровых пинов).
Один из выводов дисплея отвечает за контрастность. Захотелось иметь возможность регулировать контрастность из скетча. Сказано-сделано: подключаем этот вывод к свободному пину с ШИМ (дополнительно ставим электролитический конденсатор на 10мкФ — для сглаживания).

Поскольку планировалось использовать две кнопки, то самым простым решением было бы повесить каждую кнопку на свой цифровой пин и мониторить их состояние, но это как-то тривиально.

Решил задействовать для кнопок всего один пин (аналоговый).

Схема очень простая — кнопки включаются последовательно друг за другом, параллельно каждой кнопке — свой резистор. Последовательно этой конструкции — еще один резистор. Вся эта цепь включена между «землей» и «питанием». Таким образом получается делитель напряжения.


Особенность схемы (и подобранных резисторов) такова, что позволяет отслеживать нажатие любой из кнопок и «бонусом» — факт нажатия двух кнопок сразу, чем мы и воспользуемся при написании скетча.


Сначала собрал прототип на беспаечной макетной плате:

Написал небольшой скетч, который опрашивал датчик, производил необходимые вычисления и выводил данные на дисплей — все заработало так, как ожидалось.

Единственной неожиданностью оказалось то, что датчик, который не подключен к проводу, ток в котором хотим измерить, дает ненулевые значения — имеется небольшая «постоянная составляющая» (обусловлена неидеальностью элементов между датчиком и аналоговым входом МК). Поэтому решено в скетч добавить простенький механизм «автокалибровки» для ее устранения.

Теперь можно переходить к реализации «в железе».

Печатную плату ради одного устройства делать, имхо, нецелесообразно — решил все сделать на печатной макетной плате навесным монтажом.

Для прибора был приобретен корпус. Выбор был сделан «на глазок» (определяющим был размер дисплея и то, что рядом с ним должно быть две кнопки).


Фото некоторых комплектующих, которые использовались в последующих итерациях:

Для собственного удобства решил сделать устройство из двух плат.

На верхней расположил дисплей, кнопки, разъемы и большую часть «рассыпухи», отсносящуюся к дисплею и датчику.
На нижней плате — микросхема atmega168 в панельке, конденсаторы (по питанию) и разъем для подключения программатора. Эта плата получилась почти пустая.


Для соединения плат решил использовать штыревые разъемы:

Безусловно, все составляющие можно было разместить и на одной плате (микроконтроллер разместить под дисплеем), но не хотелось делать более плотный монтаж, да и оставить «резерв на развитие» — не лишнее (даже если и не понадобится).


«Бутерброд» в сборе:

Видно, что платы имеют «хитрую» конфигурацию — это для того, чтобы не нарушать внутреннее «убранство» приобретенного корпуса. Выступы в корпусе хорошо фиксируют «бутерброд» внутри и не дают свободно болтаться в корпусе.

На этом этапе проекта пришлось сильно думать, как же теперь разметить отверстия под дисплей, кнопки и разъемы, причем сделать это так, чтобы не пришлось делать фальш-панель?

Помогли направляющие и то, что платы были сделаны с минимальным зазором — люфт почти нулевой.

Разметку необходимых отверстий производил изнутри и использовал подручные средства.

Начал с кнопок: взял зубную пасту и намазал «верхушки» толкателей — после этого аккуратно вставил «бутерброд» в корпус по направляющим и добился отпечатка на внутренней стороне корпуса.
Дальше просверлил по полученным меткам отверстия сверлом нужного диаметра. И снова примерил плату — бинго! Кнопки оказались на своих местах.

Аналогично «измазал» рамку дисплея (он еще под упаковочной пленкой был) и повторил манипуляции. Результат можно видеть ниже.


Последняя «примерка», все выглядит сносно:

Слабонервным не смотреть (обратная сторона платы)



Сначала не планировал делать разъем для подключения программатора: думал, что сделаю аппаратную часть, напишу всю программную начинку, прошью и все соберу в корпусе, но оказалось, что вывести разъем достаточно просто и это удобнее, чем разбирать устройство для каждой корректировки ПО.


Программирование устройства с помощью программатора на FT232RL:


Прибор в сборе (правда, софт еще не дописан):

Демонстрация работы прибора и его основных возможностей (тут уже «финальная» версия софта):

Прошу прощения за качество — очень неудобно одной рукой держать «камеру», а другой — подключать, нажимать, включать кондиционер и т.п.

Архив со скетчем и необходимой библиотекой доступен по ссылке.

Список покупок
    — 145 руб. — 529 руб. — 79 руб. (в наборе три, нужен только один) — 189 руб. (из набора нужно далеко не все) — 319 руб. (опять же из набора нужно далеко не все) — 20 руб. — 650 руб. — 19 руб. (2 шт.) — 88 руб. — 870 руб. (нужна не вся)

Немало, но если брать только нужные элементы (а не наборы) и приобретать в «правильных» местах — можно будет существенно сэкономить (правда, ждать придется дольше).

Дополнительно была использована макетная плата, набор соединительных проводов, программатор, ардуинка (в роли ISP-программатора) и т.п. Поскольку эти вещи были ранее и используются в этом «проекте» только временно — не включил их в стоимость созданного устройства.

Еще нужен блок питания на 5В (стабилизированный) — его тоже не включил в стоимость, поскольку нашел у себя в залежах и даже не представляю, от какого устройства он остался.

В результате: создан еще один девайс, который позволяет вполне адекватно оценить текущее потребление электроэнергии.
Точность прибора невысока, но при включении электропотребителей с известными характеристиками (чайник, духовой шкаф, кондиционер, светильники и т.п.) — значения, выводимые на дисплей, достаточно точно соответствуют заявленным производителем (погрешность примерно на уровне 5-10%).
Устройство отслеживает как максимальные, так и минимальные значения электропотребления (ожидаемо, что самое низкое потребление зафиксированно в ночные часы и у меня составило 0.58кВт — компьютеры, сетевое хранилище, холодильник, всяческие зарядки и несколько устройств в режиме ожидания).

Когда видишь цифры текущего потребления — это заставляет задуматься об эффективности использования электроэнергии и сразу хочется выяснить, за счет чего можно их уменьшить.


Однажды долгим зимним вечером возникла у меня идея автоматизировать процесс подачи показаний счетчика электроэнергии, но для этого мне надо было знать сколько электроэнергии я фактически потратил. К сожалению счетчик электроэнергии у меня был старый, глупый и единственный способ узнать сколько он насчитал — это подсчитывать мигания светодиодов. Поэтому решил сделать свой счетчик, конечно же на основе популярного модуля PZEM-004T и не менее популярного микроконтроллера ESP-8266.

Основные компоненты — PZEM-004T и ESP-12F заказал на Aliexpress, а мелочевку — двухцветный светодиод, пару кнопок, модуль питания импульсный HLK-PM03 на 3,3V (для питания ESP) и корпус DIN-1 купил в местном радиомагазине.

Вначале проверил совместную работу PZEM и ESP на макетной плате — у меня были сомнения из-за того, что последовательный порт PZEM рассчитан на 5В, а ESP на 3.3В. В старых версиях PZEM-004T это решалось дополнительными сопротивлением, но сейчас продают модуль версии v3, (визуально можно отличить по белым оптопарам рядом с разъемом последовательного порта) который прекрасно заработал с 3.3В без какой либо переделки.


Схема получалась очень простая и решил для пробы заказать ее изготовления на JLCPB, первый заказ на 5 плат с учетом купона который выдается новым пользователям обошелся мне в $2. Когда получил платы — был очень приятно удивлен, ну что сказать — изготовленная в заводских условиях плата выводит самоделки на совершенно иной уровень.


Прошивку для ESP сделал используя PlatformIO и мою любимую IDE Visual Studio Code. Добавил функционал настройки используя WiFiManager, периодическую отправку всех показателей, которые регистрирует PZEM-004T на удаленный сервер по протоколу MQTT и так же отображение текущий показателей через web-интерфейс с обновлением каждую секунду.

Перед тем, как прошивать устройство, необходимо «собрать» веб интерфейс (необходим NodeJS):

После этого можно заливать SPIFFS из PlatformIO и прошивать микроконтроллер. При первом включении он создает точку доступа, подключившись к которой можно настроить параметры доступа к WiFI (SSID, пароль), а так же адрес, порт, логин, пароль и топик MQTT, куда будут отправляться показатели.

После перезагрузки устройство подключается к WiFi и начинает работу, мигание зеленого светодиода означает отправку данных на сервер, красный — ошибка.

Если зайти на адрес ESP браузером, то можно посмотреть текущие показатели почти в реальном времени — микроконтроллер увеличивает частоту опроса PZEM до 1 раза в секунду и отправляет значения в браузер по протоколу WebSocket.


Конечно можно сделать все гораздо проще, купить готовое устройство, например недавно был обзор Zemismart ZMAi-90, но мне было интересно собрать свое устройство, написать для него прошивку, которая надеюсь кому-то будет полезна.

Читайте также: