대기 오염은 전 세계 모든 국가가 직면한 중요한 과제입니다. 미세먼지(PM) 2.5와 PM 10은 인체 건강에 위협이 되는 주요 오염 물질입니다. 본 프로젝트에서는 윈도우 10 유니버설 플랫폼(UWP)용 PM 2.5 및 PM 10 감지기를 설계합니다. 이 플랫폼에는 윈도우 10 PC, 윈도우 10 모바일, 윈도우 10 IoT 코어가 포함됩니다. 애플리케이션은 UWP 템플릿을 기반으로 구축되었습니다.
첫째, SDS011 PM2.5 & PM10 센서와 HC-06 블루투스 모듈을 결합해 실시간 데이터를 수집하고 블루투스로 전송합니다. 둘째, 블루투스 모듈을 탑재한 윈도우 10 기기가 데이터를 수신해 화면에 표시합니다.
사전 준비 사항
본 프로젝트에서는 SDS011을 PM 2.5 및 PM 10 센서로 사용합니다. 이 센서는 공기 중 레이저 산란 원리를 이용해 0.3~10 마이크론 크기의 부유 입자 농도를 측정하며, 데이터가 안정적이고 신뢰할 수 있습니다. 블루투스 통신은 저렴하고 소형인 HC-06 모듈로 구현합니다.
윈도우 10 기기로 서피스 프로나 루미아 1520을 사용하는 경우 별도의 블루투스 모듈이 필요하지 않습니다. 그러나 라즈베리 파이나 MBM을 윈도우 10 IoT 기기로 사용하는 경우에는 블루투스 동글이 필요합니다. 환경 설정은 MVP 데이비드 존스의 Generic Serial Bluetooth with Win 10 IoT-Core RPI2 가이드를 참조하세요.
참고: 윈도우 10과 비주얼 스튜디오 2015가 이미 설치되어 있지 않다면 사전 준비에 2~3시간이 소요될 수 있으나, 대부분은 자동으로 진행되는 시간입니다.
필요한 부품
SDS011 PM2.5 & PM10 센서
HC-06 블루투스 모듈
수-수 및 수-암 점퍼 와이어
미니 브레드보드
루미아 1520 또는 기타 윈도우 폰 10 호환 기기
ORICO 블루투스 모듈
아두이노 우노 R3
라즈베리 파이 2
프로젝트 진행 단계
1단계: HC-06 모듈을 SDS011 센서에 연결하기
소요 시간: 5분
부품: 5V 전원 공급장치, HC-06, SDS011, 점퍼 와이어, 미니 브레드보드
도구: 해당 없음
SDS011의 기본 출력은 TTL-USB 방식이라 무선 연결에 적합하지 않습니다. 따라서 HC-06을 블루투스 모듈로 사용해 데이터를 전송합니다. 이는 스파크펀의 BlueSMiRF 실버 모듈보다 훨씬 저렴합니다. 또한 5V DC 전원으로 감지기에 전력을 공급합니다.
먼저 블루투스 모듈을 브레드보드에 꽂아 배선을 쉽게 만듭니다. 아두이노의 5V 전원 레일에서 모듈의 Vcc 핀으로 점퍼를 연결해 전원을 공급합니다(다른 5V 전원 사용 가능). 모듈의 GND 핀을 아두이노의 GND 핀 중 하나와 연결합니다. 시리얼 통신을 위해 블루투스 모듈의 TX 핀을 SDS011의 RX 핀에, 모듈의 RX 핀을 SDS011의 TX 핀에 각각 연결합니다.
2단계: 블루투스 모듈을 윈도우 10 기기와 페어링하기
소요 시간: 5분
부품: 블루투스 모듈, 윈도우 10 기기, ORICO 블루투스 모듈(선택 사항)
도구: 해당 없음
블루투스 모듈은 SPP(Serial Protocol over Bluetooth) 프로토콜을 사용합니다. 따라서 SPP를 지원하는 모든 기기와 연결할 수 있습니다. 윈도우 10 기기에서는 가상 COM 포트로 인식됩니다. 연결 전 모듈에 전원이 공급되고 페어링 대기 상태인지 확인하세요. 모듈의 빨간 LED가 깜빡이면 '페어링 대기', 계속 켜져 있으면 '페어링 완료'를 의미합니다.
윈도우 10 PC의 경우
설정 → 장치 → 블루투스로 이동해 블루투스를 켭니다. 'HC-06' 모듈이 화면에 나타나면 클릭해 페어링하고 페어링 코드를 입력합니다. 기본 페어링 코드는 1234, 기본 시리얼 포트 속도는 9600 보드입니다.
윈도우 10 모바일의 경우
설정 → 장치 → 블루투스로 이동해 위와 동일한 단계를 수행합니다.
윈도우 10 IoT 코어 기기(라즈베리 파이 2 등)의 경우
내장 블루투스가 없는 라즈베리 파이 2나 MBM의 경우 블루투스 USB 동글을 구매해 장착해야 합니다. 하드웨어 호환성 목록에서 검증된 블루투스 USB 동글을 선택하세요. 본 프로젝트에서는 ORICO BTA-403 모듈을 사용했습니다.
드래곤보드 410c를 사용하는 경우 온보드 블루투스 모듈이 있어 별도 동글이 필요 없습니다.
ORICO BTA-403 블루투스 USB 동글을 라즈베리 파이 2의 USB 포트에 꽂습니다.
동글을 꽂으면 윈도우 10 IoT 코어 기본 앱 화면에 메시지가 표시됩니다.
윈도우 10 IoT 코어 기기에서의 블루투스 페어링은 Pairing a BLE Device and GATT Attribute Table Dump Tool 페이지를 참조해 'Pairing the Sensortag' 섹션의 1~6단계를 따르세요. SSH로 윈도우 IoT 코어에 접속해 명령줄 도구로 기기를 구성해야 합니다.
참고: 메인 메뉴에서 BR 모드를 선택해야 합니다. 기본 페어링 코드는 1234입니다.
페어링 성공 후 블루투스 페이지 모습:
3단계: 코드 다운로드 및 배포
소요 시간: 10분
부품: 해당 없음
도구: 해당 없음
먼저 5V DC 전원을 연결해 PM 2.5/PM 10 센서와 HC-06을 작동시킵니다. 1초마다 데이터가 전송됩니다.
깃허브에서 'GenericBluetoothSerialUWApp' 프로젝트를 다운로드합니다. 비주얼 스튜디오 2015 업데이트 1로 프로젝트를 로드하세요. 이 앱은 MVP 데이비드 존스의 Generic Serial Bluetooth with Win 10 IoT-Core RPI2 프로젝트를 참고해 제작되었습니다.
PC에서 실행: x86 또는 x64, 로컬 디바이스 디버깅 선택
윈도우 10 모바일에서 실행: ARM, 디바이스 디버깅 선택
윈도우 10 IoT 기기(라즈베리 파이 2 등)에서 실행: '원격 디버깅' 대상을 해당 기기로 설정
HC-06을 윈도우 10 기기와 페어링한 후 비주얼 스튜디오에서 F5를 눌러 UWP 앱을 실행합니다. 'HC-06' 심볼을 더블클릭하면 상단에 ID와 이름이 표시됩니다. 곧 HC-06의 LED가 깜빡임에서 고정으로 바뀌며 블루투스 통신 채널이 열립니다. 'Start Recv' 버튼이 활성화되면 클릭해 데이터 수신을 시작합니다. 'Stop Recv'와 'Start Process' 버튼이 활성화되면 'Start Process'를 클릭해 데이터 처리 알고리즘을 실행합니다.