#include <LiquidCrystal_I2C.h>
#include <SoftwareSerial.h>
SoftwareSerial SIM800L(5, 4);
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
int pompa = A1;
float TANAH = A0, LEMBAB = 0;
#define power 7
#define trigPin 3
#define echoPin 2
#define hijau 8
#define kuning 9
#define merah 10
#define BUZZER 6
void setup() {
Serial.begin(9600);
SIM800L.begin(115200);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode( power, OUTPUT);
pinMode(BUZZER, OUTPUT);
pinMode(hijau, OUTPUT);
pinMode(merah, OUTPUT);
pinMode(kuning, OUTPUT);
pinMode (pompa, OUTPUT);
lcd.begin(20, 4);
lcd.backlight();
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("Assalamualaikum");
lcd.setCursor(7, 1);
lcd.print("WR.WB");
lcd.setCursor(2, 2);
lcd.print("SKRIPSI ROBOTIKA");
lcd.setCursor(2, 3);
lcd.print("PENYIRAM TANAMAN");
delay(3000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Nama : Diana Yuntari");
lcd.setCursor(0, 1);
lcd.print("NPM : 1660100060");
lcd.setCursor(0, 2);
lcd.print("Prodi: Informatika");
lcd.setCursor(0, 3);
lcd.print("Fak : Teknik");
delay(4000);
lcd.clear();
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
digitalWrite( power, HIGH);
LEMBAB = analogRead(TANAH);
Serial.print("Kelembapan tanah");
Serial.print(LEMBAB);
lcd.setCursor(0,0);
lcd.print("Jarak :");
lcd.print(distance);
lcd.print("cm");
lcd.setCursor(0,1);
lcd.print("Wadah Air :");
lcd.setCursor(0,2);
lcd.print("Kelembapan :");
lcd.print(LEMBAB);
lcd.setCursor(18,2);
lcd.print("%");
lcd.setCursor(0,3);
lcd.print("Kon.Tanah :");
if(LEMBAB>900 ){
Serial.print("Tanah Kering");
lcd.setCursor(12,3);
lcd.print("KERING.");
delay(500);
digitalWrite(pompa, LOW);
delay(1000);
}
else{
Serial.print(" Kel. Normal ");
lcd.setCursor(12,3);
lcd.print("LEMBAB");
digitalWrite(pompa, HIGH);
delay(1000);
}
////Perintah Program Sensor Jarak //////
if(distance < 5) {
digitalWrite(hijau, HIGH);
digitalWrite(kuning, LOW);
digitalWrite(merah, LOW);
digitalWrite(BUZZER, LOW);
delay(300);
lcd.setCursor(12,1);
lcd.print("Penuh.");
}
else {
digitalWrite(hijau, LOW);
digitalWrite(kuning, HIGH);
lcd.setCursor(12,1);
lcd.print("Sedang");
}
if(distance >= 10) {
lcd.setCursor(12,1);
lcd.print("Kosong");
digitalWrite(hijau, LOW);
digitalWrite(kuning, LOW);
digitalWrite(merah, HIGH);
digitalWrite(BUZZER, HIGH);
digitalWrite(merah, LOW);
digitalWrite(BUZZER, LOW);
delay(500);
digitalWrite(merah, HIGH);
digitalWrite(BUZZER, HIGH);
digitalWrite(merah, LOW);
digitalWrite(BUZZER, LOW);
delay(500);
digitalWrite(merah, HIGH);
digitalWrite(BUZZER, HIGH);
delay(500);
digitalWrite(merah, LOW);
digitalWrite(BUZZER, LOW);
delay(500);
digitalWrite(merah, HIGH);
digitalWrite(BUZZER, HIGH);
delay(500);
digitalWrite(merah, LOW);
digitalWrite(BUZZER, LOW);
delay(500);
digitalWrite(merah, HIGH);
digitalWrite(BUZZER, HIGH);
delay(500);
digitalWrite(merah, LOW);
digitalWrite(BUZZER, LOW);
delay(500);
SIM800L.write("AT+CMGF=1\r\n");
delay(1000);
SIM800L.write("AT+CMGS=\"082176559542\"\r\n");
delay(1000);
SIM800L.write("Sensor Merdeteksi Adanya ketinggian air ... !!!");
delay(1000);
SIM800L.write((char)26);
delay(1000);
lcd.clear();
}
delay(300);
}

Tidak ada komentar:
Posting Komentar