#include <Wire.h>
#include <LiquidCrystal_I2C.h>


#define BLYNK_PRINT Serial

#define BLYNK_TEMPLATE_ID "valueL6yaK_CVi0"
#define BLYNK_TEMPLATE_NAME "DTH"
#define BLYNK_AUTH_TOKEN "EqQeAa7dJr435lnUba99035z9hejA8aW"

#include <WiFi.h>  
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>

char auth[] = BLYNK_AUTH_TOKEN; // สร้าตัวแปรอาเรย์  auth[] เก็บ่คาจากตัวแปร BLYNK_AUTH_TOKEN
char ssid[] = "Wokwi-GUEST";  // สร้าตัวแปรอาเรย์  ssid[] กำหนดชื่อ ssid
char pass[] = "";  // สร้าตัวแปรอาเรย์ pass[] กำหนดรหัสผ่านของ ssid

BlynkTimer timer; // เรียกฟังก์ชั่นเวลา หรือ timer

LiquidCrystal_I2C lcd(0x27,16,2);

void setup() {
  Serial.begin(115200);
  Wire.begin(23, 22);//I2C_SDA, I2C_SCL
  lcd.init();
  lcd.backlight();
  Blynk.begin(auth, ssid, pass);
}

void loop() {
  int value = map(analogRead(34),0,4095,0,100);
  Serial.println(value);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Soil Moisture");
  lcd.setCursor(0,1);
  lcd.print(String(value) + " Percentage");
  Blynk.virtualWrite(V4,value);
  Blynk.run();
  timer.run();
  delay(500);
}
Soil Moisture PercentageBreakout