เซ็นเซอร์วัดฝุ่น PMS3003 PM2.5 Air Quality Sensor เป็นเซ็นเซอร์ที่ใช้ในการตรวจจับความเข้มข้นของอนุภาคฝุ่นในอากาศ โดยเฉพาะ PM2.5 (Particulate Matter ขนาด 2.5 ไมครอนหรือน้อยกว่า) ซึ่งมีผลกระทบต่อสุขภาพหากสูดเข้าไปในปริมาณมาก
1.ต่ออุปกรณ์
.png?alt=media&token=f7ab23df-b077-4a49-9f70-0c7e7faa4426)
SMD to DIP > Arduino UNO
• VCC > 5V
• GND > GND
• RXD > Pin 3
• TXD > Pin 4
2.ลงโปรแกรม
Copy โค้ดด้านล่าง
Arduino
1#include <SoftwareSerial.h>
2
3// กำหนดขาเชื่อมต่อสำหรับการสื่อสาร
4SoftwareSerial pmsSerial(4, 3); // (RX, TX)
5
6// สร้าง buffer สำหรับเก็บข้อมูลที่อ่านได้
7uint8_t buf[32];
8
9void setup() {
10 // เริ่มการสื่อสาร Serial กับคอมพิวเตอร์
11 Serial.begin(9600);
12
13 // เริ่มการสื่อสารกับเซ็นเซอร์ PMS3003
14 pmsSerial.begin(9600);
15}
16
17void loop() {
18 // ตรวจสอบว่ามีข้อมูลจากเซ็นเซอร์หรือไม่
19 if (pmsSerial.available()) {
20 // อ่านข้อมูลเข้ามาใน buffer
21 pmsSerial.readBytes(buf, 32);
22
23 // ตรวจสอบว่าเป็นแพ็คเกจข้อมูลที่ถูกต้องหรือไม่
24 if (buf[0] == 0x42 && buf[1] == 0x4d) {
25 // คำนวณค่าฝุ่น PM1.0, PM2.5, PM10
26 int pm1_0 = buf[10] * 256 + buf[11];
27 int pm2_5 = buf[12] * 256 + buf[13];
28 int pm10 = buf[14] * 256 + buf[15];
29
30 // แสดงผลค่าฝุ่นทาง Serial Monitor
31 Serial.print("PM1.0: ");
32 Serial.print(pm1_0);
33 Serial.print(" µg/m³, ");
34
35 Serial.print("PM2.5: ");
36 Serial.print(pm2_5);
37 Serial.print(" µg/m³, ");
38
39 Serial.print("PM10: ");
40 Serial.print(pm10);
41 Serial.println(" µg/m³");
42 }
43 }
44
45 // หน่วงเวลาเพื่อให้เกิดความเสถียร
46 delay(1000);
47}
481#include <SoftwareSerial.h>
2
3// กำหนดขาเชื่อมต่อสำหรับการสื่อสาร
4SoftwareSerial pmsSerial(4, 3); // (RX, TX)
5
6// สร้าง buffer สำหรับเก็บข้อมูลที่อ่านได้
7uint8_t buf[32];
8
9void setup() {
10 // เริ่มการสื่อสาร Serial กับคอมพิวเตอร์
11 Serial.begin(9600);
12
13 // เริ่มการสื่อสารกับเซ็นเซอร์ PMS3003
14 pmsSerial.begin(9600);
15}
16
17void loop() {
18 // ตรวจสอบว่ามีข้อมูลจากเซ็นเซอร์หรือไม่
19 if (pmsSerial.available()) {
20 // อ่านข้อมูลเข้ามาใน buffer
21 pmsSerial.readBytes(buf, 32);
22
23 // ตรวจสอบว่าเป็นแพ็คเกจข้อมูลที่ถูกต้องหรือไม่
24 if (buf[0] == 0x42 && buf[1] == 0x4d) {
25 // คำนวณค่าฝุ่น PM1.0, PM2.5, PM10
26 int pm1_0 = buf[10] * 256 + buf[11];
27 int pm2_5 = buf[12] * 256 + buf[13];
28 int pm10 = buf[14] * 256 + buf[15];
29
30 // แสดงผลค่าฝุ่นทาง Serial Monitor
31 Serial.print("PM1.0: ");
32 Serial.print(pm1_0);
33 Serial.print(" µg/m³, ");
34
35 Serial.print("PM2.5: ");
36 Serial.print(pm2_5);
37 Serial.print(" µg/m³, ");
38
39 Serial.print("PM10: ");
40 Serial.print(pm10);
41 Serial.println(" µg/m³");
42 }
43 }
44
45 // หน่วงเวลาเพื่อให้เกิดความเสถียร
46 delay(1000);
47}
48
3.ผลลัพธ์
serial monitor จะแสดงความเข้มข้นของฝุ่นในหน่วย µg/m³ สำหรับ PM1.0, PM2.5, และ PM10 โดยข้อมูลนี้สามารถนำไปใช้ในการประเมินคุณภาพอากาศได้
