Detail :
MCU : ESP 32
Wired
DHT 22:
VCC : 3.3 V
Data : GPIO 4 / D4
GND : Gnd
Relay 2 Channel :
VCC : 5 V
IN1 : GPIO 12 / D12
IN2 : GPIO 13 / D13
GND : Gnd
Problem : DHT 22 didnt send any data to Blynk, but Blynk is Online.
#define BLYNK_PRINT Serial
#define BLYNK_AUTH_TOKEN "------------------------------------"
#define WIFI_SSID "-----------------------------" //Enter Wifi Name
#define WIFI_PASS "-------------------------t" //Enter wifi Password
#include <BlynkSimpleEsp32.h>
#include <WiFi.h>
#include <WiFiClient.h>
#include <DHT.h>
int relay1 = 12;
int relay2 = 13;
DHT dht(4, DHT22);
float h = dht.readHumidity();
float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit
BlynkTimer timer;
char ssid[] = "-------------------";// Your WiFi credentials.
char pass[] = "------------------";// Set password to "" for open networks.
void sendSensor()
{
if (isnan(h) || isnan(t)) {
Blynk.virtualWrite(V9, "Failed to read from DHT sensor!");
return;
}
// You can send any value at any time.
// Please don't send more that 10 values per second.
Blynk.virtualWrite(V5, h);
Blynk.virtualWrite(V6, t);
}
void relayonoff ()
{
if (t >= 27.5 && t <= 29.5) {
digitalWrite(relay1, LOW);
digitalWrite(relay2, LOW);
}
else if (t <= 25 && t >= 27) { // Lampu Menyala
digitalWrite(relay1, LOW);
digitalWrite(relay2, HIGH);
}
else if (t >= 30 && t <= 32) { // Pompa Air Menyala
digitalWrite(relay1, HIGH);
digitalWrite(relay2, LOW);
}
}
void display()
{
if (relay1 == HIGH) {
Blynk.virtualWrite(V9, "Pompa Air Menyala"); //Water Pump On
}
else if (relay2 == LOW) {
Blynk.virtualWrite(V9, "Lampu Halogen Menyala"); //Halogen Lamp On
}
}
void setup()
{
// Debug console
Serial.begin(115200);
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
dht.begin();
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
digitalWrite(relay1, LOW);
digitalWrite(relay2, LOW);
// Setup a function to be called every second
timer.setInterval(1000L, sendSensor);
timer.setInterval(500L, relayonoff);
timer.setInterval(500L, display);
}
void loop()
{
timer.run();
Blynk.run();
}
Thanks For Your Time