#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#include <DHTesp.h>
// ==== Konfigurasi Sensor ====
const int DHT_PIN = 25;
DHTesp dhtSensor;
// ==== WiFi ====
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASSWORD ""
// ==== Telegram Bot ====
#define BOTtoken "8057590038:AAHQZrG3RuVnC5CVFoj-VcJRSSJpy7PhRfw"
#define CHAT_ID "5303521871"
WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);
// ==== Biodata ====
const String NAMA = "Nabila Yurizka Ilhami";
const String NPM = "5220411154";
// ==== Fungsi untuk membaca sensor ====
String getReadings() {
TempAndHumidity data = dhtSensor.getTempAndHumidity();
String message = "Nama: " + NAMA + "\n";
message += "NPM: " + NPM + "\n";
message += "📡 Pembacaan Sensor:\n";
message += "🌡 Suhu: " + String(data.temperature, 2) + " °C\n";
message += "💧 Kelembapan: " + String(data.humidity, 2) + " %\n";
return message;
}
void setup() {
Serial.begin(115200);
Serial.println("Nama: " + NAMA);
Serial.println("NPM: " + NPM);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
// Koneksi Wi-Fi
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to WiFi ");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
// Nonaktifkan sertifikat (sementara untuk testing)
client.setInsecure();
}
void loop() {
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Suhu: " + String(data.temperature, 2) + " °C");
Serial.println("Kelembapan: " + String(data.humidity, 2) + " %");
if (!isnan(data.temperature) && !isnan(data.humidity)) {
String readings = getReadings();
bool sent = bot.sendMessage(CHAT_ID, readings, "");
Serial.println(sent ? "Pesan terkirim" : "Gagal kirim pesan");
} else {
Serial.println("Gagal membaca data dari DHT!");
}
delay(6000);
}