// https://sgp1.blynk.cloud/dashboard/450351/settings/organization-settings
#define BLYNK_PRINT Serial
/*
#define BLYNK_TEMPLATE_ID "TMPLPmOtjTT5"
#define BLYNK_DEVICE_NAME "#LAMPU"
#define BLYNK_AUTH_TOKEN "nARY0FEkmAHDMTrIS2YC7mW9kps4zVpP"
*/
#define BLYNK_TEMPLATE_ID "TMPL64pzfqp7r"
#define BLYNK_TEMPLATE_NAME "Quickstart Template"
#define BLYNK_AUTH_TOKEN "EvLtx-Q-8gvsrUvBVxWKydKQb2F_AqC0"
#include "DHT.h"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
#define DHTPIN 21 // Digital pin connected to the DHT sensor
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
#define LED1 13 // Merah
#define LED2 12 // Kuning
#define LED3 14 // Hijau
int SW_State_M = 0;
int SW_State_K = 0;
int SW_State_H = 0;
unsigned long currentTime; // elapsed time
DHT dht(DHTPIN, DHTTYPE); // Initialize DHT sensor.
BLYNK_WRITE (V0)
{
SW_State_M = param.asInt();
Serial.println(SW_State_M);
if (SW_State_M == 1)
{
digitalWrite(LED1, HIGH);
Serial.println("RED ON");
Blynk.virtualWrite(V1, 1);
}else if(SW_State_M == 2){
digitalWrite(LED2, HIGH);
Serial.println("YELLOW ON");
Blynk.virtualWrite(V1, 2);
}else if(SW_State_M == 3){
digitalWrite(LED3, HIGH);
Serial.println("GREEN ON");
Blynk.virtualWrite(V1, 3);
}
else
{
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
Serial.println("ALL LED OFF");
Blynk.virtualWrite(V1, 0);
Blynk.virtualWrite(V1, 0);
Blynk.virtualWrite(V1, 0);
}
}
void readSensorDHT(float&, float& , float&);
void setup()
{
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
dht.begin();
currentTime = millis();
}
void loop()
{
Blynk.run();
timer.run();
if (millis()-currentTime > 1000 ){ // Read the value of the temperature sensor once per second and set the state.
float h, t, f;
readSensorDHT(h, t, f);
currentTime = millis();
Blynk.virtualWrite(V4, t);
Blynk.virtualWrite(V2, currentTime);
}
}
void readSensorDHT(float& humidity, float& temperatureCelsius, float& temperatureFahrenheit) {
humidity = dht.readHumidity(); // Read humidity from sensor
temperatureCelsius = dht.readTemperature(); // Read temperature from sensor
temperatureFahrenheit = dht.readTemperature(true); // Switch temperature unit to Fahrenheit
if (isnan(humidity) || isnan(temperatureCelsius) || isnan(temperatureFahrenheit)) { // Check if any reads failed and exit early (to try again).
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
}