#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL65FgFnLyj"
#define BLYNK_TEMPLATE_NAME "UTS WSN"
#define BLYNK_AUTH_TOKEN "NSLTW5IYGXpdFVAkJ3-AN3HGcCo8q-jt"
#include <BlynkSimpleEsp32.h>
BlynkTimer timer;
#include <Wire.h>
#include <WiFi.h>
#include <WiFiClient.h>
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASS ""
void setup(void) {
// Deklarasi untuk setting komunikasi serial pada baudrate 115200
Serial.begin(115200);
Serial.println("Program dimulai...");
Blynk.begin(BLYNK_AUTH_TOKEN, WIFI_SSID, WIFI_PASS);
timer.setInterval(1000L, sendData);
}
void loop(void) {
Blynk.run();
timer.run();
int pinRead0 = analogRead(34); // Menggunakan pin analog GPIO 34 pada ESP32
double pVolt0 = (pinRead0 / 1024.0) * 5.0; // Konversi nilai ADC yang dibaca ke Volt (ESP32 menggunakan 3.3V sebagai referensi)
double persenCahaya = (pinRead0 / 1023.0) * 100; // Konversi nilai ADC ke persen
Serial.print("Nilai ADC: ");
Serial.print(pinRead0); // Menulis nilai ADC yang dibaca
Serial.print(" -> Tegangan: ");
Serial.print(pVolt0); // Menulis nilai konversi Volt melalui komunikasi serial
Serial.print(" V -> Intensitas Cahaya: ");
Serial.print(persenCahaya); // Menulis nilai persen intensitas cahaya
Serial.println(" ");
delay(2000); // Menunggu selama 2000 mili detik (2 detik)
}
void sendData() {
int pinRead0 = analogRead(34); // Menggunakan pin analog GPIO 34 pada ESP32
double pVolt0 = (pinRead0 / 1024.0) * 5.0; // Konversi nilai ADC yang dibaca ke Volt (ESP32 menggunakan 3.3V sebagai referensi)
double persenCahaya = (pinRead0 / 1023.0) * 100;
Blynk.virtualWrite(V0, pinRead0); // Mengirim nilai ADC real value ke Virtual Pin V0
Blynk.virtualWrite(V1, pVolt0); // Mengirim hasil konversi ke Volt ke Virtual Pin V1
Blynk.virtualWrite(V2, persenCahaya); // Mengirim nilai persen intensitas cahaya ke Virtual Pin V2
}