top of page

Monitoring Suhu dan Kelembapan Pake DHT11 Pake Blynk via Wifi + Display LCD I2C dan Indikator LED di Wemos D1 Mini

Updated: Jun 7

Halo teman-teman, selamat datang di website Cosmo. di artikel ini kita akan belajar monitoring suhu dan kelembapan pakai DHT11 dengan Blynk via wifi lengkap dengan display LCD I2C dan indikator LED menggunakan wemos D1 Mini. untuk tutorial lengkapnya bisa di lihat pada video berikut.

 

Tutorial Video



Rangkaian

wiring

 

Penjelasan rangkaian

5V --> VCC DHT11 & LCD

D3 --> Out/Data DHT11

GND --> Anoda DHT11, LED merah & LED biru

D6 --> resistor 470 Ohm --> Katoda LED merah

D5 --> resistor 470 Ohm --> Katoda LED biru

D1 --> SCL LCD

D2 --> SDA LCD

 

Kode program


//ganti 3 baris kode di bawah ini dengan punya kalian masing-masing
#define BLYNK_TEMPLATE_ID "..."
#define BLYNK_TEMPLATE_NAME "..."
#define BLYNK_AUTH_TOKEN "..."

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


const char* ssid = "ssid wifimu";
const char* pass = "password wifimu";

#define DHTPIN D3
#define DHTTYPE DHT11

#define LED_MERAH D6
#define LED_BIRU D5
#define LED_ERROR D7  // LED indikator untuk error sensor

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

void sendSensorData() {
  float temperature = dht.readTemperature();
  float humidity = dht.readHumidity();

  if (!isnan(temperature) && !isnan(humidity)) {
    Serial.print("Suhu: ");
    Serial.print(temperature, 1);
    Serial.print(" °C, Kelembaban: ");
    Serial.print(humidity);
    Serial.println(" %");

    Blynk.virtualWrite(V0, temperature);
    Blynk.virtualWrite(V1, humidity);

    lcd.clear();
    lcd.setCursor(0, 0);
    char suhuStr[6];
    dtostrf(temperature, 4, 1, suhuStr);  // Format suhu dengan 1 angka desimal

    lcd.print("S:");
    lcd.print(suhuStr);
    lcd.print((char)223);
    lcd.print("C");
    lcd.setCursor(9, 0);
    lcd.print("K:");
    lcd.print(humidity, 1);
    lcd.print("%");

    if (temperature > 30 || humidity > 90) {
      digitalWrite(LED_MERAH, HIGH);
      digitalWrite(LED_BIRU, LOW);
      Serial.println("Status: Panas");
      lcd.setCursor(5, 1);
      lcd.print("Panas");
    } else if (temperature < 20) {
      digitalWrite(LED_BIRU, HIGH);
      digitalWrite(LED_MERAH, LOW);
      Serial.println("Status: Dingin");
      lcd.setCursor(5, 1);
      lcd.print("Dingin");
    } else {
      digitalWrite(LED_MERAH, LOW);
      digitalWrite(LED_BIRU, LOW);
      Serial.println("Status: Normal");
      lcd.setCursor(5, 1);
      lcd.print("Normal");
    }

    digitalWrite(LED_ERROR, LOW);  // LED indikator error mati jika sensor terbaca dengan baik

  } else {
    Serial.println("Gagal membaca data dari DHT11!");

    // LED error berkedip sebagai indikasi sensor bermasalah
    for (int i = 0; i < 3; i++) {
      digitalWrite(LED_ERROR, HIGH);
      delay(200);
      digitalWrite(LED_ERROR, LOW);
      delay(200);
    }
  }
}

void setup() {
  Serial.begin(9600);

  // Pastikan koneksi Wi-Fi tersedia
  WiFi.begin(ssid, pass);
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }
  Serial.println("Terhubung ke WiFi!");

  Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
  dht.begin();
  lcd.begin();
  lcd.backlight();


  lcd.clear();
  lcd.setCursor(4, 0);
  lcd.print("Cosmo IoT");
  lcd.setCursor(0, 1);
  lcd.print("DHT11 Monitoring");
  delay(3000);

  pinMode(LED_MERAH, OUTPUT);
  pinMode(LED_BIRU, OUTPUT);
  pinMode(LED_ERROR, OUTPUT);

  timer.setInterval(5000L, sendSensorData);
}

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

Penjelasan Kode

Kode ini merupakan program berbasis ESP8266 untuk membaca suhu dan kelembapan menggunakan sensor DHT11, menampilkan data di LCD 16x2, dan mengirimkannya ke platform Blynk. Program ini menghubungkan perangkat ke Wi-Fi, lalu membaca data dari sensor setiap lima detik dan menampilkan hasilnya di Serial Monitor, LCD, serta Blynk. Jika suhu lebih dari 30°C atau kelembapan lebih dari 90%, LED merah (D6) menyala, dan LCD menunjukkan status "Panas". Jika suhu kurang dari 20°C, LED biru (D5) menyala, dan status "Dingin" ditampilkan. Jika pembacaan sensor gagal, LED error (D7) berkedip sebagai indikasi masalah. Program ini juga menampilkan teks "Cosmo IoT" sebagai tampilan awal sebelum mulai membaca data. Sistem ini dirancang untuk monitoring suhu dan kelembapan dengan indikasi LED serta tampilan real-time di LCD dan Blynk.

 

Penutup

Itu saja teman-teman, semoga video, rangkaian dan kodenya membantu proses pengerjaan proyek kalian. Jangan lupa kunjungi channel Youtube IQ+ untuk tutorial-tutorial video IoT lainnya. Jika ada masukan dan saran, silakan sampaikan melalui form di bawah. Sampai jumpa!

 

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