과학

아두이노, 마이크로컨트롤러(mcu) 개발을 위한 센서 참고자료(8) - GP2Y1010AU0F PM 2.5 광학식 미세먼지 센서

오늘도 어김없이! 좋은 센서 말씀 전하러 왔습니다 ㅎㅎ..

 

앞서 소개했던 자료들은 아래 링크로 들어가시면 됩니당.

 

아두이노, 마이크로컨트롤러(mcu) 개발을 위한 센서 참고자료(1) - 적외선 인체감지 PIR 센서 

아두이노, 마이크로컨트롤러(mcu) 개발을 위한 센서 참고자료(2) - TCRT5000 적외선 감지 장애물 회피 센서 / 라인트레이서 센서

아두이노, 마이크로컨트롤러(mcu) 개발을 위한 센서 참고자료(3) - 음향 사운드 감지 센서 HS-SOUNDSM

아두이노, 마이크로컨트롤러(mcu) 개발을 위한 센서 참고자료(4) - 비접촉식 적외선 온도 센서 GY-906, MLX90614

아두이노, 마이크로컨트롤러(mcu) 개발을 위한 센서 참고자료(5) - 알코올 센서 모듈 MQ-3, SZH-SSBH-045

아두이노, 마이크로컨트롤러(mcu) 개발을 위한 센서 참고자료(6) - 사운드 모듈 ts0223

아두이노, 마이크로컨트롤러(mcu) 개발을 위한 센서 참고자료(7) - 온도센서 NTC 서미스터 모듈

 

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

이번에 소개할 센서는 미세먼지 센서야.

 

1.PNG

 


최근들어 미세먼지가 기상계의 뜨거운 감자기도 하고, 그러다 보니 거리에서 마스크를 쓴 사람들의 모습이 꽤나 많이 보이더라고?

 

아직까지 뭐.. 필터를 달고 다니는 사람까진 못봤지만 말이지..

 

  

2.PNG


사람들의 관심사도 그렇고, 여러모로 미세먼지가 끼치는 악영향이 적잖게 크다보니 관련된 백색가전이나 다양한 종류의 보조기구 들이 활발하게 개발되고있어.

그럼 공기 오염도는 어떻게 측정하느냐가 문제겠지?

 

일단 미세먼지를 측정하기 위한 방식으로 빛을 이용한 방식과 반도체를 사용한 방식 등 몇가지 방법이 있지만, 이번에 소개하는 센서 모듈은 빛을 이용한 방식으로, 어떻게 보면 가장 흔하고 저렴하다보니 많이 쓰이는 센서 모듈이야.

처음엔 빛을 이용하여 측정을 하는 방식이라 해서 다른 광학식 센서들과 큰 차이가 있을까 싶었는데..

아니나 다를까 감도 부분을 제외하면 실제로는 거의 차이가 없더라구.

이전에 소개한 적외선 감지 장애물 회피 센서(라인트레이서 센서)는 발광부에서 나온 빛이 반사되어 수광부로 들어오는 빛의 양을 측정하는 원리였잖아? 

피사체가 검정에 가까울수록 빛을 흡수하여 반사되는 빛의 양은 적고

피사체가 흰색에 가까울수록 빛을 반사하여 받아들이는 빛의 양이 많아지는 현상을 이용한 빛의 특성을 이용한 방식이었다면 이번엔 조금 달라.

이번 미세먼지 센서 역시 내부에 발광부 LED와 수광부가 달려있어 발광부에서 나온 빛이 수광부에 들어오는 빛의 정도에 따라 미세먼지 측정 값이 결정이 된다는 점은 동일해.

다만 발광부에서 나오는 빛을 바로 수광부에서 받아들이는게 아니라 빈 공동을 빛 입자가 지나서 수광부로 넘어가야해.

 

 먼지가 공간을 많이 차지할수록 먼지에 의해 빛이 산란되어 수광부에 들어오는 빛의 양이 줄어들게 되겠지?

아래 그래프와 같이 먼지의 농도에 비례하여 측정되는 전압 값이 높아지고 반대로 먼지의 농도가 낮을수록 측정되는 전압 값도 낮아지는 방식이야.

 

3.PNG

해당 미세먼지 모듈의 상세한 내부구조나 특성은 아래의 링크를 누르면 데이터시트 파일을 받아볼 수 있으니 참고하면 좋을 거야.

 

 

미세먼지센서.pdf

 

이제 센서를 테스트 해보기 위해 우선 센서와 아두이노를 연결해줄거야.

