#define BLYNK_TEMPLATE_ID "TMPL6U6BOckc-"
#define BLYNK_TEMPLATE_NAME "IoT Monitoring System"
#define BLYNK_AUTH_TOKEN "qBMSUb6sct9fhBnguITYRJXZZkHVEg3k"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
char auth[] = BLYNK_AUTH_TOKEN; //auth token
char ssid[] = "Wokwi-GUEST"; // nama hotspot yang digunakan
char pass[] = ""; // password hotspot nya
BlynkTimer timer;
DHT dht(4, DHT22);
int buzzerPin = 13;
int switchBuzz = 0;
void myTone(int pin){
ledcAttachPin(pin, 0); //pin, channel
ledcWriteNote(0, NOTE_F, 4); //channel, frequency, octave
}
void myNoTone(int pin){
ledcDetachPin(pin);
}
BLYNK_WRITE(V6){ //button widget is writing to pin V5
int pinData = param.asInt();
Serial.println(pinData);
if(pinData==1){
switchBuzz = 1;
}
else{
switchBuzz = 0;
}
}
void sendSensor(){
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
if(temperature >= 40 || humidity <= 20){
if (switchBuzz=0){
delay(1000);
myTone(buzzerPin);
}
else{
delay(1000);
myNoTone(buzzerPin);
}
}
else{
delay(1000);
myNoTone(buzzerPin);
}
Blynk.virtualWrite(V4, temperature);
Blynk.virtualWrite(V5, humidity);
Serial.print("Temperature : ");
Serial.println(temperature);
Serial.print("Humidity : ");
Serial.println(humidity);
Serial.println();
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
pinMode(buzzerPin, OUTPUT);
dht.begin();
Blynk.begin(auth, ssid, pass);
timer.setInterval(2500L, sendSensor);
}
void loop() {
// put your main code here, to run repeatedly:
delay(1000); // this speeds up the simulation
sendSensor();
Blynk.run();
timer.run();
}