Exit status 1 error

exit status 1 error compiling for board nodemcu 1.0 (esp-12e module). this report would have more information with “show verbose output during compilation” option enabled in file → preferences.

ทำอะไรยังไงมา อธิบายหน่อยครับ

พอดีผมไม่ได้เล่นนานอล้วนะครับ โค้ดที่เคย อัพไว้ เมื่อ 2ปีที่แล้ว ตอนนี้ผมจะเปลี่ยน wifi นะครับ พอจะโหลดก็ขึ้น แบบนี้ Verity ก็ไม่ผ่าน ครับ

copy error มาวางหน่อย

Arduino: 1.8.18 (Windows 10), Board: "NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Disabled (new aborts on oom), Disabled, All SSL ciphers (most compatible), 32KB cache + 32KB IRAM (balanced), Use pgm_read macros for IRAM/PROGMEM, 4MB (FS:2MB OTA:~1019KB), 2, v2 Lower Memory, Disabled, None, Only Sketch, 115200"
In file included from C:\Users\chalermrit\Documents\Arduino\libraries\blynk-library-master\src/BlynkApiArduino.h:14, 
                from C:\Users\chalermrit\Documents\Arduino\libraries\blynk-library-master\src/BlynkSimpleEsp8266.h:24, 
                 from D:\Users\chalermrit\Desktop\monitorFunction_Order\monitorFunction_Order.ino:4: C:\Users\chalermrit\Documents\Arduino\libraries\blynk-library-master\src/Blynk/BlynkApi.h:39:6
error: #error "Please specify your BLYNK_TEMPLATE_ID and BLYNK_TEMPLATE_NAME" 
   39 |     #error "Please specify your BLYNK_TEMPLATE_ID and BLYNK_TEMPLATE_NAME" 
      |      ^~~~~ 
Multiple libraries were found for "ArduinoOTA.h" 
 Used: C:\Users\chalermrit\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\libraries\ArduinoOTA 
 Not used: C:\Users\chalermrit\Documents\Arduino\libraries\ArduinoOTA-master 
exit status 1 
Error compiling for board NodeMCU 1.0 (ESP-12E Module). This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

#include <ModbusMaster.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>

#define MAX485_DE D2
#define MAX485_RE D1

#define PANEL_VOLTS 0x00
#define PANEL_AMPS 0x01
#define PANEL_POWER_L 0x02
#define PANEL_POWER_H 0x03
#define BATT_VOLTS 0x04
#define BATT_AMPS 0x05
#define BATT_POWER_L 0x06
#define BATT_POWER_H 0x07
#define LOAD_VOLTS 0x0C
#define LOAD_AMPS 0x0D
#define LOAD_POWER_L 0x0E
#define LOAD_POWER_H 0x0F

#define ST_led D4
//////WIFI///////////
const char* ssid = “chalermrit”;
const char* password = “chalermrit”;

// You should get Auth Token in the Blynk App.
char auth = “”;
BlynkTimer timer;
ModbusMaster node;

float pV , pI , pP , bV , bI , bP , lV , lI , lP , today_use , today_gen , Min_batt , started_waiting_at , bremaining , btemp , c_temp ;
byte ChrgStatus ;
int Relay2 = D0 ; // Reylay temp control
int Relay1 = D5; // Reylay status control
int ledR = D6 ; // Red LED
int ledG = D7 ; // Green LED
int ledB = D8 ; // Blue LED
WidgetLED led_stratus(0); // Blynk V0
WidgetLED led_relay1(14); // Blynk V14
WidgetLED led_relay2(15); // Blynk V15

int ledState = LOW; // ledState used to set the LED
unsigned long previousMillis = 0; // will store last time LED was updated
const long interval = 1500; // interval at which to blink (milliseconds)
byte t_control = 45;

uint8_t result;
uint16_t data[6];