이전까지 소개한 센서 모듈과 약간 차이점이 있다면, 광학식 센서를 작동시키기 위한 전원이 따로 들어간다는 점이야.

 

정확한 이유는 뭐..  센서 개발한 사람이 알겠지만 굳이 그래야 됬나 싶기는 하네.

여튼 발광부 전원과 수광부 전원이 따로 들어가게 되니까, 잊지말고 꼭 연결해주길 바래.

 

 

4.PNG

무려 6핀짜리 센서.. 그중에 전원부만 4핀...! 왜그럴지는 여전히 의문.

 

여튼 위와 같이 간단하게 연결을 해주고, 측정부 신호선을 아날로그 측정 A0핀에 연결해주고, LED 부분은 D2, 2번 핀에 연결해주도록해.
 

혹여라도 LED 쪽 핀을 연결해주지 않는다면 멀쩡한 값을 받아볼 수 없게되니 잊지마!

 

기억해줘!

 

5.PNG

 

출처 : https://www.dfrobot.com/wiki/index.php/Sharp_GP2Y1010AU

 

사실 이번에는 DFRobot 에서 제공하고 있는 기존의 예제 소스를 거의 그대로 사용해봤어.

 

단순히 아날로그 값을 읽어와서 Raw 값 그대로 쓰는 것이 아니라, 어느정도 가공을 해줘야 원하는 수치로 측정된 결과 값을 얻을 수 있기 때문인 게 있는데, 그러다 보니 소스 코드에 대해 약간의 부연 설명이 필요할 거 같아.

samplingTime, deltaTime, sleepTime 과 같은 시간에 관련된 몇가지 변수들이 있어.

samplingTime은 발광부 측에서 측정을 위한 LED를 작동시키고 먼지로 인해 산란되는 빛이 내부에 골고루 퍼지기 위한(표현이 약간 애매하지만, 이해를 위한 표현으로 봐주셨으면 해) 시간이야.

deltaTime은 아두이노에서 analogRead를 위해 필요한 시간을 주는 부분이야. 


AVR 8bit 프로세서 데이터 시트를 보게 되면, ADC(Analog to Digital Convert)변환에 필요한 시간인데, 이 부분은 데이터 시트상에서는 조금 다르게 이야기 하긴 하더라고. 근데 AVR에서 ADC변환을 하게 된다면 꼭 필요한 부분이기도 해서 데이터 시트대로 접근해도 좋고, 내가이야기 한대로 생각해도 크게 차이는 없을거야. 

sleepTime은 발광부에서 작동되는 LED를 잠시 꺼두고 센서를 잠시 Idle(유휴)상태로 두는 시간이야.
 

 

7.PNG

 

요건 데이터 시트에 있는 내용이야.

 

측정을 위해 코드를 작성하게 된다면 맞춰줘야 하는 센서 제어에 대한 내용이 담겨있지.

 

뭐 별거 없겠거니 하고있긴했는데, 이제보니까 3단 증폭기.. 오우야..

 

여튼 제대로 된 측정을 위해선 커페시터나 저항같은것도 달아줘야하거든.

 

하지만 우린 언제나 답을 찾아낼 것이다. 늘 그래왔듯이... 라는 문구가 있듯, 미세먼지 센서 모듈을 잘 찾아보면 이미 납땜까지 다 해두고 선만 꽂아쓰는 모듈을 판매하시는 분들이 계신다, 이말이야!

 

요런건 내가 뭐다, 적으면 홍보하는 것 같으니 한번 찾아보도록 해 ㅎㅎ..

 

 

 

6.PNG


그리고 이번 소스 코드에서는 미세먼지 양을 변환하기 위한 다양한 종류의 방정식이 있지만, 복잡하고 보기 힘들 것 같으니 선형방정식을 적용해봤어,

 

그게 또 특이한 결과 값이 나오게 하더라구.

 

먼지가 들어오지 않는 경우 음수값을 표시하게 돼. 

측정된 아날로그 값을 미세먼지 양으로 변환하기 위한 선형 방정식 상에서 -0.1 이라는 보정치가 들어가서 그래. 

 

-0.01 같은 음수 결과 값이 나온다고 있던 먼지가 사라지는건 엔트로피 법칙에 위배되니 오해하지 말아줬으면 해.

 

디스플레이 같은 곳에 띄우게 된다면, abs() 같은 절대값 함수를 이용해주는 것도 나중에 사용할 수 있는 하나의 요령으로..생각하면 좋아.

 

