NodeMCU + PZEM004t

Ответить
Аватара пользователя
Cancertanly
Сержант
Сообщения: 214
Зарегистрирован: 06 апр 2016, 19:59
Откуда: bish
Имя: Антон
Поблагодарили: 1 раз

NodeMCU + PZEM004t

Сообщение Cancertanly »

Подскажите пожалуйста, где я ошибаюсь? Создаю новый проект для NodeMCU, вставляю ПБ от ув.Boroda, подключаю выходы ПБ к входу отправки в UART, жму компилировать, но выскакивает ошибка:
[spoiler]
2018-07-11.png
[/spoiler]
вставляю скетч из примера ссылка :
[spoiler]

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

#include <PZEM004T.h>

/*
   An example on how to use ESP8266 hardware serial with PZEM004T
   Note: ESP8266 UART0 pins GPIO1 (TX) and GPIO3 (RX) are usually connected
   to an onboard USB2serial converter, it can affect PZEM communication.
   It's better not to share USB2serial pins for PZEM communication
   Default UART0 pins could be swapped to gpio13(rx),gpio15(tx)
   Note: gpio15 pin must be pulled lOW on esp start, otherwise it won't boot from eeprom.
   PZEM004T always pulls it's RX pin HIGH via optocoupler's led, so make sure to workaround it anyhow while esp boots up
*/


HardwareSerial hwserial(UART0);     // Use hwserial UART0 at pins GPIO1 (TX) and GPIO3 (RX)
PZEM004T pzem(&hwserial);           // Attach PZEM to hwserial
IPAddress ip(192,168,1,1);

bool pzemrdy = false;

void setup() {
   hwserial.swap();           // (optionally) swap hw_serial pins to gpio13(rx),15(tx)
   Serial1.begin(115200);     /* Since UART0 is occupied with PZEM004T, we use UART1 to output data to serial monitor
                                 UART1 uses hwserial at pin GPIO2
                              */
   while (!pzemrdy) {
      Serial1.println("Connecting to PZEM...");
      pzemrdy = pzem.setAddress(ip);
      delay(1000);
   }
}

void loop() {

  float v = pzem.voltage(ip);
  if (v < 0.0) v = 0.0;
   Serial1.print(v);Serial1.print("V; ");

  float i = pzem.current(ip);
   if(i >= 0.0){ Serial1.print(i);Serial1.print("A; "); }

  float p = pzem.power(ip);
   if(p >= 0.0){ Serial1.print(p);Serial1.print("W; "); }

  float e = pzem.energy(ip);
   if(e >= 0.0){ Serial1.print(e);Serial1.print("Wh; "); }

  Serial1.println();

  delay(3000);
}
[/spoiler]
происходит то же самое
У вас нет необходимых прав для просмотра вложений в этом сообщении.
FLProg_ru
https://t.me/flrog_ru ...................................................FLProg_v7.3.4
https://t.me/soft_duino
starshoy81
Лейтенант
Сообщения: 530
Зарегистрирован: 05 апр 2016, 23:30
Откуда: Санкт-Петербург
Имя: Илья

NodeMCU + PZEM004t

Сообщение starshoy81 »

[ref]Cancertanly[/ref], так у вас библиотека прерываний для avr используется в подключенной библиотеке, а вы пытаетесь в есп загрузить. Читайте, что вам компилятор пишет про ошибки. В настройках можно включить подробный лог компилятора и лучше отслеживать что там происходит.
Во втором случае - куда вы этот код вставляете и какая ошибка при компиляции выходит?
Ответить

Вернуться в «Помогите, а то я "нимагу"»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость