#define BLYNK_TEMPLATE_ID "TMPL68BDIrnTi"
#define BLYNK_TEMPLATE_NAME "tugas iot"
#define BLYNK_AUTH_TOKEN "alZOSFwhRB1X9QqM23C8v8AHbXaBJP61"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
#define DHT_PIN 18 // Pin data sensor DHT22 terhubung ke pin 18
#define DHT_TYPE DHT22 // Gunakan DHT22, bisa diganti menjadi DHT11 atau DHT21 jika Anda menggunakan sensor tersebut
#define TRIGGER_PIN 26 // Pin trigger sensor ultrasonik terhubung ke pin 26
#define ECHO_PIN 25 // Pin echo sensor ultrasonik terhubung ke pin 25
DHT dht(DHT_PIN, DHT_TYPE);
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
int ledPin = 5; // Pin lampu LED terhubung ke pin D5
int buttonPin = 4; // Pin push button terhubung ke pin D4
int ledState = LOW; // Status awal lampu LED
BlynkTimer timer;
void setup() {
Serial.begin(115200);
delay(100);
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
pinMode(TRIGGER_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP); // Pull-up internal untuk push button fisik
digitalWrite(ledPin, ledState);
dht.begin();
timer.setInterval(100L, checkButtonState);
}
void loop() {
Blynk.run();
timer.run();
}
void checkButtonState() {
int buttonState = digitalRead(buttonPin); // Baca status tombol fisik
// Jika tombol ditekan (logika negatif karena pull-up internal)
if (buttonState == LOW) {
// Ubah status lampu LED
ledState = !ledState;
// Kirim status lampu LED ke Blynk
Blynk.virtualWrite(V0, ledState);
// Ubah status lampu LED
digitalWrite(ledPin, ledState);
}
// Membaca data dari sensor DHT22
float temperature = dht.readTemperature(); // Membaca suhu dalam derajat Celsius
// Mengirim data suhu ke Blynk
if (!isnan(temperature)) {
Blynk.virtualWrite(V2, temperature); // Mengirim data suhu ke pin V2 di Blynk
// Konversi suhu ke Fahrenheit dan Kelvin
float fahrenheit = temperature * 1.8 + 32;
float kelvin = temperature + 273.15;
// Mengirim data suhu yang dikonversi ke Blynk
Blynk.virtualWrite(V3, fahrenheit); // Mengirim data suhu dalam Fahrenheit ke pin V3 di Blynk
Blynk.virtualWrite(V4, kelvin); // Mengirim data suhu dalam Kelvin ke pin V4 di Blynk
}
}