Menampilkan Data dari Sensor DHT11 pada Layar OLED dan ESP32

3 min read 22-08-2024
Menampilkan Data dari Sensor DHT11 pada Layar OLED dan ESP32

Pendahuluan

Dalam dunia IoT (Internet of Things), mengintegrasikan sensor dengan microcontroller dan menampilkan data secara visual merupakan salah satu aspek yang sangat penting. Salah satu kombinasi yang populer adalah penggunaan sensor DHT11, sebuah sensor untuk pengukuran suhu dan kelembaban, dengan ESP32, sebuah microcontroller yang memiliki kemampuan Wi-Fi dan Bluetooth. Di artikel ini, kita akan mengupas langkah-langkah untuk menampilkan data dari sensor DHT11 pada layar OLED menggunakan ESP32.

Alat dan Bahan

Sebelum kita mulai, berikut adalah alat dan bahan yang perlu disiapkan:

  1. ESP32 - Microcontroller dengan kemampuan Wi-Fi dan Bluetooth.
  2. Sensor DHT11 - Sensor untuk mengukur suhu dan kelembaban.
  3. Layar OLED - Layar yang akan digunakan untuk menampilkan data, misalnya layar OLED 0.96 inci menggunakan driver I2C.
  4. Breadboard dan Jumper Wire - Untuk menghubungkan semua komponen.
  5. Software Arduino IDE - Untuk memprogram ESP32.

Skematik Koneksi

Untuk menghubungkan komponen, berikut adalah skema dasar yang perlu diikuti:

  • DHT11:

    • VCC -> 3.3V pada ESP32
    • GND -> GND pada ESP32
    • DATA -> Pin GPIO (contoh GPIO 15) pada ESP32
  • Layar OLED (I2C):

    • VCC -> 3.3V pada ESP32
    • GND -> GND pada ESP32
    • SDA -> Pin GPIO 21 pada ESP32
    • SCL -> Pin GPIO 22 pada ESP32

Dengan skema di atas, Anda dapat memulai menghubungkan semua komponen di breadboard.

Instalasi Library

Sebelum memprogram ESP32, kita perlu menginstal beberapa library yang diperlukan di Arduino IDE:

  1. DHT sensor library - Untuk mengakses data dari sensor DHT11.
  2. Adafruit GFX library - Untuk kontrol grafis di layar OLED.
  3. Adafruit SSD1306 library - Untuk mengontrol layar OLED.

Untuk menginstalnya, buka Arduino IDE, masuk ke Sketch > Include Library > Manage Libraries. Cari dan instal library di atas.

Kode Program

Berikut adalah kode yang dapat digunakan untuk membaca data dari sensor DHT11 dan menampilkannya di layar OLED:

#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <DHT.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define DHTPIN 15 // Pin yang terhubung ke DHT11
#define DHTTYPE DHT11

// Inisialisasi OLED
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  // Inisialisasi serial
  Serial.begin(115200);

  // Inisialisasi layar OLED
  display.begin(SSD1306_I2C_ADDRESS, OLED_RESET);
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(WHITE);

  // Inisialisasi sensor DHT11
  dht.begin();
}

void loop() {
  // Membaca data suhu dan kelembaban
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  // Mengecek apakah pembacaan berhasil
  if (isnan(h) || isnan(t)) {
    Serial.println("Gagal membaca dari DHT11!");
    return;
  }

  // Menampilkan hasil pada serial monitor
  Serial.print("Suhu: ");
  Serial.print(t);
  Serial.print(" °C, Kelembaban: ");
  Serial.print(h);
  Serial.println(" %");

  // Mengupdate layar OLED
  display.clearDisplay();
  display.setCursor(0, 0);
  display.print("Suhu: ");
  display.print(t);
  display.print(" C");

  display.setCursor(0, 10);
  display.print("Kelembaban: ");
  display.print(h);
  display.print(" %");

  display.display();

  delay(2000); // Delay untuk pembacaan selanjutnya
}

Penjelasan Kode

  1. Inisialisasi: Kode dimulai dengan mengimpor library yang dibutuhkan dan mendefinisikan pin yang terhubung ke DHT11.
  2. Setup: Di bagian setup, kita menginisialisasi komunikasi serial, layar OLED, dan sensor DHT11.
  3. Loop: Pada bagian loop, kita mengambil data suhu dan kelembaban dari sensor. Jika pembacaan berhasil, maka data akan ditampilkan baik pada serial monitor maupun di layar OLED.
  4. Delay: Kita memberikan delay 2 detik sebelum membaca data lagi untuk menghindari pembacaan yang terlalu cepat.

Meng-upload dan Menguji Program

Setelah menulis kode, pastikan untuk memilih board yang tepat di Arduino IDE (ESP32), dan upload program tersebut. Setelah upload selesai, Anda akan melihat hasil pembacaan suhu dan kelembaban tertera di layar OLED. Semoga semua terhubung dengan baik!

Kesimpulan

Dengan mengikuti langkah-langkah di atas, Anda sudah berhasil membuat proyek sederhana yang menampilkan data dari sensor DHT11 ke layar OLED menggunakan ESP32. Proyek ini adalah fondasi yang baik untuk belajar lebih banyak tentang IoT. Anda dapat mengembangkan proyek ini lebih lanjut dengan menambahkan sensor lain, atau mengupload data ke cloud untuk analisis lebih mendalam.

Selamat mencoba!