#include <WiFi.h>
#include <HTTPClient.h>
#include "DHT.h"
#define DHTPIN 32
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
const char* ssid = "Wokwi-GUEST";
const char* password = "";
String telegramToken = "8227827449:AAH1-NGDObWXH2hrD5uHrMw-ndpmDMEhwhQ";
String chatID = "7807211641";
void sendTelegramMessage(String message) {
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
String url = "https://api.telegram.org/bot" + telegramToken + "/sendMessage";
http.begin(url.c_str());
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
// ใช้ POST ส่งข้อความ (ปลอดภัยกว่า GET)
String payload = "chat_id=" + chatID + "&text=" + message;
int httpResponseCode = http.POST(payload);
if (httpResponseCode > 0) {
Serial.println("ส่งข้อความไป Telegram สำเร็จ");
} else {
Serial.print("ส่งข้อความล้มเหลว, code: ");
Serial.println(httpResponseCode);
}
http.end();
} else {
Serial.println("WiFi หลุด กำลังเชื่อมใหม่...");
WiFi.begin(ssid, password);
}
}
void setup() {
Serial.begin(115200);
dht.begin();
WiFi.begin(ssid, password);
Serial.print("กำลังเชื่อมต่อ WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nเชื่อมต่อ WiFi สำเร็จ!");
sendTelegramMessage("🚀 ESP32 เริ่มต้นระบบ พร้อมวัดอุณหภูมิและความชื้นแล้วครับ!");
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("อ่านค่า DHT22 ไม่สำเร็จ!");
return;
}
Serial.printf("อุณหภูมิ: %.1f °C, ความชื้น: %.1f %%\n", t, h);
String message = "🌡 อุณหภูมิ: " + String(t, 1) + " °C\n💧 ความชื้น: " + String(h, 1) + " %";
sendTelegramMessage(message);
delay(5000);
}