#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#include <DHTesp.h>
// DHT22 Sensor
DHTesp dhtSensor;
TempAndHumidity data;
const int DHT_PIN = 14;
// WiFi Config
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASSWORD ""
// Telegram Config
#define BOTtoken "7696295642:AAF4i2JXWL_IeARsh4utCpK4qNt_yeF9o-8"
#define CHAT_ID "5566021659"
// Nama dan NPM
const String nama = "Silvester Stoneiman";
const String npm = "5220411285";
// WiFi Client dan Bot
WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);
// Fungsi baca sensor dan format pesan
String getReadings() {
data = dhtSensor.getTempAndHumidity();
String message = "Nama: " + nama + "\n";
message += "NPM: " + npm + "\n\n";
message += "Suhu: " + String(data.temperature, 2) + " °C\n";
message += "Kelembapan: " + String(data.humidity, 2) + " %\n";
return message;
}
void setup() {
Serial.begin(115200);
// Inisialisasi DHT Sensor
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
// Koneksi WiFi
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
WiFi.mode(WIFI_STA);
Serial.print("Connecting to WiFi ");
Serial.print(WIFI_SSID);
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print(".");
}
Serial.println(" Connected!");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
#ifdef ESP32
client.setCACert(TELEGRAM_CERTIFICATE_ROOT); // Sertifikat untuk Telegram API
#endif
}
void loop() {
String readings = getReadings();
Serial.println(readings);
bot.sendMessage(CHAT_ID, readings, "");
delay(6000); // Kirim tiap 6 detik
}