Arduino Uno 로 GP2Y1014AU0F 광학먼지센서를 사용해서 실내 먼지(연기) 측정해 보고 시리얼 모니터로
먼지(연기)의 농도에 따라 출력값이 어떻게 변화는지 확인해 보는 프로젝트 입니다
<GP2Y1014AU0F 광학 먼지센서 이미지>
SHARP의 GP2Y1014AU0F 광학 먼지 센서 (GP2Y1010AU0F 대체) GP2Y1010AU0F Datasheet.pdf
로 공기 중의 먼지와 입자를 이용하여 공기 품질을 측정합니다
테스트시 1~3번핀 열결시 220uF 캐패시터, 150ohm 저항을 같이 사용해 주어야 합니다 (제품 구성품으로 센서와 같이 포함되어 있습니다)
내부에 장착된 적외선 송신기, 수신기를 이용해서 미세입자에 의해 반사되는 빛의 양을 측정하는 방식으로 동작합니다
전류 소모량이 매우 적고(20mA max, 11mA typical) 7V DC 까지의 전원으로 동작이 가능합니다
먼지의 농도에 따라 비례적으로 아날로그 출력을 내므로 아두이노의 아날로그 핀으로 값을 읽어 사용할 수 있습니다
약 (0.5V/0.1mg/m3) 의 감도를 가지고 있습니다
GP2Y1014AU0F 는 저가형 먼지센서로 고정밀의 먼지감지에는 적합하지 않습니다 교육용, 개발용, 테스트용으로 적합합니다
아주 정밀한 먼지감지나 미세먼지 측정을 원한다면 다른 고사양의 모델을 사용하는것이 좋겠습니다
위 핀맵을 보면 알수있듯이 센서는 6개의 핀 구성으로 되어 있는데 왼쪽 1~3번 핀이 적외선 LED 컨트롤 핀이고 4~6번 핀이 출력 핀 입니다
적외선 LED 를 이용해서 지속적으로 값을 측정하는 것이 아니라, 측정이 필요한 순간에 캐패시터에 축적된 전류를 방출시켜 사용하는 구조로
먼지 또는 연기 측정시 충분한 시간 간격을 두고 사용해야 합니다
데이터시트를 살펴보면 먼지 농도 (mg/m3)에 따라 출력 전압(V)이 위와 같이 변하는것을 알수 있습니다
그래프를 보면 알수 있듯이 먼지농도는 최대 약 0.5 (mg/m3) 까지 전압은 최대 약 3.5V 까지 상승합니다 (최대 측정 범위라고 봐야 되겠죠)
실제로 테스트를 해보니 위 그래프와 같은 출력값을 확인할수 있었습니다 (하단 프로젝트 동영상 참조)
사용된 부품
Arduino Uno R3 (Italy)
브래드 보드
막대저항 150 (Ohm)
캐패시터 220 uF
점퍼케이블
구성 배선도
사용된 예제소스
주의사항
배선시 위 배선도를 참조해서 배선하도록 합니다 (캐피시터 방향 주의, 전압은 꼭 5V에 연결해야 합니다)
센서를 확인해 보면 윗면에 드라이버로 민감도를 조절할수 있는 나사가 달려 있습니다
테스트를 하면서 데이터 시트나 위에 첨부된 먼지농도에 따른 전압 변화 그래프를 참고해서 영점을 적절하게 맞추고 테스트를 진행합니다
example code 는 기본코드로 측정된 먼지농도에 따라 시리얼 모니터로 Raw Signal Value (0~1023) / Voltage (V) / Dust Density (mg/m3)
의 측정값의 변화를 확인해 보는 코드입니다
첨부된 압축파일은 먼지농도에 따라 mg/m3 단위와 ug/m3 단위로 측정값의 변화를 시리얼 모니터로 확인해 보는 코드입니다
위에서 언급했듯이 정밀한 먼지센서가 아니기 때문에 아주 정확한 측정값은 기대하기 힘듭니다
온도 및 밝기에 따라서 측정값도 틀려진다는 얘기도 있습니다
본 센서로는 적외선 송수신기를 사용해서 먼지를 측정하는 원리에 대해 알아보고
먼지농도에 따른 전압변화와 아날로그 출력값 (0~1023) 변화등을 확인할수 있는 정도로 만족해야 겠습니다
프로젝트 동영상
담배연기나 향초의 연기도 측정이 가능하며 편의상 가습기를 사용해서 테스트 하였습니다
먼지농도는 최대 약 0.5 (mg/m3) 까지 전압은 최대 약 3.5V 까지 상승합니다 (위에서 언급했듯이 최대측정 범위라고 봐야 되겠죠)
아날로그 출력값(0~1023)은 약 700~800까지 나오는것 같습니다
댓글