이 프로젝트는 MQ135 공기질 센서를 활용해 실내 공기 질을 모니터링하는 간단한 시스템을 구축합니다. 초보자도 따라 할 수 있는 하드웨어 연결과 소프트웨어 코딩 과정을 통해 환경 센서의 기본을 익혀보세요!"
목차
[아두이노][센서] 공기질을 한눈에! MQ135와 LCD로 환경 모니터링 프로젝트 만들기
MQ135 공기질 센서는 실내 공기 중 다양한 유해 가스(CO2, NH3, 알코올 등)를 감지하여 공기질을 정량적으로 평가할 수 있는 다목적 센서입니다. 아두이노와 결합하여 데이터를 수집하고 LCD를 통해 실시간으로 공기질 상태와 PPM 값을 시각적으로 확인할 수 있습니다.
이 프로젝트는 초보자도 손쉽게 따라할 수 있는 구조로, 공기질 데이터를 측정, 처리, 출력하는 과정을 이해하는 데 도움을 줍니다. 센서 예열, 데이터 평균화, PPM 값 변환 및 출력 과정이 포함되어, 전자회로와 프로그래밍의 기초 학습에 적합합니다.
또한, 프로젝트는 데이터 로깅, IoT 통합, 경고 시스템 등으로 확장 가능하며, 이를 통해 환경 모니터링 및 공기질 관리의 응용 가능성을 넓힐 수 있습니다. MQ135는 가격 대비 높은 효율을 제공하며, DIY 프로젝트에서부터 상업적 활용까지 다양한 분야에 적용 가능합니다.
1. MQ135 공기질 센서란?
MQ135 공기질 센서는 공기 중의 다양한 유해 가스를 감지하는 데 사용되는 다목적 센서입니다. 이 센서는 이산화탄소(CO2), 암모니아(NH3), 알코올, 벤젠, 연기 등의 가스를 탐지하며, 환경 모니터링 및 공기질 관리에 널리 활용됩니다. 센서의 내부는 주석 산화물(SnO2) 기반의 감지층과 전극, 히터 코일로 구성되어 있으며, 유해 가스 농도에 따라 감지층의 저항이 변합니다. 주요 특징으로는 높은 민감도와 넓은 탐지 범위가 있으며, 간단한 전기 회로를 통해 쉽게 작동시킬 수 있습니다. 이 센서는 공기 정화 장치, 가스 누출 경보 시스템, 실내 공기질 모니터링 등에 사용됩니다. MQ135는 5V 전원을 사용하며, 아날로그 신호를 출력하여 아두이노와 같은 컨트롤러가 데이터를 수집하고 처리할 수 있도록 돕습니다. 특히 가스 농도를 PPM(Parts Per Million) 단위로 변환하여 표시할 수 있어, 직관적인 환경 분석이 가능합니다. 장시간의 안정성과 높은 내구성을 바탕으로 초보자와 전문가 모두에게 적합한 센서로 평가받고 있습니다.
MQ135는 다용도의 공기질 감지 센서로, 여러 유해 가스 및 환경 요인을 감지할 수 있는 가스 센서입니다. 이 센서는 주요한 금속 산화물 반도체 기술(MOS)을 기반으로 작동하며, 다음과 같은 특징을 제공합니다:
- 탐지 가능 가스:
- 이산화탄소(CO2)
- 암모니아(NH3)
- 알코올
- 벤젠
- 연기 및 기타 유해 가스
- 주요 특징:
- 넓은 탐지 범위: 다양한 가스를 광범위한 농도로 탐지 가능
- 높은 민감도: 빠른 반응 속도와 신뢰할 수 있는 감지
- 장기적인 안정성: 내구성이 뛰어나 장기간 사용 가능
- 간단한 구동 회로: 간단한 전기 회로로 손쉽게 구동 가능
- 응용 분야:
- 공기질 모니터링: 사무실, 공공 건물의 공기질 관리 장비
- 환경 측정 기기: 온실가스, 가스 누출 경보 장치 등
MQ135 센서는 공기 중에서 특정 가스를 감지하면 내부의 전기적 저항이 변화하며, 이를 기반으로 출력 신호를 생성합니다. 해당 신호는 아날로그 형태로 출력되어, 아두이노와 같은 마이크로컨트롤러에서 쉽게 읽을 수 있습니다.
2. MQ135 공기질 센서의 동작 원리
MQ135는 금속 산화물 반도체(MOS) 기반 기술로 작동하며, 특정 가스와 반응할 때 감지층의 전기 저항이 변하는 특성을 이용합니다. 센서 내부에는 히터 코일이 내장되어 작동에 필요한 온도를 유지하며, 이를 통해 가스 반응성을 극대화합니다. 공기 중 가스가 감지층과 반응하면 전기 저항이 감소하고, 이 변화를 아날로그 신호로 출력합니다. 출력 신호는 아날로그 입력 핀에서 읽을 수 있으며, 로드 저항(RL)을 통해 감도와 신호 범위를 조정할 수 있습니다. MQ135는 CO2를 포함한 다양한 가스를 탐지할 수 있으며, 특히 암모니아(NH3)는 10300ppm, 벤젠은 101000ppm까지 감지 가능합니다. 정확한 측정을 위해 센서는 최소 24시간 이상의 예열이 필요하며, 예열 후 안정적인 출력 신호를 제공합니다. 최적의 작동 환경은 -10°C~45°C의 온도와 최대 95%의 상대 습도로 설정되어 있습니다. 센서는 전원이 켜진 후 가스 농도에 따라 변동하는 값을 출력하며, 이를 기반으로 공기질을 평가하고 적절한 대처 방안을 설계할 수 있습니다. MQ135는 이러한 기술적 특성을 바탕으로 효율적인 공기질 관리 솔루션을 제공합니다.
센서가 감지하는 신호는 아날로그 형태로 출력되며, 이를 아두이노의 아날로그 핀에서 읽어들여 공기 중 특정 가스의 농도를 계산할 수 있습니다. 이 계산 값은 다양한 환경에서 유용하게 활용됩니다.
MQ135는 주석 산화물(SnO2)을 감지 물질로 사용하는 센서입니다. 이 물질은 깨끗한 공기에서 높은 전기 저항을 가지지만, 특정 가스가 존재할 경우 화학 반응으로 인해 저항이 감소합니다. 이 저항의 변화는 가스 농도에 비례하며, 이를 측정하여 PPM(Parts Per Million) 단위의 농도로 변환할 수 있습니다.
1. 센서 구조 및 구성
- 금속 산화물 감지층: 가스 농도를 탐지하는 핵심 물질.
- 히터 코일: 센서를 작동 온도로 유지하여 반응성을 높임.
- 전극 및 핀: 신호 출력 및 전기 공급.
2. 전기적 특성
- 작동 전압: 5V DC
- 가스 농도 감지 범위:
- NH3(암모니아): 10ppm ~ 300ppm
- 알코올: 10ppm ~ 300ppm
- 벤젠: 10ppm ~ 1000ppm
- CO2: 감지 가능 (비례적 출력 값)
3. 감지 회로
센서의 출력 핀은 가변 저항을 통해 신호를 전달하며, 사용자는 로드 저항(RL)을 조정하여 감지 민감도를 설정할 수 있습니다. 추천 로드 저항 값은 20kΩ입니다.
4. 예열 시간
MQ135는 정확한 감지를 위해 최소 24시간 이상의 예열 시간이 필요합니다. 예열 후 센서의 저항 값이 안정화되며, 일관된 측정이 가능합니다.
5. 환경 조건
- 작동 온도: -10°C ~ 45°C
- 습도: 최대 95% RH
- 산소 농도: 최소 2% 이상 (감지 성능에 영향을 미침)
MQ135 공기질 센서의 동작 원리: 구체적 예시와 시각적 설명
MQ135는 금속 산화물 반도체(MOS)를 기반으로 작동하며, 특정 가스와의 화학 반응에 따라 감지층의 전기 저항이 변화합니다.
이 센서의 감지층인 주석 산화물(SnO2)은 깨끗한 공기에서는 높은 저항을 가지지만, 특정 가스가 감지층과 접촉하면 가스 분자가 전자를 방출하거나 흡수하면서 저항이 감소합니다. 이 변화는 출력 전압에 영향을 미치며, 이를 통해 공기 중 가스 농도를 측정할 수 있습니다.
동작 원리 예시:
- 깨끗한 공기 상태
- SnO2 감지층은 높은 전기 저항 상태를 유지합니다.
- 출력 신호는 낮은 전압 수준으로 유지되며, 이는 아날로그 핀으로 전달됩니다.
- 유해 가스 존재 시
- 가스(예: CO2, NH3 등)가 감지층과 접촉합니다.
- 가스 분자가 감지층에서 전자를 흡수하거나 방출하여 전기 전도성이 증가합니다.
- 감지층의 저항 감소로 인해 출력 전압이 증가합니다.
- 출력 데이터 처리
- 아두이노는 출력 전압을 읽고, 이 값을 PPM 단위로 변환하여 공기 중 가스 농도를 계산합니다.
- 예:
- 깨끗한 공기(400ppm): 출력 값 약 0.6V
- 높은 CO2 농도(2000ppm): 출력 값 약 3.2V
그래프: MQ135의 가스 농도에 따른 저항 변화와 출력 전압
아래 그래프는 가스 농도(ppm)에 따른 MQ135 감지층의 저항 변화와 출력 전압을 나타냅니다.
설명:
- 저항 곡선: 가스 농도가 증가할수록 센서 저항이 기하급수적으로 감소합니다.
- 전압 곡선: 출력 전압은 가스 농도 증가에 따라 점진적으로 상승합니다.
이 그래프는 MQ135가 가스 농도를 감지하고 저항과 전압 변화를 통해 신호를 생성하는 과정을 직관적으로 보여줍니다.
위 그래프는 MQ135 센서의 동작을 시각적으로 보여줍니다.
- Sensor Resistance (kΩ): 가스 농도가 증가함에 따라 센서의 저항이 기하급수적으로 감소합니다. 이는 센서의 감지층이 유해 가스에 반응하여 전기 전도성이 증가하기 때문입니다.
- Output Voltage (V): 저항 감소에 따라 출력 전압이 점진적으로 상승합니다. 이 전압 값은 아두이노에서 읽을 수 있으며, 공기 중의 가스 농도를 나타내는 지표로 사용됩니다.
이 그래프는 MQ135 센서의 작동 원리를 직관적으로 이해하는 데 도움을 줍니다.
3. MQ135 공기질 센서 구입하기
MQ135 공기질 센서는 국내외 다양한 온라인 쇼핑몰에서 구매할 수 있습니다. 국내에서는 다나와, 디바이스마트, 인투피온 등에서 판매되며, 가격은 약 1,500원에서 9,900원까지 다양합니다. 해외 구매를 고려한다면 알리익스프레스 등에서 저렴한 가격에 구매할 수 있으나, 배송 기간이 길어질 수 있으므로 주의해야 합니다. 구매 시에는 판매자의 신뢰도와 제품의 품질을 확인하는 것이 중요합니다. 또한, 배송비와 배송 기간을 고려하여 구매 계획을 세우는 것이 좋습니다. 초보자라면 국내 신뢰할 수 있는 판매처를 통해 구매하는 것을 추천합니다.
4. MQ135 공기질 센서 하드웨어 연결하기
MQ135 공기질 센서를 아두이노와 연결할 때는 올바른 핀 배치를 통해 정확한 데이터를 읽어야 합니다. 아두이노 LCD 쉴드의 A1 핀을 MQ135 센서의 아날로그 출력(AOUT) 핀에 연결하면 충돌 없이 아날로그 신호를 읽을 수 있습니다. 센서에 안정적인 전원을 공급하기 위해 LCD 쉴드의 5V 핀을 MQ135의 VCC 핀에, GND 핀을 MQ135의 GND 핀에 연결합니다. LCD 쉴드와 MQ135는 공통적으로 아두이노와 접지를 공유하며, 이를 통해 전기적 기준을 맞춥니다. 잘못 연결된 경우 센서가 동작하지 않거나 잘못된 데이터를 출력할 수 있으므로 핀 연결을 정확히 확인하세요. MQ135의 신호를 안정적으로 읽기 위해 데이터 시트에서 추천하는 로드 저항(RL)을 20kΩ으로 설정하는 것이 권장됩니다. 또한, 센서의 A1 핀과 LCD 쉴드의 키패드 입력 기능이 겹치지 않도록 확인이 필요합니다. 이렇게 연결하면 MQ135의 데이터를 실시간으로 읽어 LCD에 출력하는 시스템을 효과적으로 구현할 수 있습니다.
아두이노 LCD 키패드 쉴드의 아날로그 입력 A0 핀은 일반적으로 키패드 입력을 감지하는 데 사용됩니다. 따라서, MQ135 센서를 A0 핀에 연결하면 키패드 기능과 충돌이 발생하여 예상치 못한 동작이 나타날 수 있습니다. 이러한 문제를 방지하기 위해 MQ135 센서를 LCD 쉴드의 사용 가능한 다른 아날로그 핀(A1~A5)에 연결하는 것이 좋습니다.
하드웨어 연결 방법:
- 아두이노 LCD 쉴드의 A1 핀 → MQ135 센서의 아날로그 출력(AOUT) 핀
- 아두이노 LCD 쉴드의 5V 핀 → MQ135 센서의 VCC 핀
- 아두이노 LCD 쉴드의 GND 핀 → MQ135 센서의 GND 핀
연결 이유:
- 아날로그 신호 입력: MQ135 센서는 공기 중의 가스 농도에 따라 아날로그 전압을 출력합니다. 이 신호를 아두이노에서 읽기 위해 아날로그 입력 핀에 연결해야 합니다. LCD 쉴드의 A1 핀은 이러한 아날로그 신호를 수집하는 데 적합합니다.
- 전원 공급: MQ135 센서는 5V 전원을 필요로 하며, 아두이노 LCD 쉴드의 5V 핀을 통해 안정적인 전원을 공급할 수 있습니다. 또한, GND 핀을 통해 공통 접지를 설정하여 센서와 아두이노 간의 전기적 기준을 맞춥니다.
이러한 연결 방식을 통해 아두이노는 MQ135 센서로부터 정확한 공기질 데이터를 수집하고, LCD 쉴드를 통해 실시간으로 표시할 수 있습니다.
참고: MQ135의 기본 예열 시간은 24시간 이상이므로 초기 연결 후 충분히 대기해야 정확한 데이터를 얻을 수 있습니다.
5. MQ135 공기질 센서 소프트웨어 코딩하기
센서를 제어하기 위한 소프트웨어 준비 과정은 다음과 같은 단계로 이루어집니다
1. 아두이노
01 연결
- 아두이노와 PC 연결
- 아두이노 IDE 실행
- 메뉴 → 툴 → 보드:아두이노 UNO 확인
- 메뉴 → 스케치 → 확인/컴파일
02 컴파일 확인
스케치>확인/컴파일(CTRL+R) 를 선택해서 컴파일을 진행합니다.
03 아두이노 우노 업로드
컴파일이 이상없이 완료되면 스케치>업로드(CTRL+U) 를 선택해서 컴파일 파일을 업로드 합니다.
04 동작 확인
센서의 동작을 확인할 수 있습니다.
2. 코드 설명
이 코드는 센서 데이터를 읽고 처리한 후 LCD에 출력하는 전체 작업을 모듈화하여 구성했습니다. 초기화와 센서 데이터 처리, 출력의 역할이 명확히 분리되어 유지보수가 용이하며, 공기질 상태를 직관적으로 제공하여 실내 환경 개선에 유용한 정보를 제공합니다.
#include <Wire.h> // I2C 통신 라이브러리
#include <LiquidCrystal.h> // LCD 제어 라이브러리
// LCD 핀 설정 (RS, E, D4, D5, D6, D7)
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
// 핀 번호 및 상수 설정
const int MQ135_PIN = A1; // MQ135 센서가 연결된 아날로그 핀
const int SAMPLE_COUNT = 10; // 평균화를 위한 샘플 개수
const int SENSOR_PREHEAT_TIME = 60000; // 센서 예열 시간(ms)
const int DELAY_BETWEEN_SAMPLES = 50; // 샘플 간 지연(ms)
// 이전 출력값 저장 변수
int lastPPM = -1; // 이전 PPM 값 초기화 (-1은 초기 상태)
void setup() {
lcd.begin(16, 2); // LCD 초기화 (16x2 크기)
lcd.print("Initializing..."); // 초기화 메시지 출력
delay(SENSOR_PREHEAT_TIME); // 센서 예열 시간 대기
lcd.clear();
lcd.print("Sensor Ready!"); // 초기화 완료 메시지
delay(2000);
}
void loop() {
int analogValue = readSensor(MQ135_PIN); // 센서 데이터 읽기
int airQualityPPM = calculatePPM(analogValue); // PPM 값으로 변환
if (airQualityPPM != lastPPM) { // 이전 값과 비교하여 변경 시 갱신
displayAirQuality(airQualityPPM); // LCD에 출력
lastPPM = airQualityPPM; // 이전 값 업데이트
}
delay(1000); // 1초 간격으로 업데이트
}
// ------------------- 센서 데이터 읽기 --------------------
int readSensor(int pin) {
float totalValue = 0; // 샘플 값 누적 변수
for (int i = 0; i < SAMPLE_COUNT; i++) {
totalValue += analogRead(pin); // 센서 값 읽기
delay(DELAY_BETWEEN_SAMPLES); // 샘플 간 지연
}
return totalValue / SAMPLE_COUNT; // 평균 값 반환
}
// ------------------- PPM 계산 함수 ---------------------
int calculatePPM(int analogValue) {
// 아날로그 값을 PPM 범위로 매핑 (임시 값, 이후 실험적 보정 필요)
// MQ135 데이터시트 또는 교정 데이터를 기반으로 매핑 조정
float correctedPPM = max((analogValue - 200) * 5000 / 823, 0); // 보정된 공식
return static_cast<int>(correctedPPM); // 정수형으로 반환
}
// ------------------- LCD 출력 함수 ---------------------
void displayAirQuality(int ppm) {
lcd.setCursor(0, 0); // 첫 번째 줄 첫 칸
if (ppm <= 400) {
lcd.print("Air: Excellent "); // 공기질 상태 출력
} else if (ppm <= 1000) {
lcd.print("Air: Good ");
} else if (ppm <= 2000) {
lcd.print("Air: Moderate ");
} else if (ppm <= 5000) {
lcd.print("Air: Poor ");
} else {
lcd.print("Air: Dangerous ");
}
lcd.setCursor(0, 1); // 두 번째 줄 첫 칸
lcd.print("PPM: ");
lcd.print(ppm); // PPM 값 출력
lcd.print(" "); // 잔여 문자 지우기
}
상태별 메시지 구성
- ppm 값 범위에 따라 LCD 첫 번째 줄에 상태를 표시합니다:
- 0~400: Excellent
- 401~1000: Good
- 1001~2000: Moderate
- 2001~5000: Poor
- 5001 이상: Dangerous
MQ135 센서로 측정한 PPM(Parts Per Million) 값은 공기 중 특정 가스의 농도를 나타냅니다. 이 센서는 암모니아(NH₃), 이산화탄소(CO₂), 알코올, 벤젠, 연기 등 다양한 가스를 감지할 수 있습니다. 따라서 측정된 PPM 값은 이러한 가스들의 혼합 농도를 반영합니다. 특히, CO₂의 경우 실내 공기질을 평가하는 중요한 지표로 사용되며, 일반적으로 400~1000ppm은 양호한 상태로 간주됩니다. 그러나 1000ppm을 초과하면 공기질이 저하되었음을 의미하며, 2000ppm 이상에서는 두통이나 졸음 등의 증상이 나타날 수 있습니다. 따라서 MQ135 센서로 측정한 PPM 값은 실내 공기질 관리에 중요한 참고 자료가 됩니다.
PPM 값에 따른 의미 및 상태
0 ~ 400 PPM
- 의미: 깨끗한 실외 공기의 평균 CO₂ 농도.
- 상태: 매우 양호한 공기질 상태, 실내 환기 불필요.
401 ~ 1000 PPM
- 의미: 환기가 잘 이루어진 실내 공기의 평균 농도.
- 상태: 양호한 공기질 상태로, 일반적인 활동에 적합.
1001 ~ 2000 PPM
- 의미: 환기가 부족한 상태, 인원 밀집도가 높거나 장시간 환기가 없는 경우 발생.
- 상태: 공기질 저하, 졸음, 집중력 감소 등의 경미한 건강 영향 가능.
2001 ~ 5000 PPM
- 의미: 심각한 환기 부족 상태로, 밀폐된 공간에서 CO₂가 축적된 상황.
- 상태: 두통, 현기증, 피로감 등의 건강 문제가 발생할 수 있음.
5001 PPM 이상
- 의미: 매우 위험한 상태로, 고농도의 CO₂ 또는 유해 가스가 포함된 환경.
- 상태: 장시간 노출 시 심각한 건강 문제를 초래하며, 즉각적인 환기 및 대피 필요.
활용
- PPM 값은 실내 공기질 관리에 중요한 지표로 사용되며, 적절한 환기와 공기 청정 장치를 통해 농도를 제어해야 합니다. MQ135 센서로 측정된 값을 기반으로 환경을 개선할 수 있습니다.
MQ135 센서, 아두이노, LCD 쉴드 동작 순서도 및 코드 구성
1. 초기화 단계
- 시작 및 설정
- 아두이노가 실행되면, LCD와 MQ135 센서를 초기화합니다.
- LCD는 lcd.begin()을 통해 설정되며, 초기 메시지(예: "Initializing...")가 표시됩니다.
- 센서 예열
- MQ135 센서는 히터 코일을 통해 최적의 감지 상태를 유지해야 하므로, 코드에서 설정된 60초 동안 예열합니다.
- 예열이 완료되면 LCD에 "Sensor Ready!" 메시지가 표시됩니다.
2. 메인 루프 시작
- 초기화가 완료되면 아두이노는 메인 루프에 진입합니다.
- 루프는 공기질 데이터를 주기적으로 수집, 처리, 표시하는 작업을 반복합니다.
3. 센서 데이터 수집
- MQ135 데이터 읽기
- readSensor() 함수가 호출되어 MQ135의 아날로그 출력을 샘플링합니다.
- 10개의 샘플을 수집하며, 각 샘플 간 50ms 지연을 추가하여 데이터의 신뢰성을 높입니다.
- 모든 샘플의 평균 값을 계산하여 센서 데이터의 노이즈를 최소화합니다.
4. 공기질 데이터 처리
- PPM 변환
- 수집된 아날로그 값을 calculatePPM() 함수에서 PPM(Parts Per Million) 값으로 변환합니다.
- PPM 값은 MQ135 데이터시트의 값을 참고하여 공기질 상태를 정량적으로 나타냅니다.
- 음수 값은 제거하고, 실험적 보정을 통해 보다 정확한 값을 제공합니다.
5. 공기질 상태 및 PPM 값 표시
- LCD 출력
- 변환된 PPM 값에 따라 LCD에 두 줄로 정보를 표시합니다.
- 첫 번째 줄: 공기질 상태 메시지 ("Air: Excellent", "Air: Good" 등).
- 두 번째 줄: 측정된 PPM 값 ("PPM: 450").
- 이전 값과 새로운 값을 비교하여 값이 변경된 경우에만 화면을 갱신합니다.
- 화면 갱신 시 lcd.clear()를 최소화하여 화면 깜박임을 방지합니다.
- 변환된 PPM 값에 따라 LCD에 두 줄로 정보를 표시합니다.
6. 루프 반복 및 대기
- 대기 시간
- LCD에 정보를 출력한 후, 1초 동안 대기합니다.
- 대기 시간 동안 아두이노는 새로운 데이터를 수집하지 않으며, 이후 루프를 반복합니다.
코드 동작 요약
- 초기화 및 예열: LCD 및 센서를 초기화하고, MQ135 예열을 완료합니다.
- 데이터 수집: MQ135로부터 아날로그 데이터를 읽고 평균화하여 노이즈를 줄입니다.
- 데이터 처리: 아날로그 데이터를 PPM으로 변환하여 공기질 상태를 계산합니다.
- LCD 출력: PPM 값과 상태 메시지를 LCD에 실시간으로 표시합니다.
- 루프 반복: 1초 간격으로 데이터를 갱신하며, 환경 변화를 모니터링합니다.
예시: MQ135 공기질 모니터링 프로젝트 실행 결과
실험 환경
- 장소: 닫힌 실내, 환기 없음
- 센서 위치: 책상 위 고정
- 목표: MQ135 센서를 통해 공기질 상태를 측정하고 LCD에 출력
실행 결과
- 초기화 단계
- LCD에 "Initializing..." 메시지가 표시되고, MQ135 센서가 예열됩니다.
- 약 60초 후, "Sensor Ready!" 메시지가 LCD에 표시됩니다.
- 공기질 측정 결과
환경 변화 실험
- 향초 점화:
- 10초 후 향초를 점화하면 PPM 값이 급격히 상승.
- LCD 표시: "Air: Poor", "PPM: 4000".
- 창문 열기:
- 30초 후 환기를 시작하면 PPM 값이 서서히 감소.
- LCD 표시: "Air: Good", "PPM: 800".
사용자 관찰
- PPM 값이 LCD에 실시간으로 업데이트되며, 환경 변화에 따라 공기질 상태 메시지가 즉각적으로 변경됨.
- 이 데이터를 통해 공기질 개선을 위한 실시간 대응이 가능함.
6. MQ135 공기질 센서 동작 확인
MQ135 센서의 동작을 확인하기 위해 시리얼 모니터를 통해 아날로그 값과 계산된 PPM 값을 확인합니다. LCD에 표시되는 공기질 상태와 PPM 값이 환경 변화에 따라 실시간으로 업데이트되는지 테스트합니다. 향초를 점화하거나 창문을 열어 환기하는 등 환경을 변화시켜 PPM 값이 예상대로 변화하는지 관찰합니다. 센서의 예열 시간(60초)을 충분히 제공하고, 핀 연결 상태를 점검하여 이상 동작 여부를 확인합니다.
MQ135 센서와 아두이노가 제대로 동작하는지 확인하려면 아래 단계를 따라야 합니다:
1. 시리얼 모니터를 통한 확인
- 아두이노 IDE에서 시리얼 모니터(CTRL+SHIFT+M)를 열어 센서 출력 데이터를 확인합니다.
- Serial.print() 명령을 통해 MQ135의 아날로그 출력 값과 계산된 PPM 값을 출력하도록 코드에 설정합니다.
- 예: Analog Value: 220, PPM: 450.
- 출력 값이 안정적으로 변화하는지 확인합니다.
2. LCD 출력 확인
- LCD에 표시되는 공기질 상태 메시지와 PPM 값이 환경 변화에 따라 적절히 반응하는지 확인합니다.
- 예: 향초를 점화하거나 창문을 열어 환기 상태를 변경했을 때, PPM 값과 상태 메시지가 즉각적으로 업데이트되는지 확인합니다.
3. 테스트 환경 구성
- 향초 점화 테스트:
- 향초를 MQ135 센서 근처에서 점화하여 연기나 CO₂ 농도가 상승하는지를 관찰합니다.
- LCD에 "Air: Poor" 또는 "Air: Dangerous"와 같이 상태가 표시되고, PPM 값이 상승하는지 확인합니다.
- 환기 테스트:
- 창문을 열어 환기하면 PPM 값이 감소하고 LCD에 "Air: Good" 또는 "Air: Excellent" 메시지가 표시됩니다.
4. 이상 동작 확인
- 센서 값이 고정되거나 출력이 불규칙적이라면, 다음 사항을 점검합니다:
- 전원 공급 상태 (5V 정확히 연결).
- 아날로그 핀 연결 상태 (A1 핀 확인).
- 센서가 예열 시간을 충분히 가졌는지 확인 (60초 이상).
결과
- 센서와 LCD가 정상 작동한다면, PPM 값이 실시간으로 업데이트되고 공기질 상태를 정확히 나타냅니다.
7. 마무리
MQ135 센서를 사용하여 공기질 데이터를 실시간으로 측정하고, LCD를 통해 시각적으로 확인할 수 있었습니다. 이 프로젝트는 공기질 관리 및 환경 모니터링 시스템의 기초를 학습하는 데 유용하며, 데이터 로깅이나 IoT 기능으로 확장할 가능성을 제공합니다. 초보자도 손쉽게 따라 할 수 있는 구조로, 센서 데이터 수집과 출력의 원리를 이해할 수 있었습니다. 향후 프로젝트에서는 데이터를 저장하거나 원격으로 전송하는 기능을 추가해 활용 범위를 넓힐 수 있습니다.
1. 결과 요약
- MQ135 센서를 활용하여 공기질 데이터를 실시간으로 측정하고, LCD를 통해 공기질 상태와 PPM 값을 직관적으로 표시할 수 있었습니다.
- 이 프로젝트는 공기질 관리 시스템의 기초를 이해하는 데 유용하며, 향후 확장을 위한 기초 작업을 제공합니다.
2. 프로젝트 확장 가능성
이 프로젝트는 다음과 같은 방향으로 확장할 수 있습니다:
- 데이터 로깅 시스템 추가:
- SD 카드 모듈을 활용해 PPM 값을 시간에 따라 저장하여 장기적인 공기질 변화를 모니터링할 수 있습니다.
- 경보 시스템 통합:
- 특정 PPM 값을 초과하면 LED 또는 부저로 경고를 출력하여 사용자에게 알립니다.
- IoT 연동:
- Wi-Fi 모듈(ESP8266 또는 ESP32)을 사용해 데이터를 클라우드로 전송하여 모바일 앱이나 웹 대시보드에서 실시간 공기질 상태를 확인할 수 있습니다.
- 다중 센서 시스템:
- MQ135 외에 온도, 습도, 미세먼지 센서를 추가하여 종합적인 환경 모니터링 시스템을 구축합니다.
3. 사용자 경험 요약
- 초보자도 손쉽게 따라할 수 있는 간단한 구성으로 공기질 데이터를 모니터링하는 방법을 배울 수 있었습니다.
- 센서와 LCD를 사용하여 데이터 수집, 처리, 표시 과정을 이해할 수 있었으며, 공기질 상태와 실시간 데이터를 직관적으로 확인할 수 있는 시스템을 완성했습니다.
4. 마무리 팁
- MQ135 센서의 정확도를 높이기 위해 실험적인 보정을 적용하거나 데이터시트를 참조하여 로드 저항(RL)을 조정할 수 있습니다.
- 센서를 정기적으로 점검하여 정확도를 유지하고, 환경 변화에 따른 센서 출력의 민감도를 확인하세요.
이로써 프로젝트가 성공적으로 완료되었습니다. 이를 통해 공기질 모니터링의 기본 원리를 배우고, 실내 환경 개선을 위한 데이터 기반의 실험을 수행할 수 있습니다.
https://search.shopping.naver.com/book/catalog/32436274774
'모두의 아두이노 > 아두이노 센서' 카테고리의 다른 글
[아두이노][센서] DSM501A로 실내 공기질을 실시간으로 측정하기 (0) | 2024.12.02 |
---|---|
[아두이노][센서] 실시간 가스 감지! MQ2 센서로 LPG, CO, 연기 측정하고 안전 모니터링 시스템 구축하기 (1) | 2024.11.30 |
[아두이노][센서] 쉽고 간편한 환경 측정! HTU21D로 온습도 모니터링 프로젝트 (2) | 2024.11.28 |
[아두이노][온도 센서] KY-013으로 간단한 온도 모니터링 프로젝트 시작하기! (2) | 2024.11.27 |
[아두이노][센서] DS18B20 방수 온도 센서를 활용한 실시간 온도 모니터링 프로젝트! (0) | 2024.11.26 |
댓글