Дорогие друзья!
Проход на территорию Лофта временно осуществляется через второй вход. 
Схема проезда во вкладке "Самовывоз".
Пожалуйста, учитывайте это, когда планируете забирать свои заказы.


Максим Данилин, 27.05.2021

Как собрать свой счётчик электроэнергии

energy-cost-meter-device

Платите слишком много за электричество? Хотите узнать, сколько электроэнергии потребляет ваш чайник или обогреватель?

Сделайте портативный счётчик электроэнергии!

Мы решили собрать свой счётчик, используя Arduino и 3D-печать. Идея нашего счётчика проста: при подлючении электроприбора он измеряет расход электричества, подсчитывает, сколько денег потрачено, а затем отображает это значение на экране.

Шаг 1. Что понадобится

step-1-components

Итак, для начала нам понадобятся инструменты:

  • Бокорезы
  • Отвёртки
  • Пассатижи
  • Паяльник и припой
  • Наждачная бумага и надфили
  • 3D-принтер
  • Термоусадка
  • Толстые провода сечением 14AWG или меньше для контактов 220 В
  • Тонкие провода сечением 24 или 26AWG для низковольтных контактов
  • Винты М3×20 (DIN 7985 / DIN 84 / DIN 912)
  • Винты М3×10 (DIN 7985 / DIN 84 / DIN 912)
  • Винты M2, M2.5 (DIN7981 или любые другие)
  • Гайки М3 (DIN 934 / DIN 985)

Шаг 2. Электронные компоненты

Также нам понадобится кое-какая электроника.

Датчик тока

Чтобы измерять нагрузку в электроцепи, нужен датчик тока. Счётчик электричества может работать с высокими токами, поэтому датчик лучше взять с запасом по току. Мы решили использовать датчик на основе микросхемы ACS712, рассчитанной на ток до 20 А.

Датчик тока ACS712 (20 А)

Датчик ACS712 — аналоговый и основан на эффекте Холла. Всего бывают три разновидности данного датчика, они отличаются максимальным измеряемым током:

  • ACS712ELCTR-05B, максимум 5 А.
  • ACS712ELCTR-20A, максимум 20 А.
  • ACS712ELCTR-30A, максимум 30 А.

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

step-2-current-meter

Микроконтроллер

Микроконтроллер обрабатывает данные с датчика тока, производит вычисления и обновляет информацию на дисплее. Все эти задачи очень просты, и с ними справится любая ненавороченная плата Arduino. Чтобы финальное устройство получилось наиболее компактным, лучше взять плату Micro размерами поменьше.

Arduino Micro

step-2-arduino-micro

AC/DC-преобразователь

Наш прибор будет измерять переменный ток напряжением 220 В, но платформе Arduino и датчику тока нужен постоянный ток напряжением 5 В, поэтому нам понадобится АС/DC-конвертер с 220 В до 5 В.

Можно использовать наш AC/DC-преобразователь в формате Zelo-модуля. Однако для проекта счётчика энергии такой модуль слишком громоздкий, и мы решили найти замену покомпактнее:

Импульсный понижающий преобразователь AC-DC (5 В, 1 А)

step-2-ac-dc

Дисплей

Для визуализации измерений мы использовали текстовый ЖК-дисплей на две строки по 8 символов.

Текстовый ЖК-дисплей 8×2

step-2-display


Шаг 3. Вилки и розетки

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

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

step-3-image-1

Затем мы разобрали их и выбрали, какие подходят нам лучше.

step-3-image-2

Необходимо было найти разъёмы, которые:

  • Легко разбираются и собираются.
  • Имеют удобные коннекторы для подключения проводов.
  • Легко могут быть встроены в самодельный корпус.

Выбор пал на такой штекер и гнездо:

Вилка белая Lezard без заземления

Розетка белая с заземлением Lezard 250D

step-3-image-3

Шаг 4. Корпусирование

Корпус для нашего устройства мы напечатали на 3D-принтере из ABS-пластика.

Всего получилось 4 детали:

Все детали соединяются между собой винтами М3. Дисплей, дачтик тока и трансофрматор также крепятся винтами, а Arduino Micro просто вставляется в крепление внутри корпуса враспор.

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

Шаг 5. Cборка крепления розетки

step-5-image-1

На данном этапе понадобятся:

  1. Напечатанное крепление розетки.
  2. Внутренности покупной розетки.
  3. Толстые провода для 220 В.

Присоедините провода к розетке.

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

Шаг 6. Cборка корпуса

step-6-image-1

Здесь нам понадобятся:

  1. Напечатанный корпус
  2. Собранное крепление розетки
  3. Датчик тока
  4. Дисплей
  5. 4× Винт М3×20
  6. 4× Винт М3×10
  7. 2× Винт M2 / M2.5
  8. Гайки М3
  9. Низковольные монтажные провода и провода для 220 В

Вставьте крепление розетки в корпус и закрепите его винтами и гайками. Если крепление вставляется тяжело, воспользуйтесь шкуркой или надфилями и расширьте посадочное отверстие.

Подсоедините силовые и управляющие провода к датчику тока и закрепите его в корпусе винтами М2 / М2,5.

Подсоедините управляющие провода к дисплею и установите его в корпусе винтами и гайками М3.

Шаг 7. Cборка крепления вилки

step-7-image-1

Понадобятся:

  1. Напечатанное крепление вилки.
  2. Внутренности покупной вилки.
  3. Толстые провода для 220 В.

Присоедините провода к вилке.

step-7-image-2

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

step-7-image-3

Шаг 8. Cборка крышки

step-8-image-1

Понадобятся:

  1. Напечатанная крышка
  2. Собранное крепление вилки
  3. AC/DC-преобразователь
  4. Arduino Micro
  5. 4× Винт М3×10
  6. 4× Винт M2 / M2.5
  7. Гайки М3

