#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#include <ESP32Ping.h> // Library ESP32Ping: https://github.com/espressif/esp32-arduino-lib-builder
// Konfigurasi WiFi
const char ssid[] = "Wokwi-GUEST";
const char pass[] = "";
// Alamat website atau IP yang ingin dipantau
const char* websiteURL = "site.undipa.ac.id"; // Gunakan hostname atau IP (contoh: "8.8.8.8")
// Initialize Telegram BOT
#define BOTtoken "1814579181:AAGUasYhK6z43R9XWL3exoEzdA2CXyAsA3g"
#define CHAT_ID "1209015823"
WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);
// Variabel waktu untuk pengganti delay
unsigned long previousMillis = 0;
const long interval = 10000; // Interval pemeriksaan 10 detik
void setup() {
Serial.begin(115200);
Serial.println("Memulai koneksi WiFi...");
Serial.println("Mencari WiFi:");
Serial.println(ssid);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println("\nWiFi terhubung!");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
bot.sendMessage(CHAT_ID, "Memulai Sistem Monitoring dengan Metode Ping", "");
}
void loop() {
if (WiFi.status() != WL_CONNECTED) {
Serial.println("Koneksi WiFi terputus. Mencoba menyambung ulang...");
WiFi.disconnect();
WiFi.reconnect();
delay(5000);
return;
}
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
cekPing();
}
}
void cekPing() {
Serial.println("Melakukan ping ke " + String(websiteURL));
if (Ping.ping(websiteURL)) {
Serial.println("Website CONNECT (Ping berhasil)");
bot.sendMessage(CHAT_ID, "Website CONNECT: Ping berhasil ke " + String(websiteURL));
} else {
Serial.println("Website DISCONNECT (Ping gagal)");
bot.sendMessage(CHAT_ID, "Website DISCONNECT: Ping gagal ke " + String(websiteURL));
}
}