
📡 System Architecture: IoT Air Monitoring System
สถาปัตยกรรมของระบบตรวจวัดคุณภาพอากาศที่พัฒนาโดยใช้ ESP32 + PMS7003 + SHT31 ซึ่งทำหน้าที่อ่านค่าจากเซนเซอร์และส่งข้อมูลไปยังระบบ backend เพื่อแสดงผลบน dashboard ตามที่ได้พัฒนาเครื่องวัดสภาพอากาศในบทความนี้
🧩 System Overview
ระบบถูกออกแบบเป็นแบบ IoT End-to-End Architecture แบ่งออกเป็น 4 ชั้นหลัก:
- Device Layer → ESP32 + Sensors
- Communication Layer → WiFi / HTTP
- Backend Layer → API + Database
- Application Layer → Web Dashboard
🔷 System Diagram
flowchart TD A[Air Environment] --> B[PMS7003 Sensor] A --> C[SHT31 Sensor] B --> D[ESP32] C --> D[ESP32] D --> E[Data Processing] E --> F[JSON Payload] F --> G[WiFi / Internet] G --> H[API Server] H --> I[Database] I --> J[Web Dashboard] J --> K[User]
⚙️ Device Layer (ESP32 + Sensors)
อุปกรณ์หลักในระบบประกอบด้วย:
-
ESP32
- ทำหน้าที่เป็น microcontroller
- เชื่อมต่อ WiFi
- อ่านค่าจากเซนเซอร์
-
PMS7003
- วัดค่า PM1.0 / PM2.5 / PM10
- สื่อสารผ่าน UART
-
SHT31
- วัดอุณหภูมิและความชื้น
- สื่อสารผ่าน I2C
🔄 Data Processing Flow
ESP32 จะทำงานตามลำดับดังนี้:
- อ่านค่าจาก PMS7003
- อ่านค่าจาก SHT31
- รวมข้อมูลเป็นโครงสร้างเดียว
- แปลงเป็น JSON
- ส่งข้อมูลไปยัง server
📦 Example JSON Payload
{ "device_id": "ESP32-001", "temperature": 32.5, "humidity": 68.2, "pm1_0": 12, "pm2_5": 25, "pm10": 40, "timestamp": "2026-04-05T10:30:00Z" }
🌐 Communication Layer
ESP32 ใช้ WiFi ในการเชื่อมต่ออินเทอร์เน็ต และส่งข้อมูลไปยัง backend ผ่าน:
- MQTT API
🖥️ Backend Layer
ฝั่ง server ทำหน้าที่:
- รับข้อมูลจาก ESP32
- ตรวจสอบความถูกต้องของข้อมูล
- บันทึกลงฐานข้อมูล
- ให้บริการ API สำหรับ frontend
📊 Application Layer (Dashboard)
Dashboard (iot.weaq.cc) ใช้สำหรับ:
- แสดงค่าปัจจุบันแบบ real-time
- แสดงกราฟย้อนหลัง
- วิเคราะห์แนวโน้มของฝุ่นและสภาพอากาศ
- รองรับหลาย device
🧠 Design Considerations
- รองรับการเพิ่มจำนวนอุปกรณ์ (scalable)
- แยกหน้าที่แต่ละ layer ชัดเจน
- สามารถต่อยอดไประบบแจ้งเตือน (Telegram / Email)
- รองรับการเปลี่ยน protocol (HTTP → MQTT)
🔚 Summary
ระบบนี้เป็น IoT monitoring system แบบ end-to-end ที่เชื่อมต่อตั้งแต่ hardware sensor ไปจนถึง web dashboard โดยมี ESP32 เป็นตัวกลางในการรวบรวมและส่งข้อมูล เพื่อให้สามารถติดตามคุณภาพอากาศได้แบบเรียลไทม์และย้อนหลัง