Вставьте собранное крепление вилки в крышку и закрепите его винтами и гайками М3.

Установите плату Arduino Micro в крышку. Плата крепится враспорку без крепежа.

step-8-image-6

Установите AC/DC-преобразователь в крышку и зафиксируйте его крепежем M2 / M2.5.

Шаг 9. Схема подключения

Подключим все компоненты как показано на схеме:

step-9-image-1

Провода для переменного тока 220 В соединяют вилку и розетку, а также поступают на AC/DC-преобразователь.

Силовая часть датчика тока ставится в разрыв фазы 220 В. Датчик имеет 3 контакта. Запитать логическую часть датчика можно как от Arduino, так и напрямую от выхода 5 В на AC/DC-преобразователе.

  • VCC к пину 5V на Arduino или контакту 5V преобразователя AC/DC.
  • GND к контакту земли Arduino и AC/DC-преобразователя.
  • OUT к аналоговому пину А0 на Arduino.

Текстовый дисплей 8×2 питается постоянным напряжением 3,3–5 В и общается с контроллером по собственной шине, которая может работать либо в 8-битном режиме (пины DB0–DB7), либо в 4-битном (пины DB4–DB7). Мы использовали 4-битный вариант. Запитать дисплей можно от 5-вольтовой линии Arduino или AC/DC-преобразователя.

  • VCC к пину 5V на Arduino или контакту 5V преобразователя AC/DC.
  • GND к контакту земли Arduino или AC/DC-преобразователя.
  • Vo к контакту земли Arduino или AC/DC-преобразователя.
  • R/W к контакту земли Arduino или AC/DC-преобразователя.
  • RS к цифровому пину D12 на Arduino.
  • E к цифровому пину D11.
  • DB4 к цифровому пину D5.
  • DB5 к цифровому пину D4.
  • DB6 к цифровому пину D3.
  • DB7 к цифровому пину D2.

Обязательно изолируйте все места соединений — например, термоусадкой. Убедитесь, что высковольтные и низковольтные части схемы не пересекаются нигде, кроме AC/DC-преобразователя.

Важно! Будьте очень осторожны при работе с высоким напряжением! Не дотрагивайтесь до контактов преобразователя и не подключайте Arduino Micro к компьютеру, если устройство включено в бытовую электросеть!

Шаг 10. Финальная сборка

step-10-image-1

Понадобятся:

  1. Собранный корпус
  2. Собранная крышка
  3. 4× Винт М3×10

Когда все провода и контакты соединены, корпус можно закрыть крышкой. Зафиксируйте крышку винтами М3.

Шаг 11. XOD

step-11-image-1

Для создания программы мы используем язык визуального программирования XOD. Он не требует обширных навыков в программировании и является идеальный выбором для новичков в мире Arduino. Язык XOD подходит для быстрого прототипрования различных устройств или быстрого создания несложных программ.

Всю программу работы электросчётчика мы разместили в отдельной XOD-бибилиотеке gabbapeople/electricity-meter.

Шаг 12. Программирование

Так выглядит итоговый патч программы нашего счетчика электричества:

step-12-image-1

Нода acs712-20a-ac-current-sensor

Это первая нода для размещения на патче. acs712-20a-ac-current-sensor измеряет моментальное значение тока (выходной пин A) на 20-амперном датчике ACS712. Для других версий датчика ACS712 в библиотеке gabbapeople/electricity-meter есть нода на 5 А acs712-05b-ac-current-sensor и на 30 А acs712-30a-ac-current-sensor. На пине PORT задаётся номер аналогового пина Arduino, к которому подключён сенсор. Мы подключили сенсор к пину А0. Чтобы измерять значение тока непрерывно и сразу после включения устройства, устанавливаем значение пина UPD в Continuously. Также нужно указать опорное напряжение на пине AREF. В нашем случае опорное напряжение — это 5 В на выходе AC/DC-преобразователя. Для переменного тока нужно указать частоту на пине FRQ. Частота тока в нашей бытовой розетке — 50 Гц.

Нода multiply

Вычисляет мощность тока, которая выражается как произведение силы тока на напряжение. Умножаем величину тока, полученную с пина A ноды acs712-20a-ac-current-sensor, на 230 вольт (напряжение в нашей сети).

Нода integrate-dt

Интегрирует (накапливает) мгновенную мощность тока с течением времени. Отдаёт величину потреблённой энергии в Ватт-секундах.

Нода to-money

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

Нода text-lcd-8x2

Эта нода управляет ЖК-дисплеем на 2 строки по 8 символов. Для инициализации дисплея нужно указать все значения пинов Arduino, к которым он подключён. На первой строке дисплея L1 мы вывели строку Total: а на второй строке L2 — количество потраченных денег.

Загрузим патч на плату Arduino и проверим, как работает наш прибор, подключив через него увлажнитель воздуха.

Шаг 13. Дальнейшие советы

Этот проект — лишь пример того, как можно сделать счётчик электричества самостоятельно.

Вы можете расширить возможности своего устройства:

step-13-image-1

  • Выходное значение тока ноды acs712-20a-ac-current-sensor можно вывести напрямую на дисплей. Таким образом устройство будет мерить моментальное значение тока, потребляемого электроприбором.
  • Выходное значение мощности ноды multiply можно вывести напрямую на дисплей. Таким образом устройство будет мерить текущую мощность подключённого электроприбора.
  • Можно добавить тактовую кнопку для сброса накопленного значения. Для этого добавьте ноду button к пину RST ноды integrate-dt.
  • Вы можете использовать любой другой дисплей. Например, взять более вместительный текстовый дисплей 16×2 или OLED-дисплей 128×64, куда можно вывести больше полезных данных.