PZEM-004T и Ардуино

12-12-2020, 17:13 2 комментариев
Цель нашей статьи сегодня – разобрать подключение модуля PZEM-004T к Arduino. Этот измеритель потребляемой электроэнергии очень практичен в применении, доступен по цене и вполне надежен. Мы расскажем о его базовых параметрах, сборке, применении специализированного программного софта, прошивке и т.д.

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

Внешний вид и распиновка показаны на скриншоте:


Технические характеристики цифрового прибора таковы:
  • напряжение: 80 ~ 260V;
  • питание интерфейсной части: 5V;
  • точность измерения: 1%;
  • частота: 45-65 Гц;
  • тип шины: UART (скорость 9600);
  • диапазон измерения тока: 0-100А;
  • размеры: 31х74мм.
В модуле есть возможность дополнительного подключения цветных LCD ∕ LED дисплеев; имеется кнопка сброса значения Вт*ч.
Теперь поговорим о подключении PZEM-004T к Ардуино. Схема будет выглядеть вот так:


Для реализации этого проекта понадобится использовать 2 специализированные библиотеки - SoftwareSerial (для управления интерфейсом) и PZEM004T. Скачать их можно в нашем разделе по прямым ссылкам. 
https://github.com/olehs/PZEM004T

Не забудьте добавить разархивированные файлы в среду разработки IDE.

Зальем скетч:

#include <SoftwareSerial.h> // Arduino IDE <1.6.6
#include "PZEM004T.h"
PZEM004T pzem(&Serial1);
IPAddress ip(192,168,1,1);
void setup() {
  Serial.begin(115200);
  pzem.setAddress(ip);
}
void loop() {
  float v = pzem.voltage(ip);
  if (v < 0.0) v = 0.0;
  Serial.print(v);Serial.print("V; ");
  float i = pzem.current(ip);
  if(i >= 0.0){ Serial.print(i);Serial.print("A; "); }
 
  float p = pzem.power(ip);
  if(p >= 0.0){ Serial.print(p);Serial.print("W; "); }
 
  float e = pzem.energy(ip);
  if(e >= 0.0){ Serial.print(e);Serial.print("Wh; "); }
  Serial.println();
   delay(1000);
}

Эту сборку можно значительно расширить, добавив новые компоненты: дисплеи либо датчики. 
Энергомонитор с WiFi и логгером – отличное решение для любителей самоделок. Надеемся, вы останетесь довольны!
Поделись в социальных сетях:
О авторе
Калугин Антон

Программист микроконтроллеров с 8-ми летним стажем, работал в таких компаниях как IBM, ASUS, Microsoft.

В комментариях с радостью отвечу на ваши вопросы.

Все статьи автора
Похожие новости

Сегодня поговорим о том, как воплотить в жизнь подключение FPM10A к Arduino, что это за модуль, где используется, каковы параметры его работы и т.д. Речь идет...

Сегодня рассмотрим подключение экрана LCD 2004A к Ардуино. Данный модуль интересен для использования (и обзора) по многим причинам. Он достаточно прост в...

Предлагаем на обзор подключение LCD дисплея на базе HD44780 к Ардуино. Модуль выбран как всегда не случайно, т.к. имеет определенные преимущества, о которых...

Цель нашей сегодняшней статьи - рассказать вам о всех нюансах подключения цифрового датчика освещенности BH1750 к Arduino. Данный модуль достаточно...

Как подключить LCD 1602 к Ардуино в домашних условиях и пользоваться всеми преимуществами этого цифрового устройства – рассказываем сегодня в новой статье....

2 комментария
  1. Василий
    5 июня 2021 04:21 Василий

    Возникла такая проблема: при невозможности прочесть данные с PZEM-004T (например, при отключении сети) виснет скетч. Нельзя ли в библиотеке ограничить количество попыток чтения данных из энергомонитора?

    replyОтветить
  2. Shurovik
    20 декабря 2022 21:46 Shurovik

    При компиляции дает ошибку на Serial1, "'Serial1' was not declared in this scope". IDE 1.8.19, плата UNO R3. Как быть?

    replyОтветить
Оставить комментарий