รบกวนช่วยูหน่อยครับArduino

พอดีลองเช็คโค๊ดแล้วมันติดครับไม่ทราบว่าจะแก้ยังไงรบกวนผู้รู้ช่วยหน่อยครับ

Arduino: 1.8.13 (Windows 10), Board: "Generic ESP8266 Module, 80 MHz, Flash, Legacy (new can return nullptr), All SSL ciphers (most compatible), dtr (aka nodemcu), 26 MHz, 40MHz, DOUT (compatible), 1MB (FS:64KB OTA:~470KB), 2, nonos-sdk 2.2.1+100 (190703), v2 Lower Memory, Disabled, None, Only Sketch, 115200"





















WARNING: library LiquidCrystal_I2C claims to run on avr architecture(s) and may be incompatible with your current board which runs on esp8266 architecture(s).

A4_Code_Smart_Farm_Aiot_Learn:25:15: error: expected primary-expression before ',' token

 DHT dht(DHTPIN, DHTTYPE); //DHT 11

               ^

A4_Code_Smart_Farm_Aiot_Learn:40:14: error: 'D4' was not declared in this scope

 int relay1 = D4; // ขาเชื่อมต่อรีเลย์ อุณหภูมิอากาศ

              ^

A4_Code_Smart_Farm_Aiot_Learn:41:14: error: 'D5' was not declared in this scope

 int relay2 = D5; // ขาเชื่อมต่อรีเลย์ ความชื้นอากาศ

              ^

A4_Code_Smart_Farm_Aiot_Learn:42:14: error: 'D6' was not declared in this scope

 int relay3 = D6; // ขาเชื่อมต่อรีเลย์ ความชื้นดิน

              ^

A4_Code_Smart_Farm_Aiot_Learn:43:14: error: 'D7' was not declared in this scope

 int relay4 = D7; // ขาเชื่อมต่อรีเลย์ อุณหภูมิดิน

              ^

C:\Users\Dell\AppData\Local\Temp\Rar$DIa0.013\A4_Code_Smart_Farm_Aiot_Learn\A4_Code_Smart_Farm_Aiot_Learn.ino: In function 'void sendSensor()':

A4_Code_Smart_Farm_Aiot_Learn:61:14: error: no matching function for call to 'LiquidCrystal_I2C::begin()'

    lcd.begin();

              ^

C:\Users\Dell\AppData\Local\Temp\Rar$DIa0.013\A4_Code_Smart_Farm_Aiot_Learn\A4_Code_Smart_Farm_Aiot_Learn.ino:61:14: note: candidate is:

In file included from C:\Users\Dell\AppData\Local\Temp\Rar$DIa0.013\A4_Code_Smart_Farm_Aiot_Learn\A4_Code_Smart_Farm_Aiot_Learn.ino:17:0:

C:\Users\Dell\Documents\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:60:8: note: void LiquidCrystal_I2C::begin(uint8_t, uint8_t, uint8_t)

   void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS );

        ^

C:\Users\Dell\Documents\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:60:8: note:   candidate expects 3 arguments, 0 provided

C:\Users\Dell\AppData\Local\Temp\Rar$DIa0.013\A4_Code_Smart_Farm_Aiot_Learn\A4_Code_Smart_Farm_Aiot_Learn.ino: In function 'void setup()':

A4_Code_Smart_Farm_Aiot_Learn:159:16: error: no matching function for call to 'LiquidCrystal_I2C::begin()'

      lcd.begin();

                ^

C:\Users\Dell\AppData\Local\Temp\Rar$DIa0.013\A4_Code_Smart_Farm_Aiot_Learn\A4_Code_Smart_Farm_Aiot_Learn.ino:159:16: note: candidate is:

In file included from C:\Users\Dell\AppData\Local\Temp\Rar$DIa0.013\A4_Code_Smart_Farm_Aiot_Learn\A4_Code_Smart_Farm_Aiot_Learn.ino:17:0:

C:\Users\Dell\Documents\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:60:8: note: void LiquidCrystal_I2C::begin(uint8_t, uint8_t, uint8_t)

   void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS );

        ^

C:\Users\Dell\Documents\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:60:8: note:   candidate expects 3 arguments, 0 provided

Multiple libraries were found for "DHT.h"

 Used: C:\Users\Dell\Documents\Arduino\libraries\DHT

 Not used: C:\Users\Dell\Documents\Arduino\libraries\DHT_sensor_library

exit status 1

expected primary-expression before ',' token



This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

นี้ตัวโค๊ดหมดเลยครับ

//--------------------------------------------------------------------------------//
#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

#include <DHT.h> //DHT 11

#include <Wire.h>
#include <LiquidCrystal_I2C.h> // Lcd i2c

#define D3
#define DHTPIN D3          // ขาเซ็นเซอร์อุณหภูมิและความชื้น อากาศ
#define DHTTYPE DHT11      // ตั้งค่าอุปกรณ์ DHT 11

LiquidCrystal_I2C lcd(0x27, 16, 2);   // ขา D1/D2


DHT dht(DHTPIN, DHTTYPE); //DHT 11

BlynkTimer timer;
 
char auth[] = "06-3Sx1AF2cSVc_e9g8P0kRwQAZd7FyP"; 
char ssid[] = "Niran";
char pass[] = "25212521";

int TemValue;    //ประกาศตัวแปลเก็บค่าจาก Blynk
int HumValue;    //ประกาศตัวแปลเก็บค่าจาก Blynk
int Siol1Value;  //ประกาศตัวแปลเก็บค่าจาก Blynk
int relayx;

int Siol1  = A0; // ขาเชื่อมต่อ เซ็นเซอร์ความชื้นดิน

