กลับไปหน้ารวมไฟล์
air-quality-cheker-1ed19f.md

การตรวจวัดคุณภาพอากาศ

การตรวจสอบคุณภาพอากาศโดยการวัดมลพิษจากปริมาณก๊าซที่อยู่ในอากาศ

โค้ดสำหรับโปรเจกต์:

/* ระบบตรวจวัดมลพิษทางอากาศ

โดยใช้ Arduino และ MQ135 Air Quality Sensor

www.Electroduino.com

*/

#include "MQ135.h"

//ไลบรารีสำหรับจอแสดงผล OLED

#include

#include

#include

#include

#define SCREEN_WIDTH 128 // ความกว้างของจอแสดงผล OLED หน่วยเป็นพิกเซล

#define SCREEN_HEIGHT 64 // ความสูงของจอแสดงผล OLED หน่วยเป็นพิกเซล

#define OLED_RESET 4

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

//อินพุตและเอาต์พุต

int RedLed = 9;

int GreenLed = 8;

int Buzzer = 7;

void setup()

{

pinMode(RedLed, OUTPUT); // กำหนดค่าขา RedLed แบบดิจิทัลเป็นเอาต์พุต

pinMode(GreenLed, OUTPUT); // กำหนดค่าขา GreenLed แบบดิจิทัลเป็นเอาต์พุต

pinMode(Buzzer, OUTPUT); // กำหนดค่าขา Buzzer แบบดิจิทัลเป็นเอาต์พุต

// เริ่มการสื่อสารอนุกรมระหว่าง Arduino และคอมพิวเตอร์ของคุณ

Serial.begin(9600);

//เริ่มต้นด้วยแอดเดรส I2C 0x3C (128x64)

display.begin(SSD1306_SWITCHCAPVCC, 0x3C);

display.clearDisplay();

delay(10);

// แสดงข้อความบนจอ

display.clearDisplay();

display.setTextSize(1);

display.setTextColor(WHITE);

display.setCursor(0, 0);

display.println("ELECTRODUIN0"); // แสดงข้อความ

display.display();

display.setTextSize(1);

display.setTextColor(WHITE);

display.setCursor(0, 20);

display.println("Air Pollution");

display.display();

display.setTextSize(1);

display.setTextColor(WHITE);

display.setCursor(0, 35);

display.println(" Monitoring");

display.display();

delay(2000);

}

void loop()

{

// อ่านค่าจากเซ็นเซอร์

MQ135 gasSensor = MQ135(A0);

float air_quality = gasSensor.getPPM();

// แสดงค่าจากเซ็นเซอร์บนหน้าต่าง Serial Monitor

Serial.print("Air Quality: ");

Serial.print(air_quality);

Serial.println(" PPM");

Serial.println();

//แสดงค่าจากเซ็นเซอร์หรือดัชนีคุณภาพอากาศบนจอแสดงผล OLED

display.clearDisplay();

display.setCursor(0, 0); //ตำแหน่งบนจอแสดงผล OLED

display.setTextSize(1);

display.setTextColor(WHITE);

display.println("Air Quality Index");

display.setCursor(0, 20); //ตำแหน่งบนจอแสดงผล OLED

display.setTextSize(2);

display.setTextColor(WHITE);

display.print(air_quality);

display.setTextSize(1);

display.setTextColor(WHITE);

display.println(" PPM");

display.display();

// เมื่อค่าคุณภาพอากาศน้อยกว่า 1000 PPM

if (air_quality<=1000)

{

digitalWrite(GreenLed, HIGH); // เปิดไฟ Green LED

digitalWrite(RedLed, LOW); // ปิดไฟ Red LED

noTone(Buzzer); // ปิด Buzzer

// แสดงข้อความบนจอแสดงผล OLED

display.setTextSize(2);

display.setTextColor(WHITE);

display.setCursor(0, 45);

display.println("Fresh Air"); // ข้อความ

display.display();

delay(2000);

}

// เมื่อค่าคุณภาพอากาศมากกว่า 1000 PPM และน้อยกว่า 2000 PPM

elseif( air_quality>=1000 && air_quality<=2000 )

{

digitalWrite(GreenLed, LOW); // ปิดไฟ Green LED

digitalWrite(RedLed, HIGH ); // เปิดไฟ Red LED

noTone(Buzzer); // ปิด Buzzer

// แสดงข้อความบนจอแสดงผล OLED

display.setTextSize(2);

display.setTextColor(WHITE);

display.setCursor(0, 45);

display.println(" Poor Air"); // ข้อความ

display.display();

delay(2000);

}

// เมื่อค่าคุณภาพอากาศมากกว่า 2000 PPM

elseif (air_quality>=2000 )

{

digitalWrite(GreenLed, LOW); // ปิดไฟ Green LED

digitalWrite(RedLed, HIGH); // เปิดไฟ Red LED

tone(Buzzer, 1000, 200); // เปิด Buzzer

// แสดงข้อความบนจอแสดงผล OLED

display.setTextSize(2);

display.setTextColor(WHITE);

display.setCursor(0, 45);

display.println("Danger!!"); // ข้อความ

display.display();

delay(2000);

}

}

