บทความนี้ กล่าวถึงขั้นตอนการใช้งาน เซ็นเซอร์วัดฝุ่น PM2.5 กับ Arduino UNO โดยใช้ เซ็นเซอร์วัดฝุ่น PM2.5 Keyestudio GP2Y1014AU ของ Sharp เซ็นเซอร์ฝุ่นนี้มีขนาดเล็กและสามารถตรวจจับฝุ่นละอองและอนุภาคควันในสิ่งแวดล้อมได้ ใช้พลังงานน้อยมากในขณะที่ทำงานจึงเหมาะอย่างยิ่งสำหรับระบบตรวจสอบที่เปิดตลอดเวลา
รายการอุปกรณ์
- 1. Arduino UNO R3
- 2. Sensor Shield V 5.0
- 3. เซ็นเซอร์วัดฝุ่น PM2.5 Keyestudio GP2Y1014AU
- 4. Jumper (F2F) cable wire 30cm Female to Female
ขั้นตอนการทํางาน
1 : ติดตั้งโปรแกรม Arduino IDE
สำหรับการเขียนโปรแกรมของ Arduino IDE นั้นจะใช้ภาษา C/C++ ซึ่งเป็นรูปแบบภาษาซีประยุกต์แบบหนึ่ง ที่มีโครงสร้างการทำงานของตัวภาษาโดยรวม คล้ายกับ ภาษาซีมาตรฐาน (ANSI-C) ทั่วๆไป เพียงแต่ได้มีการปรับปรุงเพื่อลดความยุ่งยากในการใช้งานลง เพื่อให้ผู้ใช้สามารถใช้งาน เขียนโปรแกรมได้ง่าย และสะดวกมากกว่าเขียนภาษาซี แบบมาตรฐาน
Arduino integrated development environment หรือเรียกสั้นๆว่า โปรแกรม Arduino IDE เป็นโปรแกรมที่ “แจกฟรี” ภายใต้เงื่อนไขในการใช้งานลักษณะ Open source ซึ่ง Arduino IDE จะทำหน้าที่ ติดต่อ ระหว่าง คอมพิวเตอร์ ของเรา (Windows, Mac OS X และ Linux) กับ บอร์ด Arduino ซึ่งโปรแกรมนี้ออกแบบให้ง่ายต่อการเขียนโค้ดและอัปโหลดโค้ดที่เราเขียน เข้าสู่ บอร์ด Arduino
โดย Download ตัวติดตั้งได้จาก
https://www.arduino.cc/en/Main/Software
เลือก Windows Installer, for Windows 7 and up
คลิกเลือก JUST DOWNLOAD (หากต้องการร่วมบริจาคช่วยการพัฒนา Arduino Software สามารถกด CONTRIBUTE & DOWNLOAD)
เมื่อดาวน์โหลดเสร็จแล้ว ให้ติดตั้งตามที่โปรแกรมแนะนำ
2 : เชื่อมต่อ เซ็นเซอร์วัดฝุ่น PM2.5 เข้ากับ Arduino UNO
ประกอบ Sensor Shield V 5.0 เข้ากับ Arduino UNO
เชื่อมต่อสายระหว่าง เซ็นเซอร์วัดฝุ่น PM2.5 กับ Sensor Shield ตามรูปด้านล่าง
3 : อัพโหลดโค้ดให้กับ Arduino UNO
เชื่อมต่อสาย USB จาก คอมพิวเตอร์ ไปที่บอร์ด Arduino UNO แล้ว เปิดโปรแกรม Arduino IDE เขียนโปรแกรม หรือ Sketch ตามโค้ดด้านล่างนี้
int measurePin = 0; //Connect dust sensor to Arduino A0 pin
int ledPower = 2; //Connect led driver pins of dust sensor to Arduino D2
int samplingTime = 280;
int deltaTime = 40;
int sleepTime = 9680;
float voMeasured = 0;
float calcVoltage = 0;
float dustDensity = 0;
void setup() {
Serial.begin(9600);
pinMode(ledPower, OUTPUT);
Serial.print("****************** keyestudio ******************\n");
}
void loop() {
digitalWrite(ledPower, LOW); // power on the LED
delayMicroseconds(samplingTime);
voMeasured = analogRead(measurePin); // read the dust value
delayMicroseconds(deltaTime);
digitalWrite(ledPower, HIGH); // turn the LED off
delayMicroseconds(sleepTime);
// 0 - 5V mapped to 0 - 1023 integer values
// recover voltage
calcVoltage = voMeasured * (5.0 / 1024.0);
dustDensity = 170 * calcVoltage - 0.1;
Serial.print("The dust concentration is: ");
Serial.print(dustDensity);
Serial.print(" ug/m3\n");
delay(1000);
}
ไปที่ Tools -> Board -> Arduino AVR Boards -> แล้วเลือกให้ตรงกับบอร์ดที่ใช้งาน สำหรับ Arduino UNO ให้เลือกบอร์ด Arduino Uno
เลือก Port โดยไปที่ Tools -> Port -> COM4
(โดย COM4 แต่ละเครื่องจะไม่เหมือนกัน ให้เลือกตามที่ปรากฎ)
คลิกที่ Upload
รอจนกระทั่งขึ้น Done uploading. ที่แถบด้านล่าง แสดงว่าเราอัพโหลดโปรแกรมลงบอร์ดได้สำเร็จแล้ว
4 : ผลลัพธ์การทำงาน
เปิดหน้าต่าง Serial Monitor โดยไปที่ Tools -> Serial Monitor
ที่มุมขวาล่าง ของ Serial Monitor เลือกเป็น 9600 baud คือ ตั้งค่าความเร็วในการรับ-ส่งข้อมูล คือ 9600 ตามที่เราเขียนโค้ดไว้
ที่ Serial Monitor แสดงค่าฝุ่น PM2.5 แสดงว่า เซ็นเซอร์วัดฝุ่น PM2.5 พร้อมใช้งานแล้ว
ข้อมูลเปรียบเทียบกับคุณภาพอากาศ:
3000 + = Very Bad
1050-3000 = Bad
300-1050 = Ordinary
150-300 = Good
75-150 = Very Good
0-75 = Tiptop
นี่คือแผนภูมิเปรียบเทียบความเข้มข้นของฝุ่น
ตรวจสอบได้ไหมว่าค่าความเข้มข้นของฝุ่นอยู่ในระดับใด?
ในการทดสอบของเราตอนนี้ค่าที่วัดได้แสดงให้เห็นว่าคุณภาพอากาศดีมาก (Very Good)