📡 คู่มือติดตั้ง IoT: DHT22 + MQ2 + Telegram

NodeMCU V3 (ESP8266) → เก็บข้อมูลทุก 5 นาที → Dashboard + แจ้งเตือน Telegram

🔍 ภาพรวมระบบ

[ DHT22 ]──┐ ├──▶ [ NodeMCU V3 ] ──(WiFi/HTTPS)──▶ ฐานข้อมูล (Cloud) ──▶ Dashboard [ MQ2 ]────┘ │ └──(HTTPS ตรง)──▶ Telegram Bot API (แจ้งเตือน)
✅ NodeMCU V3 มี WiFi ในตัว — ต่อเซนเซอร์ตรง ไม่ต้องใช้ Arduino UNO ✅ ล็อกเป็นมอด: ESP8266 ส่ง Telegram ตรง ไปที่ api.telegram.org (ไม่ผ่านเซิร์ฟเวอร์ เพราะ host ต่อ telegram.org ไม่ได้)

🔌 การต่อวงจร

DHT22 (อุณหภูมิ + ความชื้น)

DHT22ต่อกับ NodeMCUสาย
VCC (ขา 1)VU (5V)แดง
DATA (ขา 2)D4 = GPIO2เหลือง
NC (ขา 3)ไม่ต้องต่อ—
GND (ขา 4)GNDดำ
🚨 สำคัญ: ต่อ Resistor 10kΩ ระหว่าง DATA กับ VCC (pull-up) ไม่งั้นอ่านค่าไม่ได้

MQ2 (แก๊ส / ควัน)

MQ2ต่อกับ NodeMCUสาย
VCCVU (5V)แดง
AO (Analog out)A0เขียว
DO (Digital out)ไม่ต้องต่อ (ไว้ทำ LED)—
GNDGNDดำ

🤖 สร้าง Telegram Bot

1 Telegram → ค้นหา @BotFather → Start
2 พิมพ์ /newbot → ตั้งชื่อ เช่น Room18207 Alert
3 ตั้ง Username ลงท้าย bot → ได้ HTTP API Token
4 หา Chat ID: เปิด https://t.me/userinfobot → Start → ดู Id: 123456789
เก็บ Token และ Chat ID ไว้ใส่ในโค้ด Arduino

⚙️ ตั้งค่าในโค้ด Arduino

ตำแหน่ง: C:\Users\Win10pro\Desktop\ไมโคร\arduino\DHT22_MQ2_NodeMCU_Telegram\DHT22_MQ2_NodeMCU_Telegram.ino

// 1) WiFi
const char* WIFI_SSID     = "ชื่อWiFi";
const char* WIFI_PASSWORD = "รหัสWiFi";

// 2) ฐานข้อมูล (Dashboard) — URL บนเว็บ หรือ IP คอมที่รัน XAMPP
const char* API_URL = "https://project12569.theeeiot.com/EE66172310386/api/v1/post.php";

// 3) Telegram — จาก @BotFather และ @userinfobot
const char* BOT_TOKEN  = "123456789:AAH…";
const char* CHAT_ID    = "123456789";

⚙️ Arduino IDE

1 ติดตั้ง Library: DHT sensor library, Adafruit Unified Sensor, ArduinoJson
2 File → Preferences → Additional Boards Manager URLs ใส่:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
3 Tools → Board → NodeMCU 1.0 (ESP-12E Module)
4 Tools → Port → เลือก COM ของ NodeMCU
5 กด Upload แล้วเปิด Serial Monitor (115200)

✅ ทดสอบระบบ

อาการสาเหตุ / แก้ไข
Serial ขึ้น "DHT22 read FAILED"เช็คขา DHT22 + Resistor 10k pull-up
"WiFi FAILED"SSID/รหัสผิด หรือสัญญาณอ่อน
"[DB] code <= 0"API_URL ผิด หรือ NodeMCU ต่อเน็ตไม่ได้
"[TG] code ไม่ใช่ 200"BOT_TOKEN/CHAT_ID ผิด หรือยังไม่ Start บอท