int relay1 = D4; // ขาเชื่อมต่อรีเลย์ อุณหภูมิอากาศ
int relay2 = D5; // ขาเชื่อมต่อรีเลย์ ความชื้นอากาศ
int relay3 = D6; // ขาเชื่อมต่อรีเลย์ ความชื้นดิน
int relay4 = D7; // ขาเชื่อมต่อรีเลย์ อุณหภูมิดิน
//---------------------------------------------------------------------------//

void sendSensor()
{
  float h = dht.readHumidity();
  float t = dht.readTemperature(); 
  int Tem = t;
  int Hum = h; 
                                  
  int siolx;
  int s = analogRead(Siol1);
      s = map(s, 0, 1023, 0, 100);
  siolx = 100-s;

  //------------------------------ แสดงผล จอ Liq------------------------------//
  
   LiquidCrystal_I2C lcd(0x27, 16, 2); //เลือก Address จอ LCD ที่จะเขียนข้อความ
   lcd.begin();
  
   lcd.setCursor(0, 0); 
   lcd.print("T"); 
   lcd.setCursor(1, 0); 
   lcd.print(Tem); 
  
   lcd.setCursor(4, 0); 
   lcd.print("t"); 
   lcd.setCursor(5, 0); 
   lcd.print(TemValue); 

   //lcd.setCursor(8, 0); 
   //lcd.print("Farm iot"); 

   
   lcd.setCursor(0, 1); 
   lcd.print("H"); 
   lcd.setCursor(1, 1); 
   lcd.print(Hum); 
   
   lcd.setCursor(4, 1); 
   lcd.print("h"); 
   lcd.setCursor(5, 1); 
   lcd.print(HumValue); 

   lcd.setCursor(8, 1); 
   lcd.print("s");
   lcd.setCursor(9, 1); 
   lcd.print(siolx);
   lcd.setCursor(11, 1); 
   lcd.print("%");

   lcd.setCursor(13, 1); 
   lcd.print(Siol1Value);
   lcd.setCursor(15, 1); 
   lcd.print("%"); 

   //--------------------------------------------------------------//
       Blynk.virtualWrite(V5, t);      // ส่งข้อมูลไปยัง VirtualPin V5
       Blynk.virtualWrite(V6, h);      // ส่งข้อมูลไปยัง VirtualPin V6
       Blynk.virtualWrite(V7, siolx);  // ส่งข้อมูลไปยัง VirtualPin V7 
   //--------------------------------------------------------------//
     if(Tem >= TemValue) // เงือนไขตรวจสอบ อุณหภูมิ อากาศ
       { 
        digitalWrite(relay1,0);
       }
       else
       {
        digitalWrite(relay1,1);
       }
   //--------------------------------------------------------------//
     if(Hum >= HumValue) // เงื่อนไขตรวจสอบ ความชื้น อากาศ
       {  
        digitalWrite(relay2,0);
       }
       else
       {      
        digitalWrite(relay2,1);
       }
   //--------------------------------------------------------------//
     if(siolx <= Siol1Value) // เงื่อนไขตรวจสอบ ความชื้น ของดิน
       {     
        digitalWrite(relay3,0);
       }
       else
       {      
        digitalWrite(relay3,1);
       }
   //-------------------------------------------------------------//
    if(relayx == 1) // เงื่อนไขตรวจสอบ การทำงาน relay4
       {     
        digitalWrite(relay4,0);
        lcd.setCursor(8, 0); 
        lcd.print("Sw4 on");
       }
       else
       {      
        digitalWrite(relay4,1);
        lcd.setCursor(8, 0); 
        lcd.print("Sw4 off");
       }
}
   //-------------------------------------------------------------// 

void setup()
{
     Serial.begin(9600);
     
     Blynk.begin(auth, ssid, pass);

     pinMode(Siol1,INPUT);  
     
     pinMode(relay1,OUTPUT);
     pinMode(relay2,OUTPUT);
     pinMode(relay3,OUTPUT);
     pinMode(relay4,OUTPUT);

     lcd.begin();
     lcd.backlight();
     
     dht.begin();
  
     timer.setInterval(1000L, sendSensor); 
}

//---------------------------------------------------------------//
BLYNK_WRITE(V15) // ประกาศใช้ Virtual V15 Blynk
{
   TemValue = param.asInt();// ประกาศค่าตัวแปล pinValue เก็บค่าจาก ปุ่ม Blynk
}
//--------------------------------------------------------------//

BLYNK_WRITE(V16) // ประกาศใช้ Virtual V16 Blynk
{
   HumValue = param.asInt();// เก็บค่าตัวแปล HumValue เก็บค่าจาก ปุ่ม Blynk
} 
//-------------------------------------------------------------//

BLYNK_WRITE(V17) // ประกาศใช้ Virtual V17 Blynk
{
   Siol1Value = param.asInt();// เก็บค่าตัวแปล Siol1Value เก็บค่าจาก ปุ่ม Blynk
} 
//------------------------------------------------------------//

BLYNK_WRITE(V18) // ประกาศใช้ Virtual V18 Blynk
{
   relayx = param.asInt();// เก็บค่าตัวแปล SiolTem เก็บค่าจาก ปุ่ม Blynk
} 
//-----------------------------------------------------------//
BLYNK_CONNECTED()
{
        Blynk.syncVirtual(V15);
        Blynk.syncVirtual(V16);
        Blynk.syncVirtual(V17);
        Blynk.syncVirtual(V18);
}
//-----------------------------------------------------------//

void loop()
{
  Blynk.run();
  timer.run(); 
  
}
//-----------------------END--------------------------------//

ลง library DHT รึยังครับ