อุปกรณ์ตรวจจับฝุ่นละออง PM2.5

ผู้เขียนบทความ : นายธนภัทร เพ็ชรอินทอง #COE15
นายณน สุวรรณมณี #COE15
นายณัฐพงค์ ตะวัน#COE15

คณะวิศวกรรมศาสตร์ สาขาวิศวกรรมคอมพิวเตอร์

วิชา 04-513-201 การโปรแกรมคอมพิวเตอร์ขั้นสูง 1/2566

1.ความเป็นมา 

ในตั้งแต่ช่วงปลายปี 2562 เป็นต้นมา ประเทศไทยถือเป็นหนึ่งในประเทศที่ติดอันดับคุณภาพแย่มากที่สุดในโลก โดยเฉพาะค่าฝุ่น PM2.5 ที่พุ่งสูงจนอยู่ในระดับที่ต้องใช้หน้ากากกันฝุ่น ปัญหาฝุ่น PM2.5 ไม่ได้เกิดขึ้นทุกวัน บางวันที่มีลมพัด จะทำให้อากาศถ่ายเท ลมจะพัดพาเอาฝุ่นไปด้วย ทำให้อากาศดีขึ้นบ้าง แต่ปัญหาคือ แล้วเราจะรู้ได้อย่างไรว่าวันไหนอากาศดี ไม่ต้องใส่หน้ากากออกนอกบ้าน ? แล้ววันไหนอากาศไม่ดี จำเป็นต้องใส่หน้ากากออกจากบ้าน ? หลายคนอาจจะเลือกดูจากแอพพลิเคชั่น AirVisual แอพพลิเคชั่นเช็คคุณภาพอากาศยอดนิยม แต่ค่าที่ได้จากแอพ AirVisual ก็ไม่ใช่ค่าคุณภาพอากาศที่แท้จริงในบริเวณที่เราอยู่จริง ๆ รวมทั้งข้อมูลที่ได้ก็ไม่ได้เรียลไทม์มากนัก

2.วัตถุประสงค์

2.1 เพื่อแสดงข้อมูลแบบเรียลไทม์
2.2 เพื่อความสะดวกสบายในการใช้งาน
2.3 เพื่อวัดคุณภาพอากาศ

3.ขอบเขต

3.1 สามารถเพิ่มความสะดวกสบายและความแม่นยำในการตรวจวัดค่าฝุ่นละอองในอากาศ
3.2 สามารถแจ้งเตือนการใช้ ESP32 เพื่อตรวจวัดค่า PM2.5 และส่งการแจ้งเตือนผ่านแอปพลิเคชันโทรศัพท์เมื่อระดับ PM2.5 เกินค่าที่กำหนด

4.ประโยชน์ที่คาดว่าจะได้รับ

4.1 สามารถตรวจวัดค่าฝุ่นละอองตามตำแหน่งและเวลาที่ต้องการ
4.2 เพื่อป้องกันการรับฝุ่นอันตรายเข้าสู้ร่างกาย
4.3 เป็นแนวทางให้ผู้สนใจนำไปต่อยอดใช้งานได้

5.ความรู้ที่เกี่ยวข้อง
5.1 อุปกรณ์ที่ใช้
ESP32 คือ wifi microcontroller ที่ถูกพัฒนาต่อจาก ESP8266 โดยเพิ่ม CPU เป็น 2 core, Wi-Fi ที่เร็วขึ้น, มีขา GPIO ให้ใช้งานมากขึ้น และรองรับ Bluetooth อีกด้วย

สายต่อจัมเปอร์ (Jumpers) คือสายที่ใช้สำหรับเชื่อมต่อระหว่าง Arduino กับ Sensor หรือบอร์ดทดลอง โมดูลต่างๆ เพื่อเชื่อมต่อกับวงจร

PM2.5 Laser Dust Sensor เป็นเซนเซอร์ตรวจจับฝุ่น pm2.5 แบบเลเซอร์ โดยที่เซนเซอร์จะใช้พัดลมดูดอากาศเข้าไปในตัวเซนเซอร์ แล้วตรวจจับฝุ่นด้วยแสงเลเซอร์



