1. 활동 및 제작 과정
1) 아이디어 구상 및 부품 선정
도시 내 미세먼지 문제를 해결하고자 가로등에 대기질 센서 탑재할 예정
미세먼지 측정에 PMS5003센서, 온습도 측정에 DHT11 센서를 사용할 예정. 메인 컨트롤러로 아두이노 사용.
2) 회로 설계 및 하드웨어 연결
아두이노 핀 10(RX), 11(TX)에 PMS5003 센서를 연결, DHT11 온습도 센서는 디지털 핀 2번에 연결
측정값을 LCD화면에 표시하도록 설계, RGB LED는 미세먼지 등급(좋음/보통/나쁨/매우나쁨)에 따라 색상이 바뀌도록 디지털 출력핀에 연결
3) 소프트웨어 코딩 및 테스트
Arduino IDE에서 Adafruit_PM25AQI, DHT, LiquidCristal_12C 라이브러리를 활용하여 코드 작성. loop() 함수에서 1초 주기로 PM1.0, PM2.5, PM10 농도와 온습도를 동시에 읽어 Serial Monitor에 출력하는 기능을 구현. PM2.5 수치를 기준으로 좋음(0~15), 보통(16~35), 나쁨(36~75), 매우 나쁨(76 이상) 4단계로 등급을 분류하고, 해당 등급에 따라 LED 색상과 LCD 표시가 자동으로 변경되도록 했음. 센서 연결 실패 및 데이터 읽기 오류 상황에 대한 예외 처리 코드를 추가하여 안정성을 높임.
2. 결과물 소개 하기: (외형, 기능 등)
#include <SoftwareSerial.h>
#include "Adafruit_PM25AQI.h"
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT11 // DHT22면 DHT22로 변경
DHT dht(DHTPIN, DHTTYPE);
SoftwareSerial pmSerial(10, 11); // RX, TX
Adafruit_PM25AQI aqi = Adafruit_PM25AQI();
PM25_AQI_Data data;
void setup() {
Serial.begin(115200);
pmSerial.begin(9600);
if (!aqi.begin_UART(&pmSerial)) {
Serial.println("PMS5003 연결 실패");
while (1);
}
dht.begin();
Serial.println("PMS5003 + DHT11 시작");
}
void loop() {
// 온습도 읽기
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// PMS5003 읽기
if (!aqi.read(&data)) {
Serial.println("미세먼지 데이터 읽기 실패");
delay(1000);
return;
}
Serial.print("PM1.0 : ");
Serial.print(data.pm10_standard);
Serial.print(" PM2.5 : ");
Serial.print(data.pm25_standard);
Serial.print(" PM10 : ");
Serial.print(data.pm100_standard);
Serial.print(" 온도 : ");
Serial.print(temperature);
Serial.print(" C");
Serial.print(" 습도 : ");
Serial.print(humidity);
Serial.println(" %");
delay(1000);
}
3. 활동 후기: 단순히 코드를 작성하는 것을 넘어, 실제 하드웨어와 소프트웨어가 어떻게 유기적으로 연결되는지 직접 경험할 수 있었음. PMS5003 센서와 아두이노 사이의 통신 설정 과정에서 핀 배선 오류와 라이브러리 초기화 순서 문제로 여러 차례 오류가 발생하였다. 이를 해결하면서 시리얼 토신 프로토콜의 중요성과 디버깅 방법을 자연스럽게 익히게 됨. 또한 DHT11과 PMS5003 두 가지 센서를 동시에 운용하면서, 서로 다른 통신 방식을 하나의 컨트롤러에서 처리하는 방법을 이해함.
4. 핵심 과학/기술 원리
PMS5003 센서는 레이저 광산란 방식을 사용한다. 센서 내부에서 레이저 빔이 공기 중 입자에 닿으면 빛이 산란되고, 이 산란광의 세기와 패턴을 포토디텍터로 분석하여 입자의 크기와 개수를 계산한다.
DHT11 센서는 정전용량 방식으로 습도를 측정한다. 습도에 따라 유전체의 정전용량이 변하는 원리를 이용하며, 온도는 NTC 서미스터로 측정한다. 측정된 값은 단일 디지털 신호선을 통해 40비트 직렬 데이터로 전송된다.
5. 활용 사례 (2~3가지)
1. 산업 시설 내 공기질 관리 시스템
2. 학교 공원 야외 활동 안전 알림 시스템