#include <ModbusMaster.h>
#define METER_ADDR 0x26
#define ADDR_START 0x0066
#define ADDR_NUMBER 8
ModbusMaster nodemeter;
void setup(){
Serial.begin(9600);
Serial1.begin(1200, SERIAL_8E1);
// MITSUBISHI DIGITAL METER SX1-A31E(RS-485)
nodemeter.begin(METER_ADDR, Serial1);
}
void loop(){
uint8_t result;
result = nodemeter.readHoldingRegisters(ADDR_START, ADDR_NUMBER);
Serial.println(result);
Serial.println(nodemeter.ku8MBSuccess);
if(result == nodemeter.ku8MBSuccess){
Serial.println("Success");
Serial.print("Line Voltage (RMS) (V) >>>>> ");
String line_voltage = String(nodemeter.getResponseBuffer(0x02) / 100.0f);
Serial.println(line_voltage); // Line Voltage (RMS) (V)
Serial.print("Frequency (Hz) >>>>> ");
String frequency = String(nodemeter.getResponseBuffer(0x05) / 10.0f);
Serial.println(frequency); // Frequency (Hz)
Serial.print("Active Energy (Wh) imp+exp >>>>> ");
String active_energy = String(nodemeter.getResponseBuffer(0x0A));
Serial.println(active_energy); // Active Energy (Wh) imp+exp
Serial.print("Line Current (RMS) (A) >>>>> ");
String line_current = String(nodemeter.getResponseBuffer(0x0C) / 100.0f);
Serial.println(line_current); // Line Current (RMS) (A)
Serial.print("Active Power (W) >>>>> ");
String active_power = String(nodemeter.getResponseBuffer(0x0F) / 1000.0f);
Serial.println(active_power); // Active Power (W)
}
else {Serial.println("Fail");}
}
Я пытаюсь получить данные с цифрового счетчика с помощью esp32. Как вы можете видеть в моем коде, он не может получить данные с цифрового счетчика. На последовательном мониторе в Arduino IDE отображается только слово «Fail».