Untuk mendeteksi suhu menggunakan ESP32 dengan sensor DHT (DHT11/DHT22) dan mengontrol kipas angin berdasarkan suhu, Anda dapat mengikuti langkah berikut:
- ESP32.
- Sensor DHT (DHT11/DHT22).
- Kipas angin (DC fan) 12v.
- Modul relay
- Kabel Jumper
- Power Suplay 12v
Diagram Rangkaian :
DHT Sensor:
- Pin VCC → 3.3V atau 5V di ESP32.
- Pin GND → GND di ESP32.
- Pin DATA → D8 ESP32.
- Resistor pull-up 10kΩ antara pin DATA dan VCC.
Modul Relay (untuk kipas angin):
- VCC → 5V dari Modul StepDown.
- GND → GND dari ESP32.
- IN → D6 ESP32.
Sambungkan kipas ke relay seperti berikut:
Salah satu kabel kipas ke NO (Normally Open).
Kabel kipas lainnya ke C (Common).
bisa dilihat pada gambar diaatas
Program :
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
// Konfigurasi sensor DHT
#define DHTPIN 8       // Pin data DHT
#define DHTTYPE DHT22  // Ubah ke DHT11 jika menggunakan DHT11
DHT dht(DHTPIN, DHTTYPE);
// Pin relay untuk kipas
#define RELAYPIN 6
// Ambang suhu untuk kipas
#define TEMPERATURE_THRESHOLD 30.0 // Suhu dalam °C
void setup() {
  Serial.begin(115200);
  Serial.println(F("DHT with Fan Control"));
  // Memulai DHT
  dht.begin();
  // Mengatur pin relay sebagai output
  pinMode(RELAYPIN, OUTPUT);
  digitalWrite(RELAYPIN, LOW); // Kipas mati saat awal
}
void loop() {
  // Tunggu 2 detik antar pembacaan
  delay(2000);
  // Membaca suhu dan kelembapan
  float temperature = dht.readTemperature();
  float humidity = dht.readHumidity();
  // Periksa apakah pembacaan berhasil
  if (isnan(temperature) || isnan(humidity)) {
    Serial.println(F("Failed to read from DHT sensor!"));
    return;
  }
  // Menampilkan hasil ke Serial Monitor
  Serial.print(F("Temperature: "));
  Serial.print(temperature);
  Serial.print(F("°C  Humidity: "));
  Serial.print(humidity);
  Serial.println(F("%"));
  // Mengontrol kipas berdasarkan suhu
  if (temperature > TEMPERATURE_THRESHOLD) {
    digitalWrite(RELAYPIN, HIGH); // Nyalakan kipas
    Serial.println(F("Fan ON"));
  } else {
    digitalWrite(RELAYPIN, LOW); // Matikan kipas
    Serial.println(F("Fan OFF"));
  }
}
   