Pantau Suhu dan Kelembapan Otomatis Pakai ESP8266 dan DHT22 Jadi Makin Gampang

Halo, Sobat Tech! Pernah nggak sih ngerasa gerah banget di kamar tapi nggak tahu suhu pastinya berapa? Atau mungkin Sobat punya koleksi tanaman indoor atau setup server yang suhunya harus dijaga biar nggak overheat, tapi mager kalau harus ngecek manual terus? Tenang, solusinya ada di artikel ini. Kita bakal rakit sistem monitoring suhu ESP8266 DHT22 yang cerdas dan otomatis.

Dengan mengandalkan Wemos D1 Mini (si mungil bertenaga ESP8266) dan sensor DHT22 yang dikenal punya akurasi tinggi, kita bakal bikin alat yang bisa ngasih peringatan real-time. Nggak cuma canggih, proyek ini juga aesthetic karena kita pakai layar OLED untuk nampilin datanya. Yuk, simak tutorialnya sampai habis!

Alat dan Bahan

Sebelum kita mulai “ngoprek”, siapkan dulu amunisi tempurnya. Komponen yang kita pakai ini sangat terjangkau tapi punya performa yang jempolan untuk skala hobi maupun purwarupa.

KomponenJumlahKeterangan
Wemos D1 Mini (ESP8266)1 unitMikrokontroler utama dengan modul Wi-Fi terintegrasi.
Sensor DHT221 unitSensor suhu dan kelembapan dengan elemen sensing polymer capacitor.
LCD OLED 1,3 Inch1 unitLayar display resolusi 128×64 untuk visualisasi data (Driver SH1106).
LED (Merah, Kuning, Hijau)@1 unitIndikator status visual (Normal, Warning, Bahaya).
Buzzer1 unitAlarm peringatan suara saat kondisi suhu kritis.
Resistor 220 Ohm3 unitPelindung arus agar LED tidak cepat putus.
Kabel Jumper & BreadboardSecukupnyaMedia penghubung antar komponen tanpa perlu menyolder.

Skematik Rangkaian

Menghubungkan komponen ini sebenarnya cukup simpel, Sobat. Keunggulan sensor DHT22 dibanding DHT11 adalah tingkat akurasinya yang lebih presisi dan rentang pembacaan yang lebih luas. Berikut detail koneksinya:

  1. Sensor DHT22: Hubungkan Pin Data ke Pin D4 pada Wemos D1 Mini.
  2. Layar OLED 1,3 Inch: Layar ini menggunakan protokol komunikasi I2C yang sangat praktis karena hanya butuh dua kabel data. Hubungkan SDA ke Pin D2 dan SCL ke Pin D1. Penggunaan I2C ini bikin kita hemat pin mikrokontroler, jadi bisa dipakai untuk komponen lain.
  3. Indikator LED: Hubungkan kaki anoda (kaki panjang) LED Hijau ke D5, LED Kuning ke D6, dan LED Merah ke D7. Ingat, selalu pasang resistor 220 Ohm pada setiap jalur LED untuk membatasi arus.
  4. Alarm Buzzer: Hubungkan Buzzer ke Pin D0. Berbeda dengan LED, Buzzer ini bisa langsung dihubungkan tanpa perlu tambahan resistor lagi.

Logika deteksi otomatis ini mirip dengan sistem tutorial palang pintu otomatis Arduino yang juga menggunakan sensor untuk memicu output tertentu secara otomatis.

Cara Kerja Sistem Monitoring

Sistem ini dirancang untuk bekerja secara mandiri. Begitu alat menyala, Wemos akan terus-menerus mengambil data dari sensor DHT22 dan mengategorikan kondisi ruangan berdasarkan suhu yang terbaca:

  • Kondisi Normal (Suhu ≤ 35°C): Ruangan dalam kondisi ideal. LED Hijau menyala, memberikan rasa tenang buat Sobat.
  • Kondisi Warning (Suhu > 35°C dan < 40°C): Ruangan mulai panas. LED Kuning menyala sebagai pengingat agar Sobat mulai waspada atau menyalakan pendingin ruangan.
  • Kondisi Bahaya (Suhu ≥ 40°C): Kondisi kritis! LED Merah akan menyala dan Buzzer akan berbunyi nyaring sebagai alarm agar Sobat segera melakukan tindakan darurat.

Seluruh data suhu, kelembapan, dan status tersebut bakal di-update ke layar OLED setiap 2 detik secara real-time.

Pemrograman Wemos D1 Mini

Sekarang masuk ke bagian “otak” sistem. Masukkan kode berikut ke Arduino IDE Sobat. Pastikan Sobat sudah menginstal library Adafruit_SH110X (pastikan memilih driver SH1106 di Library Manager) dan library DHT.

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SH110X.h>
#include <DHT.h>

