Untitled
unknown
plain_text
9 months ago
2.2 kB
13
Indexable
#include "DHT.h" // Library untuk sensor DHT11
// --- Deklarasi pin dan tipe sensor ---
#define DHTPIN 2 // Pin data DHT11 terhubung ke pin digital 2
#define DHTTYPE DHT11 // Jenis sensor DHT yang digunakan
DHT dht(DHTPIN, DHTTYPE);
#define BUZZER_PIN 8 // Pin buzzer
#define SOIL_PIN A0 // Sensor kelembapan tanah (analog)
#define RAIN_PIN A1 // Sensor hujan (analog) → gunakan pin analog agar threshold bisa diterapkan
// --- Nilai ambang batas (threshold) ---
int soilThreshold = 700; // Nilai batas kelembapan tanah (semakin besar = semakin kering)
float tempThreshold = 30.0; // Suhu maksimum (°C)
int rainThreshold = 500; // Nilai batas sensor hujan (semakin kecil = hujan)
void setup() {
Serial.begin(9600);
pinMode(BUZZER_PIN, OUTPUT);
dht.begin();
// Tambahan untuk kejelasan
Serial.println("=== Sistem Sensor Otomatis: Kelembapan, Suhu, dan Hujan ===");
}
void loop() {
// --- Pembacaan sensor kelembapan tanah ---
int soilMoisture = analogRead(SOIL_PIN);
Serial.print("Kelembapan Tanah (0-1023): ");
Serial.println(soilMoisture);
if (soilMoisture > soilThreshold) {
Serial.println("⚠️ Tanah kering! Alarm menyala.");
buzz();
}
// --- Pembacaan suhu dari DHT11 ---
float temperature = dht.readTemperature();
if (isnan(temperature)) {
Serial.println("Gagal membaca data suhu!");
} else {
Serial.print("Suhu: ");
Serial.print(temperature);
Serial.println(" °C");
if (temperature > tempThreshold) {
Serial.println("⚠️ Suhu tinggi! Alarm menyala.");
buzz();
}
}
// --- Pembacaan sensor hujan ---
int rainValue = analogRead(RAIN_PIN);
Serial.print("Nilai Sensor Hujan (0-1023): ");
Serial.println(rainValue);
if (rainValue < rainThreshold) {
Serial.println("🌧️ Hujan terdeteksi! Alarm menyala.");
buzz();
}
Serial.println("--------------------------------");
delay(2000); // jeda antar pembacaan
}
// --- Fungsi Buzzer ---
void buzz() {
tone(BUZZER_PIN, 1000); // Bunyi buzzer 1000 Hz
delay(500); // Durasi bunyi 0.5 detik
noTone(BUZZER_PIN); // Matikan buzzer
}
Editor is loading...
Leave a Comment