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.
Komentar
Posting Komentar