#define BLYNK_TEMPLATE_ID "TMPL6nWzLMjZp"
#define BLYNK_TEMPLATE_NAME "dht x led"
#define BLYNK_AUTH_TOKEN "Akk-BMcuVjZHxtj8hQ4DesUU99KpkQhk"
#define BLYNK_FIRMWARE_VERSION "0.1.0"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <DHTesp.h> //Library untuk DHT
char auth[] = "Akk-BMcuVjZHxtj8hQ4DesUU99KpkQhk" ; //Auth Token
char ssid[] = "Wokwi-GUEST"; //nama hotspot yang digunakan
char pass[] = ""; //password hotspot yang digunakan
#define LED_TOO_COLD 12
#define LED_PERFECT 14
#define LED_TOO_HOT 26
#include "BlynkEdgent.h"
#include <DHT.h>
#define APP_DEBUG
int speakerPin = 25;
int length = 1;
// Uncomment your board, or configure a custom board in Settings.h
//#define USE_WROVER_BOARD
#define DHTPIN 15 // What digital pin we're connected to
#define DHTTYPE DHT22 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
//BlynkTimer timer;
void sendSensor()
{
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Blynk.virtualWrite(V1, t);
Blynk.virtualWrite(V2, h);
}
void setup()
{
Serial.begin(115200);
Serial.println("DHT22 test!");
// delay(100);
//
Serial.begin(115200);
dht.begin();
timer.setInterval(1000L, sendSensor);
// Setup a function to be called every second
timer.setInterval(2000L, sendSensor);
BlynkEdgent.begin();
}
void loop() {
pinMode (speakerPin, OUTPUT);
pinMode (12 , OUTPUT);
pinMode (14 , OUTPUT);
pinMode (26 , OUTPUT);
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
float f = dht.readTemperature(true);
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C ");
if (t <= 20) {
Serial.println("Suhu terlalu dingin");
digitalWrite(21, HIGH);
digitalWrite(speakerPin, HIGH);
delay (1000);
digitalWrite(speakerPin, LOW);
digitalWrite(21, LOW);
}
if (20 < t < 27) {
Serial.println("Suhu normal!");
digitalWrite(19, HIGH);
delay (2000);
digitalWrite(19, LOW);
}
if (t >= 35) {
Serial.println("Suhu terlalu panas!");
digitalWrite(22, HIGH);
digitalWrite(speakerPin, HIGH);
delay (1000);
digitalWrite(speakerPin, LOW);
digitalWrite(22, LOW);
}
BlynkEdgent.run();
timer.run();
}