Alat Kontrol Suhu Ruangan dengan Esp32

10:42 AM

 Untuk mendeteksi suhu menggunakan ESP32 dengan sensor DHT (DHT11/DHT22) dan mengontrol kipas angin berdasarkan suhu, Anda dapat mengikuti langkah berikut:


deteksi suhu ruangan dengan esp32
Alat yang di butuhkan :

  • 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"));
  }
}

Next Article
« Prev Post
Previous Article
Next Post »
Disqus
Tambahkan komentar Anda

No comments