// Inisialisasi OLED SH1106
Adafruit_SH1106G display = Adafruit_SH1106G(128, 64, &Wire);

// Konfigurasi DHT22
#define DHTPIN D4
#define DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);

// PIN OUTPUT
#define LED_HIJAU D5
#define LED_KUNING D6
#define LED_MERAH D7
#define BUZZER D0

void setup() {
  Serial.begin(115200);
  dht.begin();
  
  pinMode(LED_HIJAU, OUTPUT);
  pinMode(LED_KUNING, OUTPUT);
  pinMode(LED_MERAH, OUTPUT);
  pinMode(BUZZER, OUTPUT);

  // Inisialisasi OLED
  display.begin(0x3C, true);
  display.clearDisplay();
  display.setTextColor(SH110X_WHITE);
  display.setTextSize(2);
  display.setCursor(30, 20);
  display.println("START");
  display.display();
  delay(2000); // Splash screen selama 2 detik
}

void loop() {
  float suhu = dht.readTemperature();
  float hum = dht.readHumidity();

  if (isnan(suhu) || isnan(hum)) {
    Serial.println("Sensor error");
    suhu = 0;
    hum = 0;
  }

  // Reset semua output ke LOW
  digitalWrite(LED_HIJAU, LOW);
  digitalWrite(LED_KUNING, LOW);
  digitalWrite(LED_MERAH, LOW);
  digitalWrite(BUZZER, LOW);
  String status = "NORMAL";

  // Logika Penentuan Status
  if (suhu <= 35) {
    digitalWrite(LED_HIJAU, HIGH);
    status = "NORMAL";
  }
  else if (suhu > 35 && suhu < 40) {
    digitalWrite(LED_KUNING, HIGH);
    status = "WARNING";
  }
  else if (suhu >= 40) {
    digitalWrite(LED_MERAH, HIGH);
    digitalWrite(BUZZER, HIGH);
    status = "BAHAYA";
  }

  // Tampilan OLED
  display.clearDisplay();
  display.setTextSize(1);
  display.setCursor(20, 0);
  display.println("SYSTEM MONITOR");
  display.setCursor(0, 15);
  display.print("Suhu : ");
  display.print(suhu, 1);
  display.println(" C");
  display.setCursor(0, 28);
  display.print("Hum : ");
  display.print(hum, 1);
  display.println(" %");
  display.setCursor(0, 45);
  display.print("Status: ");
  display.println(status);
  display.display();

  delay(2000);
}

Dalam kode ini, kita menggunakan logika if-else untuk mengeksekusi kondisi status berdasarkan pembacaan variabel suhu. Buat Sobat yang ingin eksplorasi lebih jauh soal visualisasi display, bisa cek referensi menampilkan karakter di OLED biar tampilan proyekmu makin kece.

Pengujian dan Hasil

Setelah sukses upload kodenya, layar OLED bakal nampilin teks “START” selama 2 detik. Ini adalah fase inisialisasi untuk memastikan display Sobat berfungsi dengan baik sebelum masuk ke menu utama. Setelah itu, data suhu dan kelembapan akan muncul di layar.

Coba deh Sobat tiup sensornya atau dekatkan ke secangkir kopi panas. Begitu suhu melewati ambang batas 35°C, LED Hijau bakal mati dan LED Kuning akan otomatis menyala (Status: WARNING). Jika suhu makin ekstrem sampai menyentuh angka 40°C, bersiaplah karena LED Merah akan menyala dibarengi suara “beeping” dari Buzzer yang menandakan status BAHAYA. Respon sistem ini sangat instan dan akurat!

Kesimpulan dan Tips

Proyek monitoring suhu ESP8266 DHT22 ini ngebuktiin kalau bikin sistem keamanan lingkungan nggak harus mahal dan ribet. Sistem otomatis ini jauh lebih bisa diandalkan daripada kita ngecek manual setiap saat.

Tips Buat Sobat:

  • Up ke IoT: Karena pakai Wemos D1 Mini, Sobat bisa banget kembangin proyek ini agar datanya bisa dipantau lewat smartphone via aplikasi Blynk atau Telegram Bot.
  • Data Logging: Tambahkan modul MicroSD agar riwayat suhu setiap jam bisa tersimpan untuk analisis kelembapan ruangan.
  • Akurasi: Selalu pastikan sensor DHT22 tidak tertutup debu agar pembacaannya tetap presisi.

Yuk, langsung aja eksekusi proyek ini di rumah! Kalau ada kendala, jangan ragu buat terus bereksperimen. Selamat berkarya, Sobat Tech!

Related Post

Leave a Reply

Your email address will not be published. Required fields are marked *

Mau Cetak PCB Custom? Cek Biaya