#include <WiFi.h>
#include <UniversalTelegramBot.h>
#include <WiFiClientSecure.h>
// Informasi WiFi
const char* ssid = "Wokwi-GUEST";
const char* password = "";
#define BOT_TOKEN "8096462221:AAHDRRfuEiRpFWta3eaSbZMLgMjx2zG2LZM"
#define CHAT_ID "7012465456"
WiFiClientSecure client;
UniversalTelegramBot bot(BOT_TOKEN, client);
// Definisi pin
#define TRIG_PIN 19
#define ECHO_PIN 18
#define LED_HIJAU 27
#define LED_KUNING 26
#define LED_MERAH 25
#define BUZZER 14
void setup() {
// Inisialisasi pin
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(LED_HIJAU, OUTPUT);
pinMode(LED_KUNING, OUTPUT);
pinMode(LED_MERAH, OUTPUT);
pinMode(BUZZER, OUTPUT);
// Serial monitor
Serial.begin(9600);
// Koneksi ke WiFi
Serial.print("Menghubungkan ke WiFi");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi Terhubung");
}
void loop() {
long duration;
float distance;
// Kirim sinyal TRIG
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// Baca sinyal ECHO
duration = pulseIn(ECHO_PIN, HIGH);
// Hitung jarak dalam cm
distance = duration * 0.034 / 2;
// Tampilkan jarak ke serial monitor
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println(" cm");
// Atur LED dan buzzer berdasarkan jarak
if (distance <= 100) {
digitalWrite(LED_HIJAU, LOW);
digitalWrite(LED_KUNING, LOW);
digitalWrite(LED_MERAH, HIGH);
digitalWrite(BUZZER, HIGH);
// Kirim notifikasi ke Telegram
bot.sendMessage(CHAT_ID, "Jarak kurang dari 100 cm! Perhatian!", "");
} else if (distance <= 200) {
digitalWrite(LED_HIJAU, LOW);
digitalWrite(LED_KUNING, HIGH);
digitalWrite(LED_MERAH, LOW);
digitalWrite(BUZZER, LOW);
// Kirim notifikasi ke Telegram
bot.sendMessage(CHAT_ID, "Jarak antara 100-200 cm.", "");
} else if (distance <= 300) {
digitalWrite(LED_HIJAU, HIGH);
digitalWrite(LED_KUNING, LOW);
digitalWrite(LED_MERAH, LOW);
digitalWrite(BUZZER, LOW);
// Kirim notifikasi ke Telegram
bot.sendMessage(CHAT_ID, "Jarak antara 200-300 cm.", "");
} else {
digitalWrite(LED_HIJAU, LOW);
digitalWrite(LED_KUNING, LOW);
digitalWrite(LED_MERAH, LOW);
digitalWrite(BUZZER, LOW);
// Kirim notifikasi ke Telegram
bot.sendMessage(CHAT_ID, "Jarak lebih dari 300 cm.", "");
}
// Tunggu sebentar sebelum pengukuran berikutnya
delay(5000); // Kirim pesan setiap 5 detik
}