#define BLYNK_TEMPLATE_ID "TMPL6Ag3153hK"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char auth[] = "x5pK4PD-0VjruJ4ptbn2PzuAlBNEr4xN";
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
#define TRIMPOT_PIN 34 // พอร์ตอะนาล็อกที่เชื่อมต่อกับทริมพ็อต
#define LED1_PIN 5 // พอร์ตดิจิตอลที่เชื่อมต่อกับ LED1
#define LED2_PIN 18 // พอร์ตดิจิตอลที่เชื่อมต่อกับ LED2
BlynkTimer timer;
void setup() {
// เริ่มการทำงานของ Blynk
Blynk.begin(auth, ssid, pass);
// ตั้งค่าพอร์ต I/O
pinMode(TRIMPOT_PIN, INPUT);
pinMode(LED1_PIN, OUTPUT);
pinMode(LED2_PIN, OUTPUT);
// ตั้งค่าฟังก์ชันที่เรียกใช้เป็นระยะ
timer.setInterval(1000L, readTrimpot);
}
void loop() {
Blynk.run();
timer.run();
}
void readTrimpot() {
int trimpotValue = analogRead(TRIMPOT_PIN); // อ่านค่าจากทริมพ็อต
if (trimpotValue <= 500) {
digitalWrite(LED1_PIN, HIGH); // เปิด LED1
digitalWrite(LED2_PIN, LOW); // ปิด LED2
Blynk.virtualWrite(V1, 1); // ส่งสถานะ LED1 ไปที่ Blynk
Blynk.virtualWrite(V2, 0); // ส่งสถานะ LED2 ไปที่ Blynk
} else if (trimpotValue > 500 && trimpotValue <= 1000) {
digitalWrite(LED1_PIN, LOW); // ปิด LED1
digitalWrite(LED2_PIN, HIGH); // เปิด LED2
Blynk.virtualWrite(V1, 0); // ส่งสถานะ LED1 ไปที่ Blynk
Blynk.virtualWrite(V2, 1); // ส่งสถานะ LED2 ไปที่ Blynk
} else {
digitalWrite(LED1_PIN, LOW); // ปิด LED1
digitalWrite(LED2_PIN, LOW); // ปิด LED2
Blynk.virtualWrite(V1, 0); // ส่งสถานะ LED1 ไปที่ Blynk
Blynk.virtualWrite(V2, 0); // ส่งสถานะ LED2 ไปที่ Blynk
}
// ส่งค่าทริมพ็อตไปยัง Blynk Virtual Pin V0
Blynk.virtualWrite(V0, trimpotValue);
}
////////////////////////////////////////////