5.2 Main Code

#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL6IL75pc3W"
#define BLYNK_TEMPLATE_NAME "Non"
#define BLYNK_AUTH_TOKEN "1ySKiwcDTCx_hHK9WPO2sQy4izvNXmdx"

#include "PMS.h"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
PMS pms(Serial);
PMS::DATA data;

// Your WiFi credentials.
// Set password to "" for open networks.
char auth[] = "1ySKiwcDTCx_hHK9WPO2sQy4izvNXmdx";
char ssid[] = "Non";
char pass[] = "0655060465"; 

WidgetLCD LCD(V0);

void setup()
{
  // Debug console
  Serial.begin(9600);

  Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
}

void loop()
{
  Blynk.run();
if (pms.read(data)){
    LCD.clear();
    LCD.print(5,0," PMS"); 
    LCD.print(4,1," Monitor");

    Serial.print("PM 1.0 (ug/m3): ");
    Serial.println(data.PM_AE_UG_1_0 );
    Serial.print("PM 2.5 (ug/m3): ");
    Serial.println(data.PM_AE_UG_2_5 );
    Serial.print("PM 10.0 (ug/m3): ");
    Serial.println(data.PM_AE_UG_10_0 ); 

    Blynk.virtualWrite(V1,data.PM_AE_UG_1_0 );
    Blynk.virtualWrite(V2,data.PM_AE_UG_2_5 );
    Blynk.virtualWrite(V3,data.PM_AE_UG_10_0);
  }

}


บรรทัดนี้กำหนดให้ข้อมูลของการเชื่อมต่อแสดงผลบน Serial Monitor.

#define BLYNK_PRINT Serial

กำหนดข้อมูลของแม่แบบและโทเคน (token) สำหรับ Blynk ที่คุณได้รับจาก Blynk Device Info.

#define BLYNK_TEMPLATE_ID "TMPL6IL75pc3W" และ #define BLYNK_AUTH_TOKEN "1ySKiwcDTCx_hHK9WPO2sQy4izvNXmdx"

นำเข้าไลบรารีที่จำเป็น เช่น “PMS,” “WiFi,” “WiFiClient,” และ “BlynkSimpleEsp32.”

#include "PMS.h"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>

กำหนดการเริ่มต้นของเซ็นเซอร์ PMS และตั้งค่าการสื่อสารผ่านพอร์ต Serial.

PMS pms(Serial);
PMS::DATA data;

ระบุข้อมูลของเครือข่าย WiFi ในตัวแปร ssid และ pass.

char auth[] = "1ySKiwcDTCx_hHK9WPO2sQy4izvNXmdx";
char ssid[] = "Non";
char pass[] = "0655060465";

กำหนด WidgetLCD ที่ชื่อ LCD เพื่อใช้งานกับพินเสมือน V0 ในแอป Blynk.

WidgetLCD LCD(V0);

ในฟังก์ชัน setup(), โค้ดเริ่มต้นการสื่อสารผ่าน Serial และเชื่อมต่อกับ Blynk โดยใช้โทเคน (token) และข้อมูลเครือข่าย WiFi.

void setup()
{
  // Debug console
  Serial.begin(9600);

  Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
}

ในฟังก์ชัน loop(), โค้ดเรียกใช้ฟังก์ชัน Blynk.run() เพื่อจัดการการสื่อสารกับ Blynk.