그리고 우리가 테스트하면서 결과 값을 확인하려고 처음에 사용한 소재는 탈지 분유를 써봤어.

생각보다 가루가 고운 것도 있지만 테스트 시점에서 작업실 내에 말 그대로 굴러다니고 있었거든..

 

 혹시나 싶어 테스트를 해보니 정말 아주 몹시 잘나오더라고.

측정을 위해 센서 중앙에 있는 구멍에 분진을 흩날려줬는데 탈지분유가 습기를 잘 흡수하다보니 안에 눌러 붙어서 걷어내는데 꽤나 고생한건 안비밀...

혹여라도 테스트를 진행하게 된다면 밀가루로 테스트를 하신 뒤 붓으로 슬슬 털어주시는 것을 추천합니다...

 

종이컵 같은 곳에 적당히 담아서 종이컵을 훅 불면... 너는 된다 얼굴이 하얗게. 너의 Face 하얗다 대체된다.

 

실험한답시고 몇번 했다가 코에 들어가고 눈에 들어가고 어우..

 

이 센서는 실제로 많은 제품군에 들어가기도 하는 정밀하고, 높은 안정성을 지니는 센서기도 하니까 혹여라도 관련 제품 개발에 관심있는 친구라면 한번 써봄직한 녀석이야. 

 

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

이번주는 대구 쪽에 출장이 있어서 월요일 아침부터 이렇게 쓰게 됬엉!

 

사실 데이터 시트 관련된 내용을 적어볼까 했는데, 아마 출장 마치고 돌아온 다음주 방송에서 관련된 내용이나 해설을 간단하게 영상으로 촬영하고, 글로는 다다음주에 적게 되지 않을까 싶어.

 

나도 처음에 데이터시트를 보면서 이게 뭔 개소린가 싶을정도로, 처음보는 사람한테는 암호문이나 다름없거든.

 

다음주에는 센서 글 하나 더 올리고, 다다음주까지 데이터시트 관련글 만들수 있도록 해볼게!

 

그리고 매주 월요일하고 수요일 저녁 8시~10시 사이에 켜놓고 있는데, 혹시라도 아두이노나 MCU 개발 혹은 내가 소개한 센서들 사용하는 부분에 대해서 궁금한점이 있다면 와서 물어봐주면 좋구! 

 

딱히 질문이나 이런게 없다면 평상시에는 공구 관련 리뷰 영상을 만들고 있을테니.. 언제든 가볍게 놀러와줘!

 

https://blog.naver.com/vulcatronics/ 

 

https://www.twitch.tv/vulcatronics

 

11개의 댓글

6 일 전

아저씨 데이터시트 읽는게 취미지?

6 일 전
@gogogog

이쪽일 하기전에는 가끔씩 찾아보고그랬징..

5 일 전

센세! 암모니아 검출을 위한 센서는 뭐가 좋습니까?

5 일 전
@잎샘바람

암모니아 검출센서가 있지요...?

http:ㅡ//m.11st.co.kr/MW/Product/productBasicInfo.tmall?prdNo=2058529823&NaPm=ct=jp9jvzm0|ci=31d3e6720e25cb8d0fe6ef6c7e92f8abdad451a7|tr=slsl|sn=17703|hk=320ec8ffcc009da24028096763e9ed47d27ce915&utm_term=&utm_campaign=%B3%D7%C0%CC%B9%F6m_%B0%A1%B0%DD%BA%F1%B1%B3+%B1%E2%BA%BB&utm_source=%B3%D7%C0%CC%B9%F6_M_PCS&utm_medium=%B0%A1%B0%DD%BA%F1%B1%B3

요런거 사용하시거 흡기부분에 설치해주시는게 제일 좋아여.. 데이터 분석은 우리도 사용해보진 않아서.. 레퍼런스 자료같은걸 참고하는게 좋을거같아여

테스트만 할거면 모듈로 사서 쓰세여. 정신건강에 이로워여

5 일 전
@짜요

설명 감사합니다.senpai!

형 센서를 이용할 때 dc모터 잡음은 어떻게 잡는 게 좋습니까 ㅠ 여러가지 센서를 써서 만드는 중인데 모터가 작동하면 망해버려유 ㅠ

5 일 전
@닉네임바꾼날생일

브러시드 DC모터에서 브러시가 닿을떄 발생하는 노이즈 이야기하는거면 보통 그쪽에 탄탈이나 세라믹 콘덴서 를 달아줘서 해결하던뎅... 모터가 돌고 시스템이 뻗는다면 잡음보다는 전류량 문제일 가능성이 높아여

