Pada tutorial Arduino DHT11 LCD kali ini, kita akan membuat termometer digital sederhana menggunakan Arduino UNO, sensor DHT11, dan LCD 16×2. Proyek ini cocok untuk pemula yang ingin belajar membaca suhu dan kelembaban dengan Arduino, lalu menampilkannya langsung pada layar LCD sebagai media praktikum IPA atau fisika.
Sebelumnya, kita sudah membahas cara menggunakan sensor DHT11 untuk membuat alat ukur suhu dan kelembaban serta cara menampilkan tulisan di LCD menggunakan Arduino UNO. Nah, pada artikel ini kita akan menggabungkan keduanya menjadi satu alat sederhana: alat ukur suhu dan kelembaban ruangan berbasis Arduino.
Apa yang Akan Dibuat?
Kita akan membuat alat yang dapat membaca suhu dan kelembaban dari sensor DHT11, lalu menampilkannya langsung pada layar LCD 16×2. Hasil akhirnya kira-kira seperti ini:
Suhu : 29.0 C Lembab: 74.0 %
Dengan proyek ini, siswa atau pembaca dapat melihat secara langsung bagaimana data dari lingkungan sekitar dibaca oleh sensor, diproses oleh Arduino, lalu ditampilkan dalam bentuk angka.
Alat dan Bahan
- Arduino UNO
- Sensor suhu dan kelembaban DHT11
- LCD 16×2
- Modul I2C LCD, sangat disarankan agar kabel lebih sederhana
- Kabel jumper secukupnya
- Breadboard
- Kabel USB Arduino
Pada tutorial ini saya menggunakan LCD 16×2 dengan modul I2C. Jika Anda menggunakan LCD tanpa I2C, rangkaiannya akan lebih banyak kabel dan kode programnya juga sedikit berbeda.
Mengenal Sensor DHT11
DHT11 adalah sensor sederhana yang dapat membaca dua data sekaligus, yaitu suhu dan kelembaban udara. Sensor ini sering digunakan dalam proyek Arduino karena harganya murah, mudah dipakai, dan cukup untuk percobaan dasar.
Walaupun begitu, DHT11 bukan sensor yang sangat presisi. Jadi, alat yang kita buat lebih cocok digunakan untuk pembelajaran, praktikum sederhana, atau proyek demonstrasi. Jika membutuhkan hasil yang lebih akurat, Anda bisa menggunakan DHT22 atau sensor suhu lain yang lebih baik.
Skema Rangkaian Arduino UNO, DHT11, dan LCD I2C
Hubungkan komponen dengan Arduino seperti berikut.
Ringkasnya, skema rangkaian yang digunakan adalah DHT11 sebagai pembaca suhu dan kelembaban, sedangkan LCD I2C berfungsi sebagai layar untuk menampilkan hasil pengukuran secara langsung.
Koneksi DHT11 ke Arduino
- VCC DHT11 → 5V Arduino
- GND DHT11 → GND Arduino
- DATA DHT11 → Pin digital 2 Arduino
Koneksi LCD I2C ke Arduino
- VCC LCD I2C → 5V Arduino
- GND LCD I2C → GND Arduino
- SDA LCD I2C → A4 Arduino UNO
- SCL LCD I2C → A5 Arduino UNO
Jika menggunakan Arduino selain UNO, posisi pin SDA dan SCL bisa berbeda. Misalnya pada Arduino Mega, SDA berada di pin 20 dan SCL di pin 21.
Library yang Dibutuhkan
Sebelum mengunggah kode, pastikan Anda sudah memasang library berikut di Arduino IDE:
- DHT sensor library by Adafruit
- Adafruit Unified Sensor
- LiquidCrystal I2C
Cara memasangnya:
- Buka Arduino IDE.
- Pilih menu Sketch → Include Library → Manage Libraries.
- Cari nama library yang dibutuhkan.
- Klik Install.
Kode Program Arduino
Setelah rangkaian siap dan library terpasang, salin kode berikut ke Arduino IDE.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
// Alamat I2C LCD biasanya 0x27 atau 0x3F
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(9600);
dht.begin();
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Termometer");
lcd.setCursor(0, 1);
lcd.print("Digital DHT11");
delay(2000);
lcd.clear();
}
void loop() {
float suhu = dht.readTemperature();
float kelembaban = dht.readHumidity();
if (isnan(suhu) || isnan(kelembaban)) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Sensor Error");
lcd.setCursor(0, 1);
lcd.print("Cek kabel");
delay(2000);
return;
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Suhu : ");
lcd.print(suhu, 1);
lcd.print((char)223);
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Lembab: ");
lcd.print(kelembaban, 1);
lcd.print("%");
Serial.print("Suhu: ");
Serial.print(suhu);
Serial.print(" C | Kelembaban: ");
Serial.print(kelembaban);
Serial.println(" %");
delay(2000);
}
Penjelasan Kode Program
Pada bagian awal kode, kita memanggil library yang dibutuhkan. Library DHT.h digunakan untuk membaca data dari sensor DHT11, sedangkan LiquidCrystal_I2C.h digunakan untuk mengatur tampilan LCD.
#define DHTPIN 2
#define DHTTYPE DHT11
Bagian ini menunjukkan bahwa pin DATA sensor DHT11 terhubung ke pin digital 2 Arduino, dan jenis sensor yang digunakan adalah DHT11.
LiquidCrystal_I2C lcd(0x27, 16, 2);
Baris ini mengatur LCD dengan alamat I2C 0x27, jumlah kolom 16, dan jumlah baris 2. Jika LCD tidak menampilkan teks, kemungkinan alamat I2C berbeda. Coba ganti 0x27 menjadi 0x3F.
Pada bagian loop(), Arduino membaca suhu dan kelembaban secara berulang setiap 2 detik. Data tersebut kemudian ditampilkan ke LCD dan juga dikirim ke Serial Monitor.
Jika LCD Tidak Menampilkan Tulisan
Jika LCD menyala tetapi tidak menampilkan tulisan, coba cek beberapa hal berikut:
- Pastikan kabel SDA dan SCL tidak tertukar.
- Putar trimpot kecil pada modul I2C untuk mengatur kontras LCD.
- Coba ubah alamat I2C dari
0x27menjadi0x3F. - Pastikan library LiquidCrystal I2C sudah terpasang dengan benar.
Jika Sensor DHT11 Error
Jika muncul pesan Sensor Error, biasanya masalahnya ada pada koneksi sensor. Periksa kembali kabel VCC, GND, dan DATA. Pastikan juga jenis sensor pada kode sudah sesuai, yaitu DHT11.
Beberapa modul DHT11 memiliki urutan pin yang berbeda. Jadi, jangan hanya mengikuti posisi fisik sensor, tetapi cek tulisan atau keterangan pin pada modul yang digunakan.
Ide Pengembangan Proyek
Setelah proyek dasar ini berhasil, Anda bisa mengembangkannya menjadi beberapa proyek lanjutan, misalnya:
- Menambahkan buzzer sebagai alarm jika suhu terlalu tinggi.
- Menyimpan data suhu dan kelembaban ke komputer.
- Membuat grafik perubahan suhu dari waktu ke waktu.
- Menggunakan DHT22 agar hasil pengukuran lebih akurat.
- Menghubungkan alat ke internet menggunakan ESP8266 atau ESP32.
- Mencoba proyek sensor lain, misalnya membuat lampu otomatis dengan sensor cahaya LDR.
Manfaat untuk Pembelajaran IPA dan Fisika
Proyek ini tidak hanya mengajarkan pemrograman Arduino, tetapi juga dapat digunakan untuk pembelajaran IPA dan fisika. Siswa bisa mengamati perubahan suhu ruangan, membandingkan suhu di beberapa tempat, atau melihat hubungan antara suhu dan kelembaban udara.
Dengan pendekatan seperti ini, pembelajaran menjadi lebih konkret karena siswa tidak hanya membaca teori, tetapi juga mengukur data secara langsung. Inilah salah satu contoh sederhana penerapan pembelajaran berbasis proyek atau project-based learning.
Kesimpulan
Membuat termometer digital dengan Arduino, DHT11, dan LCD 16×2 adalah proyek yang cocok untuk pemula. Rangkaiannya sederhana, kode programnya tidak terlalu panjang, dan hasilnya bisa langsung dilihat pada LCD.
Proyek ini juga sangat cocok digunakan sebagai media praktikum sederhana di sekolah atau kampus. Setelah memahami dasar proyek ini, Anda bisa mengembangkannya menjadi alat ukur yang lebih lengkap, misalnya data logger suhu, sistem alarm suhu tinggi, atau monitoring suhu berbasis internet.
Jika Anda ingin melanjutkan seri Arduino ini, langkah berikutnya yang menarik adalah menyimpan data sensor ke komputer atau membuat grafik perubahan suhu dari waktu ke waktu.
Referensi Tambahan
Untuk memperdalam pembahasan, Anda juga bisa membaca dokumentasi resmi Arduino Language Reference dan halaman library Adafruit DHT Sensor Library. Tautan ini berguna jika ingin memahami fungsi program Arduino dan penggunaan library DHT secara lebih lengkap.
FAQ
Apakah DHT11 akurat untuk pengukuran suhu?
DHT11 cukup untuk pembelajaran dan proyek sederhana, tetapi kurang cocok untuk pengukuran yang membutuhkan presisi tinggi. Jika ingin hasil lebih baik, gunakan DHT22.
Mengapa LCD saya hanya menyala biru tanpa tulisan?
Biasanya karena kontras LCD belum diatur atau alamat I2C tidak sesuai. Coba putar trimpot pada modul I2C dan ganti alamat dari 0x27 ke 0x3F.
Apakah proyek ini bisa memakai Arduino Nano?
Bisa. Arduino Nano juga menggunakan A4 sebagai SDA dan A5 sebagai SCL, sama seperti Arduino UNO.
Apakah data suhu bisa disimpan ke Excel?
Bisa. Data dari Serial Monitor dapat dikembangkan agar tersimpan ke Excel menggunakan PLX-DAQ atau aplikasi pencatat data serial lainnya. Ini bisa menjadi proyek lanjutan yang menarik.
Tinggalkan Balasan