#define BLYNK_TEMPLATE_ID "TMPL6Gv_62GV3"
#define BLYNK_TEMPLATE_NAME "DHT22"
#define BLYNK_AUTH_TOKEN "fiowRiv7KFGMg8DXY5WeRjjZt_9N8uyz"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Espesp"; // Nama hotspot yang digunakan
char pass[] = "espesp111"; // Password hotspot yang digunakan
#define RXD2 16
#define TXD2 17
#define LED 22
#define MOTOR 2
#define DHTPIN 15 // Pin digital tempat Anda menghubungkan sensor DHT
#define DHTTYPE DHT22 // Tipe sensor DHT (DHT11, DHT22, DHT21)
DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;
const int motorChannel = 0; // Channel PWM untuk motor
void setup() {
Serial.begin(9600);
Serial.println("Tes serial - AWAL");
Serial2.begin(9600, SERIAL_8N1, RXD2, TXD2);
Blynk.begin(auth, ssid, pass);
pinMode(LED, OUTPUT);
pinMode(MOTOR, OUTPUT);
dht.begin();
timer.setInterval(1000L, sendSensor);
ledcSetup(motorChannel, 5000, 8); // Setting PWM untuk motor
ledcAttachPin(MOTOR, motorChannel);
}
void loop() {
Blynk.run();
timer.run();
}
void sendSensor() {
float h = dht.readHumidity();
float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
Serial2.println("Failed to read from DHT sensor!");
return;
}
Blynk.virtualWrite(V1, h);
Blynk.virtualWrite(V0, t);
Serial.println("Temperature : " + String(t, 2) + "°C");
Serial2.println("Temperature : " + String(t, 2) + "°C");
Serial.println(" Humidity :" + String(h, 1) + "%");
Serial2.println(" Humidity :" + String(h, 1) + "%");
Serial.print("\n---\n");
Serial2.print("\n---\n");
if (t > 25) {
Blynk.virtualWrite(V2, HIGH);
digitalWrite(LED, LOW);
ledcWrite(motorChannel, 200); // Kecepatan penuh (200) jika suhu lebih dari 30°C
} else {
Blynk.virtualWrite(V2, LOW);
digitalWrite(LED, HIGH);
digitalWrite(MOTOR, LOW); // Matikan motor jika suhu kurang dari atau sama dengan 30°C
ledcWrite(motorChannel, 0); // Pastikan motor dimatikan
}
}