void loop()
{
  Blynk.run();

ข้อมูลจากเซ็นเซอร์ PMS ถูกอ่านด้วยฟังก์ชัน pms.read(data) และถ้าข้อมูลถูกอ่านสำเร็จ จะแสดงผลลัพธ์บนวิดเจ็ต LCD และส่งไปยังพินเสมือน V1, V2, และ V3 ของ Blynk เพื่อให้คุณสามารถดูค่าความเข้มของสารอนุภาคขนาดต่าง ๆ (PM1.0, PM2.5, และ PM10.0) ในอากาศผ่านแอป Blynk ได้ด้วยการใช้ ESP32 และเซ็นเซอร์ PMS.

if (pms.read(data)){
    LCD.clear();
    LCD.print(5,0," PMS"); 
    LCD.print(4,1," Monitor");

    Serial.print("PM 1.0 (ug/m3): ");
    Serial.println(data.PM_AE_UG_1_0 );
    Serial.print("PM 2.5 (ug/m3): ");
    Serial.println(data.PM_AE_UG_2_5 );
    Serial.print("PM 10.0 (ug/m3): ");
    Serial.println(data.PM_AE_UG_10_0 ); 

    Blynk.virtualWrite(V1,data.PM_AE_UG_1_0 );
    Blynk.virtualWrite(V2,data.PM_AE_UG_2_5 );
    Blynk.virtualWrite(V3,data.PM_AE_UG_10_0);
  }

}

6.ผลการดำเนินงาน
Diagram ของระบบ

วิธีการใช้งาน

ในการเริ่มต้นการใช้งานระบบจะแจ้งเตือนค่าฝุ่นที่แอปพลิเคชั่น blynk ต้องมีแอปพลิเคชั่น blynk ในมือถือเพื่อรับการแจ้งเตือนหลังจากนั้น ทำการจ่ายไฟให้ระบบและเชื่อมต่อ WIFI ระบบก็พร้อมทำงานได้ทันที
เมื่อตัวเซนเซอร์เปิดใช้งานแล้ว เมื่อได้รับค่าฝุ่นตัวเซนเซอร์จะใช้เลเซอร์ในการประมวณผลและแสดงผลออกมาทางแอปพลิเคชั่นที่ตั้งค่าไว้

7.สรุปผลการทดลอง
การทดลองตัววันฝุ่นโดยใช้แป้งและควันจากบุหรี่ แสดงให้เห็นว่าเมื่อละอองฝุ่นหรือควันเมื่อโดนเซนเซอร์ตรวจจับ
เซนเซอร์จะประมวณผลเป็น3ค่า คือ PM10 PM2.5 PM1 และจะแสดงค่าผ่านโปรแกรมที่ได้ตั้งไว้ ค่าจะมากหรือน้อย
ขึ้นอยู่กับชนิด และ ปริมาณของฝุ่นควัน สามารถนำไปต่อยอดได้ ทั้งการหารายได้ และ การศีกษาข้อมูลของฝุ่นตามบริเวณ หรือ พื้นที่นั้นๆ

ทดสอบPM10PM2.5PM1
ควันจากแป้ง184μg25μg12μg
ควันจากบุหรี่200μg200μg200μg
การทดสอบนี้ตั้งค่าสูงสุดไว้ที่ 200μg

8.ข้อมูลอ้างอิง
8.1 ข้อมูลฝุ่น PM2.5 https://www.mnre.go.th/om/th/news/detail/31459
8.2 เซนเซอร์ PMS3003 และ ESP32 https://www.cybertice.com/article/376/%E0%B8%AA%E0%B8%AD%E0%B8%99%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%87%E0%B8%B2%E0%B8%99-esp32-pm2-5-%E0%B9%80%E0%B8%8B%E0%B9%87%E0%B8%99%E0%B9%80%E0%B8%8B%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%95%E0%B8%A3%E0%B8%A7%E0%B8%88%E0%B8%88%E0%B8%B1%E0%B8%9A%E0%B8%9D%E0%B8%B8%E0%B9%88%E0%B8%99%E0%B8%A5%E0%B8%B0%E0%B8%AD%E0%B8%AD%E0%B8%87-%E0%B8%A7%E0%B8%B1%E0%B8%94%E0%B8%84%E0%B8%B8%E0%B8%93%E0%B8%A0%E0%B8%B2%E0%B8%9E%E0%B8%AD%E0%B8%B2%E0%B8%81%E0%B8%B2%E0%B8%A8-laser-dust-sensor-pms3003
8.3 การใช้งานแอป Blynk https://www.youtube.com/watch?si=3bj41DWQgCfnedvi&v=oL0jiShVStU&feature=youtu.be


วิดีโอการใช้งานเซนเซอร์วัดฝุ่น PM10 PM2.5 และ PM1

You may also like...

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *