// NIM = 5220411106
// Nama = Nafis Fausta Zaki
#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#include <DHT.h>
// Koneksi WiFi
const char* ssid = "wokwi-GUEST";
const char* password = "";
// Token bot Telegram dan chat ID
const char* telegramToken = "7553316491:AAH7sjoV5-N4jprgEp0mm--fbHaOQkzTjoY";
const char* host = "api.telegram.org";
WiFiClientSecure client;
UniversalTelegramBot bot(telegramToken, client);
String chat_id = "942748106"; // Ganti dengan chat ID Anda
// LED dan DHT
const int ledPin = 2;
#define DHTPIN 4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup() {
// Debug
Serial.begin(115200);
// Koneksi ke WiFi
WiFi.begin(ssid, password);
Serial.print("Menghubungkan ke WiFi...");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("\nTerhubung ke WiFi!");
Serial.print("Alamat IP: ");
Serial.println(WiFi.localIP());
// Setup keamanan TLS (sementara insecure di Wokwi)
client.setInsecure();
// Setup sensor DHT22 dan LED
dht.begin();
pinMode(ledPin, OUTPUT);
}
void loop() {
// Cek pesan baru dari Telegram
int numNewMessages = bot.getUpdates(bot.last_message_received + 1);
while (numNewMessages) {
// Ambil pesan dan nama pengirim
String message = bot.messages[0].text;
String fromName = bot.messages[0].from_name;
Serial.println("📩 Pesan baru untuk Nafis Fausta Zaki dari: " + fromName + " → " + message);
// /start_led - Menyalakan LED
if (message == "/start_led") {
digitalWrite(ledPin, HIGH);
bot.sendMessage(chat_id, "✅ LED dinyalakan oleh Nafis Fausta Zaki 💡", "");
}
// /stop_led - Mematikan LED
else if (message == "/stop_led") {
digitalWrite(ledPin, LOW);
bot.sendMessage(chat_id, "🛑 LED dimatikan oleh Nafis Fausta Zaki ✋", "");
}
// /check_status - Kirim data sensor
else if (message == "/check_status") {
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
if (isnan(temperature) || isnan(humidity)) {
bot.sendMessage(chat_id, "❌ Gagal membaca data dari DHT22. Silakan coba lagi.", "");
} else {
String msg = "📊 *Data Sensor oleh Nafis Fausta Zaki*\n";
msg += "🌡 Suhu: " + String(temperature) + " °C\n";
msg += "💧 Kelembapan: " + String(humidity) + " %";
bot.sendMessage(chat_id, msg, "Markdown");
}
}
// Catat ID pesan terakhir
bot.last_message_received = bot.messages[0].update_id;
numNewMessages = bot.getUpdates(bot.last_message_received + 1);
}
delay(1000); // Cek pesan tiap 1 detik
}