Arduino Tutorial (2020) – Menampilkan Hasil Pengukuran Sensor Suhu dan Kelembapan DHT 11 melalui LCD 16×2 I2C

Tutorial

Ada banyak perangkat yang bisa mengukur suhu dan kelembapan.

Perangkat-perangkat ini biasanya sangat canggih namun mahal dan belum tentu memenuhi ekspektasi kita. Kita bisa membuat sendiri alat pengukur tersebut dan bahkan menggunakannya untuk otomatisasi apapun guna mempermudah pekerjaan kita.

Misalnya, menyalakan fan atau AC jika suhu terlalu panas atau menyiram tanaman apabila kelembapan udara terlampau kering. Pembuatan alat ini tidak mahal dan tidak sulit. Tentunya ini sangat menarik apabila diterapkan dalam konsep smarthome, smartgarden atau smartcity.

Dalam video ini, akan dijelaskan secara singkat keunggulan dan kelemahan sensor DHT 11, bagaimana menyambungkan sensor DHT 11 pada Arduino melalui Breadboard, dan menampilkan informasi hasil pengukuran melalui LCD 16×2 I2C.

Ada dua sensor serupa yang digunakan dengan tujuan untuk menunjukkan bahwa antara satu sensor dan sensor lainnya tidak memberikan hasil yang sama.

Skema Breadboard

Kode Program

#include <DHT.h>  //menyertakan library DHT kedalam program
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // Mengatur alamat I2C dan ukuran LCD
#define DHTPIN4 4  //pasang sensor pada pin 4 digital
#define DHTPIN6 6  //pasang sensor pada pin 6 digital
#define DHTTYPE11 DHT11 //kita menggunakan jenis sensor DHT11
DHT dht4(DHTPIN4, DHTTYPE11); //deklarasi pin sensor pada PIN 4 dengan jenis sensor yang dipilih
DHT dht6(DHTPIN6, DHTTYPE11); //deklarasi pin sensor pada PIN 6 dengan jenis sensor yang dipilih

void setup() {
  dht4.begin(); //program komunikasi atau setup untuk sensor DHT pada PIN 4
  dht6.begin(); //program komunikasi atau setup untuk sensor DHT pada PIN 6

  lcd.begin(); // Inisiasi LCD I2C
  lcd.backlight(); // Menyalakan backlight LCD
  lcd.setCursor(0, 0); // Tempatkan cursor pada posisi 0 dan 0
  lcd.print("ProgressTech");
  lcd.setCursor(0, 1); // Tempatkan cursor pada posisi 0 dan 0
  lcd.print("Protus");
  Serial.begin(9600); //program komunikasi atau setup untuk serial monitor dan kecepatan komunikasi (baudrate)
}

void loop() {

  float kelembapan4 = dht4.readHumidity(); //menyimpan nilai kelembapan pada variabel kelembapan sensor PIN 4
  float suhu4 = dht4.readTemperature(); //menyimpan nilai suhu pada variabel suhu sensor PIN 4

  float kelembapan6 = dht6.readHumidity(); //menyimpan nilai kelembapan pada variabel kelembapan sensor PIN 6
  float suhu6 = dht6.readTemperature(); //menyimpan nilai suhu pada variabel suhu sensor PIN 6

  //suhu2F = (suhu2*9/5)+32;
  //suhu2K = suhu2 + 273.15;
  
  Serial.print("P4 ");
  Serial.print(kelembapan4); //menampilkan nilai kelembapan pada Serial Monitor
  Serial.print("%"); //Simbol persen satuan kelembapan
  Serial.print(" "); //menambahkan spasi
  Serial.print(suhu4); //menampilkan nilai suhu pada Serial Monitor
  Serial.println("*C ||"); //Satuan Derajat Suhu

  Serial.print("P6 ");
  Serial.print(kelembapan6); //menampilkan nilai kelembapan pada Serial Monitor
  Serial.print("%"); //Simbol persen satuan kelembapan
  Serial.print(" "); //menambahkan spasi
  Serial.print(suhu6); //menampilkan nilai suhu pada Serial Monitor
  Serial.println("*C ||"); //Satuan Derajat Suhu


  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Hum:");
  lcd.print((int) kelembapan4);
  lcd.print("%"); 
  lcd.setCursor(8,0);
  lcd.print("Tem:");
  lcd.print((int) suhu4);
  lcd.print((char)223);
  lcd.print("C"); 

  lcd.setCursor(0,1);
  lcd.print("Hum:");
  lcd.print((int) kelembapan6);
  lcd.print("%"); 
  lcd.setCursor(8,1);
  lcd.print("Tem:");
  lcd.print((int) suhu6);
  lcd.print((char)223);
  lcd.print("C"); 
  
  delay(1000); //mengatur jeda waktu pembacaan sensor selama 1000 milidetik
}

Daftar Komponen

  • DHT 11 (Sensor suhu dan kelembapan)
  • Arduino Uno
  • Kabel jumper
  • LCD 16×2 I2C
  • Papan breadboard (optional)

Leave a Reply

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