@짜요

으으음... 자세히는 모르는데 모터드라이브를 써서 시스템은 잘 돌아가고 온도센서로만 치면 24도 정도인게 모터가 작동해서 돌아가면 40도로 탐지 되는 그런 느낌인데요 DC모터에 콘덴서를 달아서 해결해보는게 맞는거졍?

 

4 일 전
@닉네임바꾼날생일

가장 기초적인건 콘덴서가 맞아요

4 일 전
@닉네임바꾼날생일

24도인게 40도로 뛴다면 그건 노이즈가 아니라 그라운드가 뜬거야... 모터 연결용 전원을 별도로 빼봐. 같은 배터리를 사용한다고 해도 배터리에서 선을 2개 뽑지 말고 2개씩 총 4개 뽑아서 2개는 모터, 2개는 센서로 가면 된다.

3 일 전
@닉네임바꾼날생일

전류 문제 같은데 아두이오에서 받지 말고 따로 3.3V LDO 같은거 써서 별도로 전류 받도록 만들어봐여

번호 제목 글쓴이 추천 수 날짜
공지 [게임] 게임 연재, 게임 정보는 게임 연재 판을 이용 해주시기 바랍니다 91 overflow 5 2017.04.18
공지 [기타 지식] 후기, 리뷰, 감상문은 허용 하지 않습니다 overflow 2 2016.07.29
공지 [기타 지식] 글 작성 금지 항목들 overflow 2 2014.04.06
공지 [기타 지식] 연속적인 글과 제목에 대하여 28 overflow 2 2013.08.11
공지 [기타 지식] 읽을 거리 판 입니다. 44 애드립 2 2012.07.25
8898 [기타 지식] [법률상식] 초성 욕도 고소가 가능할까? 3 미라쥬250 0 1 시간 전
8897 [기타 지식] [법률상식] 개드립에 올린 댓글도 저작권이 인정될까? 7 미라쥬250 0 1 시간 전
8896 [과학] 아두이노, 마이크로컨트롤러(mcu) 개발을 위한 센서 참고자료... 짜요 0 2 시간 전
8895 [기타 지식] [스압주의] 시집 추천, 시를 읽고 싶은 개붕이들에게 주는 팁 7 죽는다면극장에서 4 12 시간 전
8894 [기타 지식] [노잼/스압] 노르웨이 난센급 충돌사고 예비 보고서 번역 6 뱃사공에루 4 14 시간 전
8893 [기타 지식] [노잼/스압] 노르웨이 난센급 충돌사고 오디오로그 번역본 7 뱃사공에루 5 15 시간 전
8892 [기타 지식] 게시글에 영상을 올리는 방법을 알아보자 2 위안칠드런옼닼니스 1 18 시간 전
8891 [기타 지식] 미스터리 소설의 개요 및 추천 47 하이데거 2 1 일 전
8890 [기타 지식] 개붕이들을 위한 한번쯤 읽어볼만한 책을 알아보자.alaboza 10 코그멍 2 1 일 전
8889 [기타 지식] '비폭력대화' NVC단체를 알게되면서 한 생각들 11 호랭이가떡달라고... 2 1 일 전
8888 [기타 지식] 판타지를 좋아하는 개붕이들을 위한 도서 추천 56 헛소리하는애 4 1 일 전
8887 [기타 지식] 오랜만에 돌아왔다! 소설추천 3탄 50 싱싱한곧휴 2 2 일 전
8886 [과학] 좋은 고기 고르는법 44 야야노노노 2 2 일 전
8885 [기타 지식] [펌-밀리터리] 그래서 이게 뭐라고요? - Courageous Class 16 Intruder 16 4 일 전
8884 [감동] 절영지회(絶纓之會) 22 나헌 8 4 일 전
8883 [기타 지식] 공기업 및 공공기관 취업을 준비하는 사람들을 위한 기초적인... 90 농협은행직원 11 4 일 전
8882 [기타 지식] [배박이상식] 화물의 해상투하 18 뱃사공에루 29 4 일 전
8881 [기타 지식] 여드름으로 고생하고있는 이들에게 2편 24 beezuki 2 4 일 전
8880 [호러 괴담] 귀신 본 썰 15 킹리적달심 2 5 일 전
8879 [기타 지식] 불혹아재님과 루카스아츠 4 guitarforest 1 5 일 전
서버에 요청 중입니다. 잠시만 기다려 주십시오...