🔍 ภาพรวมระบบ
[ 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 | สาย |
| VCC | VU (5V) | แดง |
| AO (Analog out) | A0 | เขียว |
| DO (Digital out) | ไม่ต้องต่อ (ไว้ทำ LED) | — |
| GND | GND | ดำ |
🤖 สร้าง 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
const char* WIFI_SSID = "ชื่อWiFi";
const char* WIFI_PASSWORD = "รหัสWiFi";
const char* API_URL = "https://project12569.theeeiot.com/EE66172310386/api/v1/post.php";
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)
✅ ทดสอบระบบ
- เปิดเว็บ Dashboard: https://project12569.theeeiot.com/EE66172310386/
- เปิดเครื่อง NodeMCU → ควรได้รับข้อความ "ระบบพร้อมทำงาน" ใน Telegram
- ทุก 5 นาที ข้อมูลขึ้นตาราง/กราฟ Dashboard
- ทดสอบดมแก๊สไปที่ MQ2 → ถ้าค่าเกิน 700 ppm จะแจ้งเตือน
- ดึงสาย WiFi ออก → ควรได้ข้อความ "ระบบไม่สามารถส่งการแจ้งเตือนได้"
| อาการ | สาเหตุ / แก้ไข |
| 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 บอท |