รายละเอียดทางเทคนิคเพิ่มเติม

การวิเคราะห์สารเคมีแบบพกพา

โปรเจกต์นี้จัดหาเครื่องมือที่ใช้งานง่ายสำหรับการระบุมลพิษทางอากาศภายในอาคารและ VOCs (Volatile Organic Compounds)

  • Multi-Pollutant Sensing: ผนวก MQ-135 sensor (สำหรับ CO2, Alcohol, ควัน) และ SDS011 sensor (สำหรับฝุ่นละออง PM2.5/PM10) โดย Arduino จะเก็บตัวอย่างข้อมูลอินพุตเหล่านี้ทุกๆ 2 วินาที
  • Health-Index Dashboard: แสดง "คะแนนคุณภาพอากาศ" ที่คำนวณได้ (ตั้งแต่ 0 ถึง 500) บน I2C OLED ที่มีคอนทราสต์สูง โดยใช้การแจ้งเตือนแบบรหัสสีเพื่อระบุสภาวะที่ปลอดภัยเทียบกับสภาวะอันตราย

การบันทึกข้อมูล

  • Calibration Routine: มีขั้นตอน "อากาศบริสุทธิ์" ในซอฟต์แวร์ตอนเริ่มต้น เพื่อให้แน่ใจว่า MQ sensors วัดการเปลี่ยนแปลงสัมพัทธ์ได้อย่างแม่นยำ

ข้อมูล Frontmatter ดั้งเดิม

title: "Air Quality Cheker"
description: "Checking quality of air using MQ135 sensor and arduino nano."
author: "ashtavinayak_bali"
category: ""
tags:
  - "ardunionano"
  - "ashtavinayaka_bali"
  - "air"
  - "monitoring"
views: 2372
likes: 2
price: 2450
difficulty: "Intermediate"
components:
  - "1x 5 mm LED: Red"
  - "1x Buzzer"
  - "1x Arduino Nano R3"
  - "2x Resistor 220 ohm"
  - "1x Graphic OLED, 128 x 64"
  - "1x Breadboard (generic)"
  - "1x 5 mm LED: Yellow"
  - "1x MQ135 Gas Sensor"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles: []
documentationLinks: []
passwordHash: "7417869c9840f2a19d5b7873ad93244f5ea58591ff92ca1e6a24f60b5018a5ba"
encryptedPayload: "U2FsdGVkX1+N50cNVqrTAOs9BSrGFPijJpemxEVq6NVwImuSfSyU8bFjXgMwNppkUVxg5QYGsIF/7Q2P0VUGcihEGSbuo0tC0OuOGYy97sM="
seoDescription: "Monitor Air Quality using MQ135 sensor and arduino nano. Simple DIY air quality monitoring project for makers."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/air-quality-cheker-1ed19f_cover.jpg"
lang: "th"