Journal

Predictive AQI Control: ใช้ LSTM Forecast ควบคุมเครื่องฟอกอากาศล่วงหน้าก่อน PM2.5 พุ่ง

Predictive AQI Control: LSTM Forecasting to Pre-activate Air Purifiers Before PM2.5 Spikes

12 พฤษภาคม 2569 · 1 นาที

ข้อจำกัดของการตอบสนองแบบ Reactive

ระบบ Smart Air Purifier ทั่วไปใช้ Threshold-based Control: เมื่อ PM2.5 ใน >25 μg/m³ เปิดเครื่องฟอก แต่การรอให้ฝุ่นเข้าบ้านก่อนแล้วค่อยฟอก (Reactive) ยังได้รับ Peak Exposure อยู่ดี Predictive Control ควบคุมล่วงหน้าก่อน PM2.5 ถึงจุดอันตราย ลด Exposure สูงสุดได้มาก

ข้อมูล Input สำหรับ LSTM AQI Forecast

Historical AQI: ข้อมูล PM2.5 รายชั่วโมงจาก IQAir API (สถานีตรวจอากาศใกล้บ้าน) + กรมควบคุมมลพิษ (PCD) ย้อนหลัง 2 ปี Meteorological Data: ความเร็วและทิศทางลม (Wind Speed/Direction), อุณหภูมิ, ความชื้นสัมพัทธ์, ความกดอากาศ จาก Open-Meteo API (ฟรี) Seasonal Features: เดือน, Day of Week, Hour of Day (Bangkok AQI มี Pattern ชัดเจน: พีคช่วงเช้า 07:00–09:00 และเย็น 17:00–20:00 ในฤดูหมอกควัน พ.ย.–ก.พ.) Lag Features: PM2.5 ชั่วโมงที่ผ่านมา 1, 2, 4, 6, 12, 24 ชั่วโมง เป็น Feature สำคัญที่สุด

LSTM Model Architecture

Sequence Length: 24 hours (24 timesteps) Features: PM2.5, Temperature, Humidity, Wind Speed, Wind Direction (cos/sin), Hour (sin/cos), Month (sin/cos) = 9 Features Model: 2-layer LSTM (64 units / 32 units) + Dropout 0.2 + Dense Output 4 (forecast 1h, 2h, 3h, 4h ahead) Training: 18 เดือนแรก Validation 3 เดือน Test 3 เดือน Performance: MAE ~8–15 μg/m³ สำหรับ Forecast 1–2h RMSE สูงขึ้นเมื่อ Horizon ไกลขึ้น

Deployment บน Raspberry Pi 5

เทรน Model บน Cloud/PC แล้ว Export เป็น TensorFlow Lite (.tflite) หรือ ONNX รัน Inference บน Pi 5 ทุก 30 นาที หรือ Triggered เมื่อ AQI เปลี่ยนแปลงเกิน 10 μg/m³ Python Script อัปเดต HA Sensor ผ่าน REST API

Predictive Automation Logic ใน Home Assistant

Trigger: sensor.aqi_forecast_1h > 50 (Moderate) Action: - เปิด Air Purifier ทุกห้องที่ High Speed - ลด ERV Flow Rate เป็น Minimum (ลด Air Import จากนอก) - ปิดหน้าต่างอัตโนมัติ (ถ้ามี Smart Window) - แจ้งเตือน LINE: คาดการณ์ AQI สูงใน 1 ชั่วโมง เตรียมระบบแล้ว Trigger: sensor.aqi_forecast_1h < 30 (Good) Action: - ปรับ Air Purifier เป็น Auto Mode (Low) - เพิ่ม ERV Flow Rate เป็น Normal (เพิ่ม Fresh Air)

Bangkok AQI Seasonal Pattern

Fine Dust Season (พ.ย.–มี.ค.): AQI PM2.5 มักเกิน 100 เป็นเวลาหลายวัน เป็นช่วงที่ LSTM ต้องการ Data มากที่สุดและ Accuracy ต่ำที่สุดเพราะ Variability สูง ควรอัปเดต Model ทุกปีด้วย Data ใหม่ Monsoon Season (พ.ค.–ต.ค.): ฝนชะล้าง PM2.5 AQI มักต่ำ LSTM ทำนายได้แม่นยำกว่า ระบบ Purifier ทำงานน้อย

ผลลัพธ์จาก Predictive vs Reactive Control

จำลองจาก Dataset กรุงเทพฯ: Reactive Control (Threshold 25 μg/m³): ได้รับ PM2.5 สะสม 100% ช่วงที่ AQI พุ่ง Predictive Control (LSTM 1h Ahead): ลด Cumulative PM2.5 Exposure 40–60% โดยเปิดระบบก่อน Spike 30–60 นาที

คำถามที่พบบ่อย

LSTM เหมาะกับ AQI Forecast กว่า Random Forest หรือ XGBoost อย่างไร?
AQI เป็น Time Series ที่มี Temporal Dependency สูง (ค่าชั่วโมงนี้ขึ้นอยู่กับชั่วโมงที่แล้ว) LSTM ออกแบบมาเพื่อ Sequence Data จึงจับ Temporal Pattern ได้ดีกว่า XGBoost/Random Forest ที่ต้องสร้าง Lag Feature เองและไม่ได้ Capture Long-term Dependency ได้ดีเท่า
Open-Meteo API ฟรีหรือไม่สำหรับการใช้งานที่บ้าน?
Open-Meteo (open-meteo.com) ฟรีสำหรับ Non-commercial Use ไม่จำกัด Request ต่อวัน ให้ข้อมูล Weather Forecast รายชั่วโมงและ Historical Weather ย้อนหลังสำหรับทุกพิกัดในโลกรวมกรุงเทพฯ
LSTM Forecast ทำงานบน Raspberry Pi 5 ได้จริงไหมหรือต้องใช้ GPU?
TFLite Quantized Model (INT8) ของ LSTM ขนาดเล็ก (64+32 units) รัน Inference บน Pi 5 CPU ได้ใน <1 วินาที ไม่ต้องการ GPU เพราะ Inference ไม่ใช่ Training Training ต้องทำบน PC/Cloud ก่อนแล้ว Export TFLite มาใช้บน Pi
ต้องใช้ข้อมูลย้อนหลังกี่ปีในการเทรน LSTM ที่แม่นยำ?
แนะนำ 2 ปีขึ้นไปเพื่อครอบคลุม Seasonal Pattern ทั้ง Fine Dust Season และ Monsoon Season อย่างน้อย 2 รอบ ถ้ามีข้อมูลน้อยกว่า 1 ปีความแม่นยำ Seasonal Prediction จะต่ำลงมาก