#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Inisialisasi LCD I2C
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Pin Soil Moisture
const int soilPin = A0;
int nilaiSensor;
int kelembapan;
// Kalibrasi sensor
const int nilaiKering = 800;
const int nilaiBasah = 300;
void setup() {
Serial.begin(9600);
// Memulai LCD
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("SMART FARMING");
lcd.setCursor(0, 1);
lcd.print("SMKN 2 SRAGEN");
delay(2000);
lcd.clear();
}
void loop() {
// Membaca sensor
nilaiSensor = analogRead(soilPin);
// Menghitung kelembapan
kelembapan = map(
nilaiSensor,
nilaiKering,
nilaiBasah,
0,
100
);
kelembapan = constrain(kelembapan, 0, 100);
// Tampilan baris pertama
lcd.setCursor(0, 0);
lcd.print("Kelembapan: ");
lcd.print(kelembapan);
lcd.print("% ");
// Tampilan baris kedua
lcd.setCursor(0, 1);
if (kelembapan < 35) {
lcd.print("Status: KERING ");
}
else if (kelembapan < 70) {
lcd.print("Status: NORMAL ");
}
else {
lcd.print("Status: BASAH ");
}
// Serial Monitor
Serial.print("Sensor: ");
Serial.print(nilaiSensor);
Serial.print(" | Kelembapan: ");
Serial.print(kelembapan);
Serial.println("%");
delay(1000);
}
Update dengan penambahan 2 LED
#include <Wire.h> #include <LiquidCrystal_I2C.h> // Inisialisasi LCD I2C LiquidCrystal_I2C lcd(0x27, 16, 2); // Pin Soil Moisture & LED const int soilPin = A0; const int ledKering = 6; // LED D6 (Indikator Kering) const int ledBasah = 7; // LED D7 (Indikator Basah) int nilaiSensor; int kelembapan; // Kalibrasi sensor const int nilaiKering = 800; const int nilaiBasah = 300; void setup() { Serial.begin(9600); // Konfigurasi pin LED sebagai Output pinMode(ledKering, OUTPUT); pinMode(ledBasah, OUTPUT); // Memulai LCD lcd.init(); lcd.backlight(); lcd.setCursor(0, 0); lcd.print("SMART FARMING"); lcd.setCursor(0, 1); lcd.print("SMKN 2 SRAGEN"); delay(2000); lcd.clear(); } void loop() { // Membaca sensor nilaiSensor = analogRead(soilPin); // Menghitung kelembapan kelembapan = map( nilaiSensor, nilaiKering, nilaiBasah, 0, 100 ); kelembapan = constrain(kelembapan, 0, 100); // Tampilan baris pertama lcd.setCursor(0, 0); lcd.print("Kelembapan: "); lcd.print(kelembapan); lcd.print("% "); // Tampilan baris kedua & Logika LED lcd.setCursor(0, 1); if (kelembapan < 35) { lcd.print("Status: KERING "); digitalWrite(ledKering, HIGH); // LED D6 Menyala digitalWrite(ledBasah, LOW); // LED D7 Mati } else if (kelembapan < 70) { lcd.print("Status: NORMAL "); digitalWrite(ledKering, LOW); // LED D6 Mati digitalWrite(ledBasah, LOW); // LED D7 Mati } else { lcd.print("Status: BASAH "); digitalWrite(ledKering, LOW); // LED D6 Mati digitalWrite(ledBasah, HIGH); // LED D7 Menyala } // Serial Monitor Serial.print("Sensor: "); Serial.print(nilaiSensor); Serial.print(" | Kelembapan: "); Serial.print(kelembapan); Serial.println("%"); delay(1000); }
Tidak ada komentar:
Posting Komentar