Proyek Arduino: Menggabungkan Sensor DHT11, LCD I2C, dan Buzzer untuk Pemantauan Lingkungan

Berikut adalah program Arduino untuk mengukur suhu dan kelembapan menggunakan sensor DHT11, menampilkan hasilnya pada LCD I2C, dan mengaktifkan buzzer jika suhu atau kelembapan melebihi batas tertentu.

 

 Alat dan Bahan:

- Arduino Uno

- Sensor DHT11

- LCD I2C 16x2

- Buzzer

- Kabel Jumper

- Breadboard

 

 Library yang Diperlukan:

Pastikan Anda sudah menginstal library berikut di Arduino IDE:

- `DHT sensor library` oleh Adafruit

- `LiquidCrystal_I2C` library

 

 Wiring:

1. DHT11

   - VCC ke 5V Arduino

   - GND ke GND Arduino

   - Data ke pin digital 2 Arduino

 

2. LCD I2C

   - SDA ke pin A4 Arduino

   - SCL ke pin A5 Arduino

   - VCC ke 5V Arduino

   - GND ke GND Arduino

 

3. Buzzer

   - Positif (+) ke pin digital 8 Arduino

   - Negatif (-) ke GND Arduino

 

 

 

 


 

Kode Program:

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

#include <DHT.h>

#define DHTPIN 2           // Pin yang terhubung ke data sensor DHT11

#define DHTTYPE DHT11      // Tipe sensor yang digunakan

#define BUZZER_PIN 8       // Pin yang terhubung ke buzzer

DHT dht(DHTPIN, DHTTYPE);

LiquidCrystal_I2C lcd(0x27, 16, 2);  // Alamat I2C mungkin berbeda, sesuaikan dengan yang Anda gunakan

// Batas suhu dan kelembapan

float tempThreshold = 33.0;  // Suhu maksimum yang diperbolehkan (dalam derajat Celsius)

float humThreshold = 70.0;   // Kelembapan maksimum yang diperbolehkan (dalam %)

void setup() {

  lcd.init();

  lcd.backlight();

  dht.begin();

  pinMode(BUZZER_PIN, OUTPUT);

  digitalWrite(BUZZER_PIN, LOW); // Buzzer off saat awal

  lcd.setCursor(0, 0);

  lcd.print("Temp & Humidity");

  delay(2000);

}

 

void loop() {

  float humidity = dht.readHumidity();

  float temperature = dht.readTemperature();

 

  if (isnan(humidity) || isnan(temperature)) {

    lcd.setCursor(0, 0);

    lcd.print("Error Reading");

    lcd.setCursor(0, 1);

    lcd.print("Sensor Data");

    return;

  }

 

  lcd.clear();

  lcd.setCursor(0, 0);

  lcd.print("Temp: ");

  lcd.print(temperature);

  lcd.print(" C");

 

  lcd.setCursor(0, 1);

  lcd.print("Humidity: ");

  lcd.print(humidity);

  lcd.print(" %");

// Cek apakah suhu atau kelembapan melebihi batas

  if (temperature > tempThreshold || humidity > humThreshold) {

    digitalWrite(BUZZER_PIN, HIGH);  // Buzzer ON

  } else {

    digitalWrite(BUZZER_PIN, LOW);   // Buzzer OFF

  }

 

  delay(2000);  // Tunggu 2 detik sebelum membaca data lagi

}

 

Penjelasan Program:

1. Library dan Pin:

   - `LiquidCrystal_I2C lcd(0x27, 16, 2);` digunakan untuk menginisialisasi LCD I2C dengan alamat 0x27. Pastikan alamat ini sesuai dengan LCD Anda.

   - `DHT dht(DHTPIN, DHTTYPE);` untuk menginisialisasi sensor DHT11.

 

2. Pengaturan Buzzer:

   - Jika suhu atau kelembapan melebihi batas yang telah ditentukan (`tempThreshold` dan `humThreshold`), buzzer akan aktif.

 

3. Pembacaan dan Penampilan Data:

   - Suhu dan kelembapan dibaca setiap 2 detik, kemudian ditampilkan pada LCD.

   - Jika ada kesalahan pembacaan sensor, pesan error akan ditampilkan di LCD.

 

Program ini sederhana tetapi sangat berguna untuk proyek monitoring lingkungan, seperti memantau suhu dan kelembapan di ruangan

Komentar