top of page

Kontrol FAN dengan DHT11 & Monitoring Blynk


Selamat datang di website Cosmo!

di artikel ini, kita akan belajar mengontrol FAN dengan DHT11 & Monitoring Blynk.


Skema Rangkaian



wiring

Penjelasan Rangkaian

  1. 5V  Kaki (+) DHT11, LCD & Relay

  2. GND  Kaki (-) DHT11, LCD & Relay

  3. D7  Data DHT11

  4. D3  Data Relay

  5. D2  SDA LCD

  6. D1  SCL LCD

  7. Adaptor (+)  COM Relay

  8. NO Relay  Kaki (+) FAN

  9. Adaptor (-)  Kaki (+) FAN


#define BLYNK_TEMPLATE_ID "TMPL6k65v6vID"
#define BLYNK_TEMPLATE_NAME "dht11"
#define BLYNK_AUTH_TOKEN "um1b_9D4HawO4wW8Eog7mKp9PqE3s49h"


#define BLYNK_PRINT Serial
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <DHT.h>


// Konfigurasi WiFi
char ssid[] = "YOUR WIFI SSID";   // Ganti dengan SSID WiFi kamu
char pass[] = "YOUR WIFI PASSWORD";     // Ganti dengan password WiFi kamu

// Pin Konfigurasi
#define DHTPIN D7
#define DHTTYPE DHT11
#define RELAY_PIN D3
#define SDA_PIN D2
#define SCL_PIN D1

// Threshold Suhu dan Kelembapan
#define TEMP_THRESHOLD 30
#define HUMIDITY_THRESHOLD 90

DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);
BlynkTimer timer;

bool fanState = false;

void sendSensorData() {
  float suhu = dht.readTemperature();
  float kelembapan = dht.readHumidity();

  // Validasi pembacaan sensor
  if (isnan(suhu) || isnan(kelembapan)) {
    Serial.println("Gagal membaca data dari DHT11!");
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Sensor Error!");
    return;
  }

  // Tentukan kategori suhu
  String kategoriSuhu = (suhu < 25) ? "Dingin" : (suhu >= TEMP_THRESHOLD) ? "Panas" : "Normal";

  // Kirim data ke Blynk
  Blynk.virtualWrite(V0, suhu);          // Kirim suhu
  Blynk.virtualWrite(V1, kelembapan);    // Kirim kelembapan
  Blynk.virtualWrite(V2, fanState);      // Kirim status kipas

  Serial.print("Suhu: ");
  Serial.print(suhu);
  Serial.print("°C, Kelembapan: ");
  Serial.print(kelembapan);
  Serial.print("%, Status: ");
  Serial.print(kategoriSuhu);
  Serial.print(", Kipas: ");
  Serial.println(fanState ? "Nyala" : "Mati");

  // Cek perubahan status kipas
  bool newFanState = (suhu >= TEMP_THRESHOLD || kelembapan > HUMIDITY_THRESHOLD);
  if (newFanState != fanState) {
    fanState = newFanState;
    Blynk.virtualWrite(V2, fanState); // Update status kipas
    digitalWrite(RELAY_PIN, fanState ? HIGH : LOW);
  }

  // Update LCD
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("S:" + String(suhu) + "C");
  lcd.setCursor(9, 0);
  lcd.print("K:" + String(kelembapan) + "%");

  lcd.setCursor(2, 1);
  lcd.print((fanState) ? "Panas poll!" : "Normal ges");
  lcd.backlight();
}

void setup() {
  Serial.begin(9600);
  Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
  dht.begin();
  lcd.begin();
  lcd.setCursor(0, 0);
  lcd.print("Connecting to");
  lcd.setCursor(0, 1);
  lcd.print("Blynk...");
  delay(2000);
  lcd.clear();
  lcd.backlight();
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, LOW);

  timer.setInterval(5000L, sendSensorData);  // Kirim data setiap 5 detik
}

void loop() {
  Blynk.run();
  timer.run();
}

Hasil

Kode ini adalah program pemantauan suhu dan kelembapan menggunakan sensor DHT11 yang dikendalikan oleh ESP8266 dan terhubung ke Blynk untuk pemantauan jarak jauh. Program membaca suhu dan kelembapan dari sensor, menampilkan data di layar LCD I2C, serta mengontrol kipas secara otomatis berdasarkan ambang batas suhu 30°C dan kelembapan 90%. Jika suhu atau kelembapan melebihi batas, kipas menyala; jika tidak, kipas mati. Data juga dikirim ke aplikasi Blynk agar pengguna dapat melihat pembaruan secara real-time. Kode ini menggunakan BlynkTimer untuk menjalankan fungsi sendSensorData() setiap 5 detik, memastikan sistem selalu mendapatkan data terbaru. Selain itu, layar LCD menampilkan pesan tentang kondisi suhu dan kelembapan, serta status kipas dengan teks interaktif seperti "Panas poll!" dan "Normal ges", memberikan pengalaman yang lebih informatif dan menarik bagi pengguna.


Video Tutorial

Untuk penjelasan lebih mendalam, tonton tutorial video berikut.


Penutup

Kalau ingin belajar lebih banyak tentang IoT, langsung kunjungi YouTube IQ+ dan temukan berbagai tutorial menarik lainnya.

 
 
 

Comments


Bantu tingkatkan
kualitas website ini!

Dengan memberi masukan dan/atau pertanyaan

Jika berkenan, silakan masukan e-mail Anda untuk kontak lebih lanjut

Pilihan
Masukan
Pertanyaan
Lainnya
bottom of page