Счетчик людей на Ардуино с дисплеем LCD 1602
Счётчик прохода людей на Ардуино — это простой и интересный проект для начинающих, который не претендует на очень точный подсчет. Представленный вариант будет определять количество людей, находящихся в помещении, а также количество людей или посетителей магазина в течение всего периода измерений с выводом всей информации на последовательный порт Arduino IDE и на жидкокристаллический дисплей 1602.
Необходимые компоненты:
- Arduino Uno / Arduino Nano / Arduino Mega
- дисплей LCD 1602 i2c
- 2 лазерных светодиода
- 2 датчика освещенности
- светодиод и резистор
- макетная плата
- коннекторы
- библиотека LiquidCrystal_I2C.h
- Подключение LCD 1602 i2c дисплея к Ардуино
- Подключение датчика освещенности к Ардуино
- Подключение ультразвукового датчика к Ардуино
Датчик прохода посетителей с дисплеем LCD 1602 позволит довольно точно узнать, сколько людей посетило ваш магазин. В проекте используются два датчика освещенности ky-018. Для алгоритма работы программы важно в каком порядке прерывается лазерный луч, от этого зависит понятие микроконтроллером входа или выхода посетителя. Счетчик может быть установлен в проеме входной двери офиса или магазина.
Счетчик людей в магазине на Ардуино с дисплеем
LCD 1602 i2c | Arduino Uno | Arduino Nano | Arduino Mega |
GND | GND | GND | GND |
VCC | 5V | 5V | 5V |
SDA | A4 | A4 | 20 |
SCL | A5 | A5 | 21 |
Помимо отображения на дисплее LCD 1602 информации о количестве людей в помещении или пришедших на весь день. В схему можно добавить светодиод, который будет включаться, когда кто-то находится в комнате. Вместо светодиода для освещения в комнате можно использовать LED ленту, которую можно включать от Arduino через реле или транзистор. После сборки схемы загрузите на плату следующую программу.
Скетч для счетчика посетителей магазина на Ардуино
#include "Wire.h" #include "LiquidCrystal_I2C.h" LiquidCrystal_I2C LCD(0x27, 20, 2); int x = 0; int y = 0; byte w = 0; void setup() < LCD.init(); LCD.backlight(); Serial.begin(9600); pinMode(A1, INPUT); pinMode(A2, INPUT); pinMode(10, OUTPUT); pinMode(7, OUTPUT); digitalWrite(10, HIGH); >void loop() < LCD.setCursor(0, 0); LCD.print("People Now - "); LCD.print(x); LCD.setCursor(0, 1); LCD.print("People Total - "); LCD.print(y); Serial.print("People Now - "); Serial.println(x); Serial.print("People Total - "); Serial.println(y); delay(100); if (x >= 1) < digitalWrite(10, HIGH); >if (x < 1) < digitalWrite(10, LOW); >int TSOP1 = analogRead(A1); Serial.print("T1 - "); Serial.println(TSOP1); int TSOP2 = analogRead(A2); Serial.print("T2 - "); Serial.println(TSOP2); if (TSOP1 < 500) < w = 1; >if (TSOP2 < 500) < w = 2; >while (w == 1) < TSOP2 = analogRead(A2); Serial.print("T2 - "); Serial.println(TSOP2); if (TSOP2 < 500) < x = x + 1; y = y + 1; delay(2000); w = 0; >> while (w == 2) < int TSOP1 = analogRead(A1); Serial.print("T1 - "); Serial.println(TSOP1); if (TSOP1 < 500) < x = x - 1; if (x < 0) < x = 0; >delay(2000); w = 0; > > >
Заключение. Этот проект позволит вам узнать не только, сколько посетителей вошло, но и сколько вышло из помещения. Поскольку в проекте используются два оптических датчика Arduino LDR, важно знать, в каком порядке прерывается лазерный луч. Оптический счетчик посетителей может быть установлен на двери или турникете помещения (организации) для подсчета количества посетителей в день, неделю или месяц.
Подключаем Arduino к счетчику электроэнергии
Нет, эта статья не об очередном способе обмануть этот злосчастный прибор. Здесь пойдет речь о том, как с помощью Arduino и среды LabView превратить свой счетчик электроэнергии в средство мониторинга потребляемой мощности или даже в амперметр!
Самый первый счетчик электроэнергии был индукционным. Принцип его работы до смешного прост — по сути это электродвигатель, ротором которого является алюминиевый диск, вращающий циферблат. Чем больше потребляемый ток- тем быстрее крутится диск. Устройство чисто аналоговое.
Однако сегодня индукционные счетчики сдают свои позиции, уступая место своим более дешевым электронным собратьям. И как раз один такой и станет подопытным:
Принцип работы не сильно изменился — в данном случае диск заменен электроникой, которая генерирует импульсы в соответствии с величиной потребляемой электроэнергии. Как правило, в большинстве приборов эти импульсы показывает светодиодный индикатор. Соответственно, чем быстрее мигает эта лампочка — тем больше сжигается драгоценных кВт.
Кроме того, на лицевой панели любого устройства есть передаточное соотношение счетчика А — число импульсов на 1 кВт*ч. Как видно из фото, у подопытного А=12800. Из этой информации можно сделать следующие выводы:
— С каждым импульсом счетчик фиксирует потребление, равное 1/12800 части от 1 кВт*ч. Если включить к счетчику нагрузку и начать просто считать импульсы, то потом легко получить потребленное ею количество электроэнергии (кВт*ч), разделив количество импульсов на передаточное соотношение.
— Так как индикатор изменяет скорость своего моргания, то можно вывести зависимость между мощностью (кВт) и временем одного импульса счетчика, что позволит получить данные о мощности/токе.
Не будем загружать статью расчетами, но если нужно то
вот они
Воистину, передаточное число счетчика — великая вещь, так как зная ее можно выразить как мощность так и ток:
Составим пропорцию из нашего передаточного соотношения (А=12800 имп/кВт*ч) и неизвестного передаточного соотношения, которое будет при нагрузке X и за время одного единственного импульса (моргания лампочки):
Здесь X — неизвестная мощность, а t — время одного импульса. Выражаем отсюда неизвестную мощность и вот оно:
Ток считается с применением следующей пропорции передаточных соотношений и токов известных и неизвестных при нагрузке X.:
Что в общем-то приводит к идентичной формуле, но для тока (ток измеряется в Амперах а индексы означают нагрузку, при которой будет данный ток):
Тут можно заметить подводный камень — нужно знать ток при идеальной нагрузке в 1 кВт. Если необходима хорошая точность — лучше его измерить самостоятельно, а если нет- то приблизительно можно посчитать по формуле (напряжение и мощность известны), но будет более грубо, так как не учитывается коэффициент мощности.
Таким образом, все упирается в измерение времени одного импульса (моргания индикатора). В своих изысканиях я опирался на этот отличный проект. Некий итальянец сделал в среде Labview интерфейс для мониторинга мощности и придумал схему для измерения импульсов. Но в его проекте красовалась огромная недоработка — он подходил только лишь для счетчиков с передаточным соотношением 1000 имп/кВт*ч.
Верхний график — средняя мощность за 5 минут, нижний — в реальном времени. Интерфейс довольно гибкий и легко модифицируется под свои нужды. Если Вы еще не имели дела со средой LabView — рекомендую познакомиться.
Чтобы все заработало, оказалось достаточно внести один единственный блок в алгоритм программы, в соответствии с формулой выше.
Выглядит это следующим образом
Казалось бы просто, но до этого надо еще додуматься!
Итак, если Вы все-таки решите реализовать мониторинг мощности, то есть два варианта:
1. Ваш счетчик закрыт и запломбирован по самое не балуйся. А значит, считывать импульсы можно только с помощью фоторезистора, реагирующего на моргание лампочки. Его необходимо прикрепить синей изолентой напротив светодиодного индикатора на лицевой панели счетчика.
Схема будет выглядеть следующим образом:
Схема для бесконтактного снятия импульсов
Программа просто сравнивает значение сопротивления на фоторезисторе и потенциометре. Причем последний позволяет выставить чувствительность такого датчика во избежание ложного срабатывания и настроиться под яркость индикатора.
2. У Вас есть доступ к импульсному выходу счетчика. На многих моделях имеется импульсный выход, который дублирует мигания лапочки. Это сделано для того, чтобы была возможность подключать прибор к системе автоматизированного учета. Представляет собой транзистор, открывающийся при горящем индикаторе и закрывающийся при погасшем. Подключиться напрямую к нему не составляет труда — для этого потребуется всего один подтягивающий резистор. Однако прежде чем делать это, удостоверьтесь что это именно импульсный выход, а не что-либо иное! (в паспорте всегда есть схема)
Схема для подключения к телеметрическому выходу
В моем случае — доступ полный, поэтому заморачиваться я особо не стал. Устанавливаем LabView и вперед измерять! Все графики представляют собой мощность (Вт) в реальном времени.
Первым под раздачу попал многострадальный чайник. Крышечка гласит что мощность у него 2,2 кВт, однако судя по графику, исправно потребляет лишь 1700 Вт. Обратите внимание, что потребление более-менее постоянно во времени. Это означает что нагревательный элемент (скорее всего нихром) очень слабо изменяет свое сопротивление в течении всего процесса вскипячивания.
Совсем другое дело клеевой пистолет — заявленная мощность 20 Вт.Он ведет себя в соответствии с законами физики — при нагреве сопротивление нагревателя увеличивается, а ток соответственно уменьшается. Проверял мультиметром — все так и есть.
Старый радиоприемник «Весна». Здесь график ушел вверх в начале из-за того, что я запустил измерение во время импульса, соответственно это повлияло на данные. Горки на графике показывают, как я крутил ручку громкости. Чем громче — тем больше радио кушает.
Перфоратор с заявленной мощностью 700 Вт. Нажал на кнопку до упора, чуть чуть подождал и отпустил, но не плавно. На графике хорошо видно бросок тока при пуске двигателя. Именно поэтому моргает свет, когда добрый сосед начинает долбить свою любимую стену.
А теперь самое интересное. Я провел небольшой эксперимент со своим стареньким ноутбуком, результат которого приведен на картинке:
Оранжевой точкой отмечено время, когда я запустил сразу несколько «тяжелых» программ. Как видите, графики загрузки процессора и возросшее потребление имеют нечто общее между собой. Недавно была одна интересная статья которая наталкивает на некоторые мысли. Не уверен что с помощью мониторинга мощности можно слить ключи шифрования, однако факт налицо.
(Трепещите параноики!)
В общем, из обычного счетчика и дешевой Arduino, можно сделать довольно простое и интересное решение для самодельного «умного дома». Кроме, собственно, мониторинга потребления электроэнергии есть вполне неплохая возможность организовать систему контроля включенных приборов, которая по изменению потребления и его характеру будет угадывать что включили. Без каких-либо дополнительных датчиков.
Исходники скетча для Arduino и файл LabView можно скачать на странице автора. После установки доработать напильником добавить блок в соответствии с описанием выше.
- Arduino
- счетчик электроэнергии
- энергоучет
- электросчетчик
- energy meter
Счетчики. Вариант 1 — Простейший счетчик на базе Arduino
Всем привет, в этой статье мы рассмотрим создание прототипа простейшего счетчика импульсов. Для создания прототипа нам потребуется следующее оборудование:
- Плата Arduino Nano, либо Uno, в общем то подойдёт любая плата семейства Arduino
- Две тактовые кнопки, в нашем прототипе мы используем готовые модули кнопок
- 7-ми сегментный дисплей на базе драйвера TM1637
- Корректная библиотека для дисплеев на базе драйвера TM1637. Скачать можно по ссылке.
- Набор проводов с разъёмом Dupont(Тип окончания Папа-Папа)
- Ну и конечно же желание, куда же без него.
Вот фото всего того что нам понадобится, плата Arduino Nano установлена на отладочный шилд I/O Wireless Shield for Nano:
Соединяем провода согласно нижеприведённой схеме:
Если вдруг у вас нет модулей кнопок, то можно решить эту задачу согласно следующей схеме:
Это тоже самое что и предыдущий чертеж, только модули кнопок здесь как бы разнесены на свои принципиальные схемы.
После того как все провода соединены, остаётся только загрузить скетч в контроллер, и испытать полученный прототип. Скетч выложен ниже, его можно просто скопировать в свой проект на Arduino IDE, но прежде всего, чтобы всё правильно откомпилировалось, нужно установить библиотеку для дисплеев на базе драйвера TM1637.
Листинг скетча
#include "TM1637.h" void DispUpdate(void); boolean DebounceButton(int ScanPort, boolean last); #define INC 2 //Пин подключения датчика готовой продукции #define RES 3 //Пин подключения кнопки сброса счетчика #define CLK 4 //TM1637 CLK #define DIO 5 //TM1637 DIO int8_t CountDisp[] = ; static int Counter = 0; //Значение счетчика будет сохраняться здесь bool INCCurr = false; bool INCPrev = false; /* * Создаем объект tm1637 класса TM1637 * в качестве параметров передаём ему * номера пинов к которым подключен модуль * с дисплеем */ TM1637 tm1637(CLK, DIO); void setup() < pinMode(INC, INPUT); //Определяем пины подключения кнопки сброса pinMode(RES, INPUT); //и датчика готовой продукции как входные //Инициализация дисплея на базе драйвера TM1637 tm1637.init(); /* * Установка яркости свечения сегментов * возможные значения: BRIGHT_TYPICAL либо 2 * BRIGHT_DARKEST либо 0 * BRIGHTEST либо 7 * Также можно вводить значения от 0 до 4 * при вводе начения свыше 4 визуального различия * в яркости свечения не наблюдается поэтому решено * остановиться на 3 */ tm1637.set(2); >void loop() < //Обнуление счетчика if(digitalRead(RES)) < Counter = 0; >//Проверка кнопки инкремента - нажатие и обработка "Антидребезг" INCCurr = DebounceButton(INC, INCPrev); if(INCPrev == false && INCCurr == true) < if(Counter == 9999) < Counter = 0; >else < Counter ++; >> INCPrev = INCCurr; DispUpdate(); > //Функция подавления дребезга контактов концевого датчика boolean DebounceButton(int ScanPort, boolean last) < boolean current = digitalRead(ScanPort); if(current != last) < delay(10); current = digitalRead(ScanPort); >return current; > //Функция обновления дисплея //Вывод значения счетчика на дисплей void DispUpdate(void) < int intValue = Counter; int divValue; for(int i = 3; i >= 0; i --) < divValue = intValue % 10; intValue = intValue / 10; CountDisp[i] = divValue; >tm1637.display(CountDisp); >
Как работает прототип счетчика? Всё в общем то просто — зеленая кнопка имитирует событие, к примеру проход изделия по конвейеру, сигнал с кнопки считывается программой и далее происходит инкремент значения счетчика. Красная кнопка служит для сброса значения счетчика в ноль. Также в программе реализована функция обработки дребезга контактов кнопки(либо концевого датчика), чтобы избежать ложных подсчетов импульсов. Вместо кнопки имитации импульсов можно использовать любой из концевых датчиков, например вот такие:
но, при этом предварительно подтянув порт подключения датчика к земле. Из плат можно использовать любую доступную, будь то UNO, Mega, и даже такого малыша как Digispark ATTiny85. На этом в общем то и всё, в конце хотелось представить вам обзорное видео по статье:
Как собрать свой счётчик электроэнергии
Платите слишком много за электричество? Хотите узнать, сколько электроэнергии потребляет ваш чайник или обогреватель?
Сделайте портативный счётчик электроэнергии!
Мы решили собрать свой счётчик, используя Arduino и 3D-печать. Идея нашего счётчика проста: при подлючении электроприбора он измеряет расход электричества, подсчитывает, сколько денег потрачено, а затем отображает это значение на экране.
Шаг 1. Что понадобится
Итак, для начала нам понадобятся инструменты:
- Бокорезы
- Отвёртки
- Пассатижи
- Паяльник и припой
- Наждачная бумага и надфили
- 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 — аналоговый и основан на эффекте Холла. Всего бывают три разновидности данного датчика, они отличаются максимальным измеряемым током:
- ACS712ELCTR-05B, максимум 5 А.
- ACS712ELCTR-20A, максимум 20 А.
- ACS712ELCTR-30A, максимум 30 А.
Вы можете выбрать любой из них, например использовать наш датчик тока на 5 А, при условии, что ток в цепи не будет превышать максимального значения.
Микроконтроллер
Микроконтроллер обрабатывает данные с датчика тока, производит вычисления и обновляет информацию на дисплее. Все эти задачи очень просты, и с ними справится любая ненавороченная плата Arduino. Чтобы финальное устройство получилось наиболее компактным, лучше взять плату Micro размерами поменьше.
AC/DC-преобразователь
Наш прибор будет измерять переменный ток напряжением 220 В, но платформе Arduino и датчику тока нужен постоянный ток напряжением 5 В, поэтому нам понадобится АС/DC-конвертер с 220 В до 5 В.
Можно использовать наш AC/DC-преобразователь в формате Zelo-модуля. Однако для проекта счётчика энергии такой модуль слишком громоздкий, и мы решили найти замену покомпактнее:
Дисплей
Для визуализации измерений мы использовали текстовый ЖК-дисплей на две строки по 8 символов.
Шаг 3. Вилки и розетки
Наше устройство должно вставляться в обычную домашнюю розетку, а уже в него вставляются вилки электроприборов.
Сделать в домашних условиях розетку и вилку 220 В довольно трудно, поэтому мы решили использовать готовые решения. В ближайшем хозяйственном магазине мы накупили разных вилок и розеток.
Затем мы разобрали их и выбрали, какие подходят нам лучше.
Необходимо было найти разъёмы, которые:
- Легко разбираются и собираются.
- Имеют удобные коннекторы для подключения проводов.
- Легко могут быть встроены в самодельный корпус.
Выбор пал на такой штекер и гнездо:
Шаг 4. Корпусирование
Корпус для нашего устройства мы напечатали на 3D-принтере из ABS-пластика.
Всего получилось 4 детали:
Все детали соединяются между собой винтами М3. Дисплей, дачтик тока и трансофрматор также крепятся винтами, а Arduino Micro просто вставляется в крепление внутри корпуса враспор.
Важно! Крепление вилки и розетки смоделированы конкретно под наши покупные разъёмы. Если вы будете использовать другие разъёмы — скорее всего, вам придётся перемоделировать корпус устройства под свои комплектующие.
Шаг 5. Cборка крепления розетки
На данном этапе понадобятся:
- Напечатанное крепление розетки.
- Внутренности покупной розетки.
- Толстые провода для 220 В.
Присоедините провода к розетке.
Установите покупную розетку в напечатанное крепление. Розетку нужно вставить в крепление до конца, чтобы она не выпадала и не болталась в нём. Если розетка совсем не вставлятся в крепление из-за усадки пластика или допусков зазоров, воспользуйтесь надфилем и шкуркой.
Шаг 6. Cборка корпуса
Здесь нам понадобятся:
- Напечатанный корпус
- Собранное крепление розетки
- Датчик тока
- Дисплей
- 4× Винт М3×20
- 4× Винт М3×10
- 2× Винт M2 / M2.5
- Гайки М3
- Низковольные монтажные провода и провода для 220 В
Вставьте крепление розетки в корпус и закрепите его винтами и гайками. Если крепление вставляется тяжело, воспользуйтесь шкуркой или надфилями и расширьте посадочное отверстие.
Подсоедините силовые и управляющие провода к датчику тока и закрепите его в корпусе винтами М2 / М2,5.
Подсоедините управляющие провода к дисплею и установите его в корпусе винтами и гайками М3.
Шаг 7. Cборка крепления вилки
- Напечатанное крепление вилки.
- Внутренности покупной вилки.
- Толстые провода для 220 В.
Присоедините провода к вилке.
Установите покупную вилку в напечатанное крепление. Вилку нужно вставить в крепление до конца, она не должна выпадать или болтаться в нём. Если вилка совсем не вставляется в крепление, воспользуйтесь надфилем и шкуркой.
Шаг 8. Cборка крышки
- Напечатанная крышка
- Собранное крепление вилки
- AC/DC-преобразователь
- Arduino Micro
- 4× Винт М3×10
- 4× Винт M2 / M2.5
- Гайки М3
Вставьте собранное крепление вилки в крышку и закрепите его винтами и гайками М3.
Установите плату Arduino Micro в крышку. Плата крепится враспорку без крепежа.
Установите AC/DC-преобразователь в крышку и зафиксируйте его крепежем M2 / M2.5.
Шаг 9. Схема подключения
Подключим все компоненты как показано на схеме:
Провода для переменного тока 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. Финальная сборка
- Собранный корпус
- Собранная крышка
- 4× Винт М3×10
Когда все провода и контакты соединены, корпус можно закрыть крышкой. Зафиксируйте крышку винтами М3.
Шаг 11. XOD
Для создания программы мы используем язык визуального программирования XOD. Он не требует обширных навыков в программировании и является идеальный выбором для новичков в мире Arduino. Язык XOD подходит для быстрого прототипрования различных устройств или быстрого создания несложных программ.
Всю программу работы электросчётчика мы разместили в отдельной XOD-бибилиотеке gabbapeople/electricity-meter .
Шаг 12. Программирование
Так выглядит итоговый патч программы нашего счетчика электричества:
Нода 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-8×2
Эта нода управляет ЖК-дисплеем на 2 строки по 8 символов. Для инициализации дисплея нужно указать все значения пинов Arduino, к которым он подключён. На первой строке дисплея L1 мы вывели строку Total: а на второй строке L2 — количество потраченных денег.
Загрузим патч на плату Arduino и проверим, как работает наш прибор, подключив через него увлажнитель воздуха.
Шаг 13. Дальнейшие советы
Этот проект — лишь пример того, как можно сделать счётчик электричества самостоятельно.
Вы можете расширить возможности своего устройства:
- Выходное значение тока ноды acs712-20a-ac-current-sensor можно вывести напрямую на дисплей. Таким образом устройство будет мерить моментальное значение тока, потребляемого электроприбором.
- Выходное значение мощности ноды multiply можно вывести напрямую на дисплей. Таким образом устройство будет мерить текущую мощность подключённого электроприбора.
- Можно добавить тактовую кнопку для сброса накопленного значения. Для этого добавьте ноду button к пину RST ноды integrate-dt .
- Вы можете использовать любой другой дисплей. Например, взять более вместительный текстовый дисплей 16×2 или OLED-дисплей 128×64, куда можно вывести больше полезных данных.