PZEM004T

Модератор: Alex

serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: PZEM004T

Сообщение serghei » Вс сен 23, 2018 9:12 pm

Отправить готовые данные одним залпом не проблема. Главное отправить их в AMS. И тут несколько вариантов. Самый простой - по сериалу. Точно так же как в плате от RobotDyn. Но тогда далеко не утащишь контроллер.По радио отправлять - то же не вариант.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
svetozar161
Сообщения: 72
Зарегистрирован: Пт янв 13, 2017 11:48 pm
Благодарил (а): 6 раз
Поблагодарили: 3 раза

Re: PZEM004T

Сообщение svetozar161 » Вс сен 23, 2018 9:19 pm

Так он у меня физически подключен к пинам 18, 19 это serial1. Я же говорю, что надо так скетч написать, чтобы он был с паузами и не грузил полностью контроллер, так же надо написать get для мажордомо.
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: PZEM004T

Сообщение serghei » Вс сен 23, 2018 9:41 pm

Get для МД это последнее дело. Сейчас надо распарсить данные по сериалу. Если это сделано как на той плате - то ничего не грузит...Думаю как принять данные.
...Залей в Мегу скетч от RobotDyn. Подключись к Сериал3. Посмотрим что там вывалиться. Если всё пойдет правильно , должен увидеть осмысленную инфу в квадратных скобках.
  • [20;1;1;0;38;3236]
Типа такой.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
svetozar161
Сообщения: 72
Зарегистрирован: Пт янв 13, 2017 11:48 pm
Благодарил (а): 6 раз
Поблагодарили: 3 раза

Re: PZEM004T

Сообщение svetozar161 » Вс сен 23, 2018 10:43 pm

а где его взять?
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: PZEM004T

Сообщение serghei » Вс сен 23, 2018 10:49 pm

На сайте Алекса , там же где и АМС. Похоже придумал. Статья про протокол написана Тут. Интернет шилд можно не ставить пока. Что бы он стартанул пропиши

Код: Выделить всё

// time provider
#define TIME_NONE    0
#define TIME_NETWORK 1
#define TIME_RTC     2
//byte timeProvider = TIME_NETWORK;

byte timeProvider = TIME_NONE;
СпойлерПоказать
RobotDyn.png
RobotDyn.png (110.73 КБ) 6971 просмотр
Эту.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Avolodin
Сообщения: 18
Зарегистрирован: Сб апр 29, 2017 9:38 am
Благодарил (а): 2 раза
Поблагодарили: 9 раз

Re: PZEM004T

Сообщение Avolodin » Пн ноя 05, 2018 9:36 pm

Друзья. Я уже больше года пользуюсь связкой PZEM004T+ESP8266. Еспешка отправляет данные по MQTT в MD. Очень простенький скетч написал сам, кому интересно можете повторить.
ESP и PZEM004T соединяем Tx -Rx, Rx-Tx, земля с землёй и даем питание 3,3 вольта.
Кроме того впаиваем одно сопротивление на 1к как на картинке:
Изображение

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

Код: Выделить всё

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <PubSubClient.h>
#include <ESP8266mDNS.h>
#include <SoftwareSerial.h> 
#include <PZEM004T.h>
PZEM004T pzem(&Serial);
IPAddress ip(192,168,1,1); //адрес оставляйте этот


const char *mqtt_server = "192.168.0.100";       //адрес mqtt брокера

const char* ssid = "Keenetic-4568"; //имя своей сети 
const char* password = "12345678"; // пароль к сети
IPAddress ip_addr(192,168,0,53); //айпичник этого устройства
IPAddress router(192,168,0,1);
IPAddress netmask(255,255,255,0);

#define v_topic "PZEM/voltage"  //топик вольты
#define i_topic "PZEM/current"  //топик амперы  
#define p_topic "PZEM/power"  //топик ваты
#define e_topic "PZEM/energy"  //топик ватчасы


WiFiClient espClient;           //инициализация wifi
PubSubClient client(espClient); //инициализация mqtt клиента

void callback(char* topic, byte* payload, unsigned int length) {
  Serial.print("Message arrived [");
  Serial.print(topic);
  Serial.print("] ");
  for (int i = 0; i < length; i++) {
    Serial.print((char)payload[i]);
  }
  Serial.println();
}
 

void setup(void){
 Serial.begin(9600);
 pzem.setAddress(ip);
 WiFi.mode(WIFI_STA);
 WiFi.config(ip_addr,router,netmask);
 WiFi.begin(ssid, password);
 client.setServer(mqtt_server, 1883);
 client.setCallback(callback);
 while (WiFi.status() != WL_CONNECTED) {
 delay(500);
  }
}
 

void loop(void){
  
  float v = pzem.voltage(ip);
  float i = pzem.current(ip);  
  float p = pzem.power(ip);  
  float e = pzem.energy(ip);
  
   if (WiFi.status() != WL_CONNECTED) 
  {
    WiFi.begin(ssid, password);
    if (WiFi.waitForConnectResult() != WL_CONNECTED)
      return; 
  }
  if (WiFi.status() == WL_CONNECTED) 
  {
    if (!client.connected()) 
    { // то подключаемся к mqtt
      client.setServer(mqtt_server, 1883); 
      client.setCallback(callback);
      client.connect("ESPPZEM"); 

    }
    if (client.connected()) {   
      client.loop();            
      
      client.publish(v_topic, String(v).c_str()); // публикуем вольты
      client.publish(i_topic, String(i).c_str()); // публикуем вольты
      client.publish(p_topic, String(p).c_str()); // публикуем вольты
      client.publish(e_topic, String(e).c_str()); // публикуем вольты

    }
  }
  delay(6000);  // задержка 
}
За это сообщение автора Avolodin поблагодарили (всего 3):
serghei (Пн ноя 05, 2018 9:41 pm) • mashkov05 (Ср апр 17, 2019 2:10 pm) • antpino (Чт май 16, 2019 6:06 pm)
Рейтинг: 3.49%
Avolodin
Сообщения: 18
Зарегистрирован: Сб апр 29, 2017 9:38 am
Благодарил (а): 2 раза
Поблагодарили: 9 раз

Re: PZEM004T

Сообщение Avolodin » Ср ноя 07, 2018 8:58 am

Информация выводится на сцену вот так
Изображение
Аватара пользователя
ser009
Сообщения: 595
Зарегистрирован: Сб окт 13, 2012 9:55 am
Благодарил (а): 4 раза
Поблагодарили: 43 раза

Re: PZEM004T

Сообщение ser009 » Ср ноя 07, 2018 6:33 pm

У тебя реально 189 Вольт :shock:
Avolodin
Сообщения: 18
Зарегистрирован: Сб апр 29, 2017 9:38 am
Благодарил (а): 2 раза
Поблагодарили: 9 раз

Re: PZEM004T

Сообщение Avolodin » Ср ноя 07, 2018 7:32 pm

И это не предел. Бывает и 160 вольт.
У меня стоит стабилизатор на весь дом, замеры делаю до стабилизатора.
Аватара пользователя
ser009
Сообщения: 595
Зарегистрирован: Сб окт 13, 2012 9:55 am
Благодарил (а): 4 раза
Поблагодарили: 43 раза

Re: PZEM004T

Сообщение ser009 » Пт ноя 09, 2018 2:44 pm

Ужас
Ответить