Я видел схемы модификаций, в которых питание переводится на 5V (от UART).
Ну, вот, опять проблемы со знаниями и моей подплинтусной квалификацией. Интереса ради попытался загрузить взятые отсюда: GitHub - olehs/PZEM004T: Arduino communication library for Peacefair PZEM-004T Energy monitor библиотеки и скетч (естественно, библиотеки установил в нужной папке ардуины).
При компиляции ответ:
‘Serial1’ was not declared in this scope
Не используется: D:\Programs\Arduino\libraries\SoftwareSerial-master
exit status 1
Скетч:
#include <SoftwareSerial.h>
#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);
}
В скопированном сообщении об ошибке вот такой текст:
"Arduino: 1.8.19 (Windows 10), Плата:“Arduino Uno”
PZEM004T:4:16: error: ‘Serial1’ was not declared in this scope PZEM004T pzem(&Serial1); ^~~~~~~ D:\ArduinoValkyrieWattmeter\PZEM004T\PZEM004T.ino:4:16: note: suggested alternative: ‘Serial’ PZEM004T pzem(&Serial1); ^~~~~~~ Serial Несколько библиотек найдено для “SoftwareSerial.h” Используется: D:\Programs\Arduino\hardware\arduino\avr\libraries\SoftwareSerial Не используется: D:\Programs\Arduino\libraries\SoftwareSerial-master exit status 1 ‘Serial1’ was not declared in this scope Этот отчёт будет иметь больше информации с
включенной опцией Файл → Настройки →
“Показать подробный вывод во время компиляции”
"
Заранее спасибо за помощь!
Serial1 надо сначала обьявить. Т.е вызвать конструктор
Третья строка
Откуда на Уно Serial1?
Друзья, не сочтите за жлобство: дайте балбесу маленький фрагмент скетча, который устранит проблему. Только просьба - с комментами, чтобы я мог разобраться!
Вы не упомянули, в чем именно состоит проблема.
Если Вам нужно тупо избавиться от диагностики ошибки, то самый простой способ - убрать “1” в “Serial1”.
Исправление чуть сложнее - описать Serial1.
Можно избавиться от ошибки, и вообще не меняя ни одного символа в тексте скетча, а заменив контроллер с Uno на Mega.
Спасибо! Попробую сначала первое. Не выйдет - закажу мегу
#include <SoftwareSerial.h> // Arduino IDE <1.6.6
#include <PZEM004T.h>
PZEM004T pzem(10,11); // (RX,TX) connect to TX,RX of PZEM
IPAddress ip(192,168,1,1);
void setup() {
Serial.begin(9600);
pzem.setAddress(ip);
}
PS ты по своей специальности точно знаешь одного взгляда достаточно, чтобы сказать - “букет” )))
PPS взято из примера
IP-адрес служит идентификатором в PZEM-004 , но не в PZEM-004T.
если ты о мной размещённом коде - это не ко мне, к автору библиотеки, код выдран из примера
Уточню - в PZEM-004T v3.0, который сейчас предлагается на рынке, протокол другой, не тот, что в библиотеке.
тут проблема более глобальная оказывается, чем неправильная инициализация софтового сериала
Вот правильная библиотека. В примерах работа с софт сериалом . Для уны подойдёт. PZEM-004T-v30/examples/PZEMSoftwareSerial/PZEMSoftwareSerial.ino at master · mandulaj/PZEM-004T-v30 · GitHub
Но лучше использовать esp32. Бонусом можно управлять и следить с телефона через вифи.
Ради интереса посмотрел в оф.сторе на Али: на фото v1.0, в описании и документации приложенной - всё для v3.0. Поэтому покупка 004T - фортуна-лотерея, но скорее всего, полагаю, будет прислан v3.0.
выапкнт
Я ориентировался на модбас в описании. Пришли 3.0 , ка к надо . Например https://aliexpress.ru/item/1005004389563403.html 760 руб и модбас в описании.
653 руб. Просто аттракцион невиданной щедрости.
Лучше бы Вы все-таки сформулировали существо проблемы.
Потому как предложенные мной разные способы разрешают различные проблемы, а не одну и ту же. Соответственно каждый из способов подходит только для “своей” проблемы. И, кроме того, нет никакой уверенности, что у Вас именно какая-то из трех предположенный мною проблем. Возможно, у Вас какая-то четвертая.
В общем, настоятельно рекомендую подходить к разрешению проблем осознанно. А начинать нужно, как всегда, с формулировки проблемы.