아두이노 UNO를 이용한 미세먼지와 온도, 기압 측정

Eunyeong Kim

The Things Network User

Posted on 11-04-2022

대전, 세종 지역의 소하천을 중심으로 재해 예방과 환경 개선을 위한 데이터 수집 활동을 진행합니다.
아두이노 UNO 보드를 이용하여 거주 지역의 미세먼지와 온도, 습도, 대기압을 측정하였습니다.
환경 데이터 측정을 위한 통신 방식과 센서에 대한 이론과 실습 정보는 다음과 같습니다.

1. 이론

○ I2C(Inter-Intergrated Circuit) 통신

file
- 한 개의 Master와 한 개 이상의 Slave(Device)로 이루어져 있다.
- 각 Slave는 개별 주소를 가지며, Slave끼리 식별이 가능하다.
- 송수신 타이밍 동기화를 위한 클럭 선 SCL(Serial Clock), 데이터를 주고 받기 위한 선 SDA(Serial Data)로 구성된다.
- Master에서 클럭 신호 SCL을 만들고, 이 클럭 타이밍에 맞춰 SDA로 데이터를 송수신한다.
- 모든 Slave에는 SDA를 이용해 데이터가 전달되고, 해당 주소를 가진 디바이스하고만 데이터를 주고 받는다.
- 7비트 주소 공간을 사용하므로 127개의 Slave까지 연결할 수 있다.

○ PM2008(미세먼지 센서)

file
- 광 산란 방식을 이용한 레이저 타입의 초미세먼지 센서이다.
- GRIMM 방식과 TSI 방식 모두 지원하며, PM10, PM2.5, PM1.0까지 측정 가능하다.
- 입자 검출 최소 크기는 0.3 μm이며, 최대 크기는 10 μm이다.
- 센서를 쉴드에 부착해 아두이노 UNO 보드와 결합하여 사용할 수 있다.

○ BME280, BMP280 센서

file
- BME280: 온도, 기압, 습도 측정 가능
- BMP280: 온도, 기압 측정 가능

2. 실습

○ 아두이노 UNO를 이용하여 미세먼지(PM2008 센서) 측정

file
(1) 미세먼지 센서 PM2008이 부착된 쉴드와 아두이노 UNO 보드를 결합한다.
(2) 아두이노 IDE를 실행하고, 툴 메뉴에서 아두이노 UNO 보드와 알맞은 포트를 설정한다.
(3) 스케치>라이브러리 포함하기>라이브러리 관리 를 눌러 라이브러리 매니저를 실행한다.
(4) 'PM2008 I2C' 라이브러리를 설치하고 닫는다.
(5) 파일 메뉴에서 예제>PM2008 I2C>PM2008_12C_test 를 실행한다.
(6) 업로드하여 시리얼모니터를 통해 결과를 확인한다.
file

○ 아두이노 UNO를 이용하여 온도, 기압(BMP280 센서) 측정

file
(1) BMP280 센서와 아두이노 UNO 보드의 결선은 다음과 같다.
- VCC <-> 3.3 V
- GND <-> GND
- SCL <-> A5
- SDA <-> A4
(2) 아두이노 IDE를 실행하고, 툴 메뉴에서 아두이노 UNO 보드와 알맞은 포트를 설정한다.
(3) 스케치>라이브러리 포함하기>라이브러리 관리 를 눌러 라이브러리 매니저를 실행한다.
(4) 'Adafruit Unified Sensors'와 'Adafruit BMP 280 Library' 의 라이브러리를 설치하고 닫는다.
(5) 아래의 예제 코드를 작성한다.
file
(6) 업로드하여 시리얼모니터를 통해 결과를 확인한다.
file