///////////// Read 16 registers starting at 0x3100)//////////////
void readEPDATA1() {

digitalWrite(ST_led, HIGH); //ไฟสีฟ้าติด

node.clearResponseBuffer();
delay(50); // give tracer a moment to settle down
result = node.readInputRegisters(0x3100, 18);

if (result == node.ku8MBSuccess) {
pV = node.getResponseBuffer(PANEL_VOLTS) / 100.0f;
pI = node.getResponseBuffer(PANEL_AMPS) / 100.0f;
pP = (node.getResponseBuffer(PANEL_POWER_L) | (node.getResponseBuffer(PANEL_POWER_H) << 8)) / 100.0f;

bV = node.getResponseBuffer(BATT_VOLTS) / 100.0f;
bI = node.getResponseBuffer(BATT_AMPS) / 100.0f;
bP = (node.getResponseBuffer(BATT_POWER_L) |  (node.getResponseBuffer(BATT_POWER_H) << 8)) / 100.0f;

lV = node.getResponseBuffer(LOAD_VOLTS) / 100.0f;
lI = node.getResponseBuffer(LOAD_AMPS) / 100.0f;
lP = (node.getResponseBuffer(LOAD_POWER_L) |  (node.getResponseBuffer(LOAD_POWER_H) << 8)) / 100.0f;

c_temp = node.getResponseBuffer(0x11) / 100.0f;

Serial.println();
Serial.print("VPanel: ");
Serial.println(pV);
Serial.print("IPanel: ");
Serial.println(pI);
Serial.print("PPanel: ");
Serial.println(pP);
Serial.println();

Serial.print("VBatt: ");
Serial.println(bV);
Serial.print("IBatt: ");
Serial.println(bI);
Serial.print("PBatt: ");
Serial.println(bP);
Serial.println();

Serial.print("VLoad: ");
Serial.println(lV);
Serial.print("ILoad: ");
Serial.println(lI);
Serial.print("PLoad: ");
Serial.println(lP);
Serial.println();

Serial.print("control Temp: ");
Serial.println(c_temp);
Serial.println();

Blynk.virtualWrite(1, pV);      // แรงดันแผง
Blynk.virtualWrite(2, pI);      // กระแสแผง
Blynk.virtualWrite(3, bV);      //แรงดันแบต
Blynk.virtualWrite(4, bI);      //กระแสแบต
Blynk.virtualWrite(5, lI);      // กระแสโหลด
Blynk.virtualWrite(6, pP);      //กำลังแผง
Blynk.virtualWrite(7, lP);      //กำลังโหลด
Blynk.virtualWrite(8, c_temp);  // อุณหภูมิเครื่อง

} else {
led_onoff(1);
Serial.print(“Miss read, ret val 1:”);
Serial.println(result, HEX);
}
}

///////////// Read 16 registers starting at 0x3300)//////////////
void readEPDATA2() {
// node.clearResponseBuffer();
delay(50); // give tracer a moment to settle down

result = node.readInputRegisters(0x3300, 16);

if (result == node.ku8MBSuccess)
{
Min_batt = node.getResponseBuffer(0x03) / 100.0f;

today_use = (node.getResponseBuffer(0x04) |
             (node.getResponseBuffer(0x05) << 8)) / 100.0f;
today_gen = (node.getResponseBuffer(0x0C) |
             (node.getResponseBuffer(0x0D) << 8)) / 100.0f;

Serial.print("Min Battery: ");
Serial.println(Min_batt);

Serial.print("Energy Use: ");
Serial.println(today_use);

Serial.print("Energy Gen: ");
Serial.println(today_gen);
Serial.println();
Blynk.virtualWrite(9, today_gen);     //ผลิตพลังงาน
Blynk.virtualWrite(10, today_use);    //กำลังโหลด
Blynk.virtualWrite(11, Min_batt);     //Vต่ำสุด

}
else {
Serial.print(“Miss read, ret val 2:”);
Serial.println(result, HEX);
led_onoff(2);
}
}

void readEPDATA3() {

delay(50); // give tracer a moment to settle down

result = node.readInputRegisters(0x311A, 2);

if (result == node.ku8MBSuccess) {
bremaining = node.getResponseBuffer(0x00) / 1.0f;
Serial.print("Battery Remaining %: ");
Serial.println(bremaining);

btemp = node.getResponseBuffer(0x01) / 100.0f;
Serial.print("Battery Temperature: ");
Serial.println(btemp);
Blynk.virtualWrite(12, bremaining);  //% แบตเตอรรี่
Blynk.virtualWrite(13, btemp);  // อุณหภูมิแบตเตอรรี่

} else {
Serial.print(“Miss read, ret val 3:”);
Serial.println(result, HEX);
led_onoff(3);
}
}

//////////////////Charging Status/////////////////////////////////////
void readEPStatus() {
//void AddressRegistry_3201() ??? Charging Status (Read Only)
//D3-D2 00=No charge, 01/1=Float, 10/2=Boost, 11/3=Equalisation
// node.clearResponseBuffer();
delay(50); // give tracer a moment to settle down

result = node.readInputRegisters(0x3201, 1);

if (result == node.ku8MBSuccess)
{
ChrgStatus = node.getResponseBuffer(0x00);
ChrgStatus = ChrgStatus >> 2;// shift right 2 places to get bits D3 D2 into D1 D0
ChrgStatus = ChrgStatus & 3; // and it, bit wise with, 0000000000000011, to get just D1 D0, loose th rest
//String(ChrgStatus);
Serial.println(ChrgStatus);
Serial.println();

switch (ChrgStatus) {
  case 0 : led_stratus.on(); {
      Blynk.setProperty(V0, "color", "#f22c09");  // not charge  แดง
      led_relay1.off();
      digitalWrite(ledR, HIGH);
    }
    break;

  case 1 : led_stratus.on(); {
      Blynk.setProperty(V0, "color", "#43f209"); //folat charge เขียว
      digitalWrite(ledG, HIGH);
    }
    break;

  case 2 : led_stratus.on(); {
      Blynk.setProperty(V0, "color", "#097df2");  // boot charge ฟ้า
      digitalWrite(ledB, HIGH);
    }
    break;

  case 3 : led_stratus.on(); {
      Blynk.setProperty(V0, "color", "#fff719"); // Equalisation เหลือง
      digitalWrite(ledR, HIGH);
      digitalWrite(ledG, HIGH);
    }
    break;
}

}
else
{
Serial.print(“Miss read, ret val4:”);
Serial.println(result, HEX);
digitalWrite(Relay1, HIGH);
led_onoff(4);
}
}

