Facebook Page PM2.5 Daily

จากปัญหาเรื่องฝุ่นควันที่เป็นปัญหาในประเทศไทยเมื่อต้นปีที่ผ่านมา นอกจากปัญหาเรื่องการป้องกันฝุ่นที่ทำให้หน้ากาก N95 กลายเป็นของหายาก เครื่องฟอกอากาศหมดตลาด เครื่องวัดฝุ่นที่จะช่วยบอกปริมาณฝุ่น PM2.5 ก็กลายเป็นของหายากไปด้วย ว่าแล้วก็เลยมาทำเองดีกว่า


อุปกรณ์ที่ต้องใช้ ง่ายๆ แค่สองอย่าง
1. M5Stack
2. PM2.5 Sensor
source: https://m5stack.com/

M5Stack คืออะไร ?

M5Stack ย่อมาจาก Modular 5cm Stackable คือ ชุดอุปกรณ์ที่ช่วยอำนวยความสะดวกในการพัฒนาโปรแกรม IoT (Internet of Things) แทนที่จะต้องมาต่อสายเชื่อม Module Display, ปุ่ม Control, WiFi, BLE หรือ Connectors อื่นๆ เข้ากับบอร์ด Arduino หรือ ESP8266 ทางผู้ผลิตรวมมันเข้ามาไว้ในตัวเดียวกัน ทำให้เราเพียงแค่เขียนโปรแกรมลงไป และต่อสายเข้ากับอุปกรณ์ ก็สามารถใช้งานได้เลย

M5Stack มีขนาดเพียง 5 x 5 cm. (ตามชื่อเลย Modular 5cm)

ประกอบไปด้วยบอร์ดหลัก M5Stack Core ใช้ Chipset ESP32, หน้าจอ LCD 2 นิ้ว, Speaker, ปุ่มกด 3 ปุ่ม, Battery, WiFi/ BLE เชื่อมต่อด้วย Port USB-C, Grove (I2C) และ M5Stack Bottom ที่เป็นบอร์ดเชื่อมต่ออุปกรณ์ภายนอกผ่าน Port แบบต่างๆ (I2C, SPI, GPIO)

ส่วน PM2.5 Sensor เราใช้ของ Sensirion SPS30 ที่เป็น Laser Sensor ที่มีความแม่นยำสูงแถมยังเคลมว่าใช้งานได้ต่อเนื่อง 8 ปีแบบไม่ต้องทำความสะอาดด้วย

ของพร้อมเราก็เริ่มทำกันเลยดีกว่า

  1. เริ่มต้นโหลดโปรแกรมสำหรับการพัฒนา Arduino IDE ที่นี่
  2. โหลดและติดตั้ง USB to UART driver เพื่อให้โปรแกรมเห็น Port เชื่อมต่อของ M5Stack ที่นี่
  3. เปิดโปรแกรมขึ้นมาหน้าตาประมาณนี้ เราก็ Install Board M5Stack กันก่อน

ไปที่ Arduino > Preferences > Setting ใส่ link ด้านล่างที่ “Additional Boards Manager URLs: https://dl.espressif.com/dl/package_esp32_index.json,https://raw.githubusercontent.com/m5stack/m5stack-board-support/master/package_m5stack_index.json,http://arduino.esp8266.com/stable/package_esp8266com_index.jso

จากนั้นไปที่ Tools > Board: … > Board Manager หา M5Stack .. แล้วกด Install

4. หลังจากนั้นก็ไปโหลด Library ที่ต้องใช้กัน ไปที่ Sketch > Include Library > Manage Libraries .. หาคำว่า M5Stack แล้วก็ Install

5. ทำการต่อสาย USB-C เชื่อมคอมพิวเตอร์กับ M5Stack แล้วไปที่

  • Tools > Boards > M5Stack-Core-ESP32 เพื่อเลือก Board
  • Tools > Ports >/dev/cu.SLAB_USBtoUART เพื่อเลือก Port เชื่อมต่อ

6. ต่อสาย PM2.5 Sensor เข้ากับ M5Stack Bottom ในที่นี่ผมใช้ Port I2C ในการเชื่อมต่อเลยต่อสายตามรูป

7. Download Code จาก ที่นี่ และทำการ Upload เข้า M5Sstack

  • Library สำหรับ PM2.5 Sensor ของ Sensirion ผมใช้ของ Gravitech (เอาไฟล์ไปไว้ที่ Arduino Libraries ก่อนนะครับ)

รายละเอียดหน้าจอแสดงผล

จาก Facebook Page PM2.5 Daily ที่ผมทำกับเพื่อนๆ เกี่ยวกับเรื่องของฝุ่น PM2.5 มีคำถามเกี่ยวกับการเทียบค่า PM2.5 กับค่า AQI ว่าฝุ่นมากแค่ไหนถึงจะเป็นอันตราย เราเลยเอาตารางแสดงผลเปรียบเทียบค่า AQI ของแต่ละประเทศ มาทำเป็นหน้าจอ ให้เห็นชัดๆ ไปเลย จะได้เทียบค่าได้ง่ายหน่อย โดยค่า AQI < 100 ที่เป็นระดับปกติจะอยู่ใน Zone สีเหลือง

เพียงเท่านี้เราก็จะได้เครื่องวัดค่าฝุ่นแบบง่ายๆ ไว้ใช้ ลองดูนะครับ
#Note1: Sensirion เป็น Sensor ค่าตัวอย่างแพง แต่ก็วัดค่าได้รวดเร็วมาก ตบแป้งฝุ่นใส่นิดเดียว ค่าขึ้นเอาๆ เลย เราสามารถเปลี่ยนเอา Sensor พิมพ์นิยม ราคาย่อมเยาอย่าง PMS5003, PMS7003 มาใส่แล้วแก้ไขการอ่านค่าแทนได้นะครับ
#Note2: จากการทดสอบอ่านค่า Sensirion ได้ค่าไม่ตรงกับเครื่องวัดที่คนนิยมใช้อย่าง Mi PM2.5 Detector หรือ SNDWay ที่ใช้ Sensor PMS7003 (อ้างอิงจากที่นี่) เลยต้องมีการปรับแก้เล็กน้อย

(NOTE) ค่า Sensor ของ Sensirion SPS30 เทียบกับ PowerPlant PMS5003, PMS7003

ในตอนแรกเลยถ้าเราใช้ค่า PM2.5 ที่ได้มาจาก Sensor ของ Sensirion เลยจะได้ค่าที่ไม่เท่ากับ ที่ได้จาก Mi PM2.5 Detector เลยไปลองหาข้อมูลมาว่าทำไม ได้ข้อมูลที่ใกล้เคียงที่สุด จากบอร์ดของคนทำ Dust Sensor คือ มันใช้คนละค่ากัน

PMS5003, 7003 จะให้ค่า 2 แบบคือ

(1) CF1 , Standard Particle

(2) SAT, Standard under atmospheric environment

ซึ่ง Sensirion น่าจะอ่านค่าเป็น SAT เราก็งงว่ามันคืออะไรกันบ้าง?​ ได้ความใกล้เคียงสุดก็ตาม link นี้ พร้อมสูตรคำนวณ แต่พอมาลองของจริงก็ยังได้ค่าไม่ใกล้เคียงเท่าไร เลยต้องปรับสูตรคำนวณตามที่ทดลองเทียบกับ Mi PM2.5 เอง ถ้าใครรู้ก็รบกวนไขความกระจ่างให้ด้วยนะครับ