#include <LiquidCrystal_I2C.h>
#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#define ECHO_PIN 2
#define TRIG_PIN 4
#define buzzer 4
#define ledmerah 14
#define ledkuning 12
#define ledhijau 27
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASSWORD ""
#define BOT_TOKEN "6615261736:AAEQGpcZkXV8Z_dJWmbRxb-cOwJaS4ZfIew"
#define CHAT_ID "6242476867"
const unsigned long BOT_MTBS = 1000;
unsigned long bot_lasttime;
WiFiClientSecure secured_client;
UniversalTelegramBot bot (BOT_TOKEN, secured_client);
LiquidCrystal_I2C lcd(0x27,20,4);
int kirim;
int kdlm = 0;
void setup() {
Serial.begin(115200);
while (!Serial)
delay(500);
Serial.print("CONNECTING TO: ");
Serial.print(WIFI_SSID);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
secured_client.setCACert(TELEGRAM_CERTIFICATE_ROOT);
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(500);
}
Serial.println("");
Serial.println("WIFI CONNECTED");
pinMode(ledmerah, OUTPUT);
pinMode(ledkuning, OUTPUT);
pinMode(ledhijau, OUTPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(buzzer, OUTPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Project Tambak");
lcd.setCursor(5,1);
lcd.print("oleh");
delay(2000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" Sahlan ");
lcd.setCursor(0,1);
lcd.print(" Project IoT ");
delay(3000);
digitalWrite(ledmerah, LOW);
digitalWrite(ledkuning, LOW);
digitalWrite(ledhijau, LOW);
digitalWrite(buzzer, LOW);
lcd.clear();
}
float kedalaman(){
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
int durasi = pulseIn(ECHO_PIN, HIGH);
return 400-durasi*0.034/2;
}
void loop() {
if(kirim == 1){
bot.sendMessage(CHAT_ID, kdlm);
kirim = 0;
}
int kdlm = kedalaman();
if(kdlm >= 0 && kdlm <= 100)
{
kirim = 1;
digitalWrite(ledmerah, HIGH);
digitalWrite(ledkuning, LOW);
digitalWrite(ledhijau, LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Tinggi :");
lcd.setCursor(10,0);
lcd.print(kdlm);
lcd.setCursor(14,0);
lcd.print("cm");
lcd.setCursor(0,1);
lcd.print("Satus :");
lcd.setCursor(9,1);
lcd.print("Sedikit");
tone(4,800,1000);
delay(1000);
lcd.clear();
delay(100);
}else if(kdlm > 100 && kdlm <= 250)
{ kirim = 0;
digitalWrite(ledmerah, LOW);
digitalWrite(ledkuning, HIGH);
digitalWrite(ledhijau, LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Tinggi :");
lcd.setCursor(10,0);
lcd.print(kdlm);
lcd.setCursor(14,0);
lcd.print("cm");
lcd.setCursor(0,1);
lcd.print("Satus :");
lcd.setCursor(9,1);
lcd.print("Sedang");
//digitalWrite(buzzer, LOW);
delay(1000);
lcd.clear();
delay(100);
}else if(kdlm > 250 && kdlm <= 400)
{ kirim = 0;
digitalWrite(ledmerah, LOW);
digitalWrite(ledkuning, LOW);
digitalWrite(ledhijau, HIGH);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Tinggi:");
lcd.setCursor(10,0);
lcd.print(kdlm);
lcd.setCursor(14,0);
lcd.print("cm");
lcd.setCursor(0,1);
lcd.print("Status :");
lcd.setCursor(9,1);
lcd.print("Banyak");
//digitalWrite(buzzer, LOW);
delay(1000);
lcd.clear();
delay(100);
}
}