//////// off ALL LED//////////
void offLED() {
digitalWrite(ST_led, LOW);
digitalWrite(ledR, LOW);
digitalWrite(ledG, LOW);
digitalWrite(ledB, LOW);
led_stratus.off();
}
void readepever() {
readEPDATA1();
readEPDATA2();
readEPDATA3();
readEPStatus();
status_check();
temp_check();

}
void led_onoff(int i) {
while (i > 0) {
digitalWrite(ledR, HIGH);
digitalWrite(ledG, HIGH);
digitalWrite(ledB, HIGH);
delay (100);
digitalWrite(ledR, LOW);
digitalWrite(ledG, LOW);
digitalWrite(ledB, LOW);
delay(100);
i–;
}
}
void status_check() {
if ( ChrgStatus == 1) {
digitalWrite(Relay1, LOW);
led_relay1.on();
}
else {
digitalWrite(Relay1, HIGH);
led_relay1.off();
}
}

void temp_check() {
if ( c_temp >= t_control) {
digitalWrite(Relay2, LOW);
led_relay2.on();
}
else if (c_temp < t_control-2 ) {
digitalWrite(Relay2, HIGH);
led_relay2.off();
}
else {}
}

//////////////////////////////////////////////////////////////
void setup() {

pinMode(Relay1, OUTPUT);
pinMode(Relay2, OUTPUT);
pinMode(ST_led, OUTPUT);
pinMode(ledR, OUTPUT);
pinMode(ledG, OUTPUT);
pinMode(ledB, OUTPUT);
pinMode(MAX485_RE, OUTPUT);
pinMode(MAX485_DE, OUTPUT);
digitalWrite(Relay1, HIGH);
digitalWrite(Relay2, HIGH);

Serial.begin(115200);
// Init in receive mode
digitalWrite(MAX485_RE, 0);
digitalWrite(MAX485_DE, 0);
// Modbus at 115200 baud
// mySerial.begin(115200);
// EPEver Device ID 1
node.begin(1, Serial);

// Callbacks
node.preTransmission(preTransmission);
node.postTransmission(postTransmission);
bool state = true;
Serial.println(“Booting”);
WiFi.mode(WIFI_STA);
Blynk.begin(auth, ssid, password);
while (WiFi.waitForConnectResult() != WL_CONNECTED) {
Serial.println(“Connection Failed! Rebooting…”);

delay(5000);
ESP.restart();

}
Serial.println(ssid);
ArduinoOTA.onStart( {
Serial.println(“Start”);
});
ArduinoOTA.onEnd( {
Serial.println(“\nEnd”);
});
ArduinoOTA.onProgress((unsigned int progress, unsigned int total) {
Serial.printf(“Progress: %u%%\r”, (progress / (total / 100)));
});
ArduinoOTA.onError((ota_error_t error) {
Serial.printf("Error[%u]: ", error);
if (error == OTA_AUTH_ERROR) Serial.println(“Auth Failed”);
else if (error == OTA_BEGIN_ERROR) Serial.println(“Begin Failed”);
else if (error == OTA_CONNECT_ERROR) Serial.println(“Connect Failed”);
else if (error == OTA_RECEIVE_ERROR) Serial.println(“Receive Failed”);
else if (error == OTA_END_ERROR) Serial.println(“End Failed”);
});
ArduinoOTA.begin();
Serial.println(“Ready”);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());

timer.setInterval(3000L, readepever);
}

void loop() {
ArduinoOTA.handle();
Blynk.run();
timer.run();

unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
// save the last time you blinked the LED
previousMillis = currentMillis;
offLED();
}
}
void preTransmission()
{
digitalWrite(MAX485_RE, 1);
digitalWrite(MAX485_DE, 1);
}
void postTransmission()
{
digitalWrite(MAX485_RE, 0);
digitalWrite(MAX485_DE, 0);
}

ลบโฟเดอร์นี้ออก