#include <SoftwareSerial.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
SoftwareSerial SIM800L(12, 11);
#define trigPin 3
#define echoPin 4
#define ledaman 5
#define led1 6
#define led2 7
#define led3 8
#define BUZZER 9
#define konveyor A1
#define speaker 10
void setup() {
lcd.begin(16, 2);
lcd.backlight();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Assalamualaikum");
lcd.setCursor(5, 1);
lcd.print("WR.WB");
delay(2000);
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("Ririn Afriza");
lcd.setCursor(0, 1);
lcd.print("NPM : 1660100080");
delay(2000);
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("I L0VE YOU");
delay(2000);
lcd.clear();
lcd.setCursor(4, 0);
lcd.print("SKRIPSI");
lcd.setCursor(3, 1);
lcd.print("ROBOTIKA");
delay(2000);
SIM800L.begin(115200);
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(BUZZER, OUTPUT);
pinMode(konveyor, OUTPUT);
pinMode(speaker, OUTPUT);
pinMode(ledaman, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
}
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;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Tinggi Air:");
lcd.print(distance);
lcd.print("cm");
lcd.setCursor(0,1);
lcd.print("Kondisi :");
if(distance>=16) {
digitalWrite(ledaman, HIGH);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(BUZZER, LOW);
digitalWrite(konveyor, HIGH);
digitalWrite(speaker, LOW);
lcd.setCursor(10,1);
lcd.print("Aman");
}
else {
digitalWrite(ledaman, LOW);
}
if(distance <= 15) {
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(BUZZER, LOW);
digitalWrite(konveyor, HIGH);
digitalWrite(speaker, LOW);
lcd.setCursor(10,1);
lcd.print("Normal");
}
if(distance < 10) {
digitalWrite(led2, HIGH);
digitalWrite(led1, LOW);
digitalWrite(led3, LOW);
digitalWrite(BUZZER, LOW);
digitalWrite(konveyor, HIGH);
digitalWrite(speaker, LOW);
lcd.setCursor(10,1);
lcd.print("Siaga.");
}
if(distance <= 5) {
digitalWrite(led2, LOW);
digitalWrite(led1, LOW);
digitalWrite(konveyor, LOW);
digitalWrite(led3, HIGH);
digitalWrite(BUZZER, HIGH);
delay(500);
digitalWrite(led3,LOW);
digitalWrite(BUZZER, LOW);
delay(500);
digitalWrite(led3, HIGH);
digitalWrite(BUZZER, HIGH);
delay(500);
digitalWrite(led3,LOW);
digitalWrite(BUZZER, LOW);
delay(500);
digitalWrite(led3, HIGH);
digitalWrite(BUZZER, HIGH);
delay(500);
digitalWrite(led3,LOW);
digitalWrite(BUZZER, LOW);
delay(500);
digitalWrite(led3, HIGH);
digitalWrite(BUZZER, HIGH);
delay(500);
digitalWrite(led3,LOW);
digitalWrite(BUZZER, LOW);
delay(500);
digitalWrite(speaker, HIGH);
delay(500);
lcd.setCursor(10,1);
lcd.print("Bahaya");
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(500);
}

Tidak ada komentar:
Posting Komentar