BME680 센서 심층 분석: 4-in-1 환경 모니터링 마스터하기
습도, 조도, 온도, 가스, 수위 등 다양한 요소를 감지/평가해야 할 때가 많습니다. 일반적인 방법은 온도계, 가스 센서 칩 등 단일 기능 센서를 쓰는 것이지만, 이들은 한 가지 요소만 감지합니다. 이에 다기능 센서인 BME680을 소개합니다.
BME680은 기압계, 온도계, 습도계, VOC 가스 센서를 통합한 4-in-1 환경 센서입니다. 이 글에서는 아두이노 보드와 BME680을 인터페이싱하는 방법(필요 라이브러리 설치 포함)도 다룹니다.
BME680이란?
BME680은 고정밀·고선형성 온도, 습도, 대기/기압, VOC 가스 센서를 통합한 환경 센서입니다. 간단히 말해 VOC(휘발성 유기 화합물) 등 광범위 가스를 감지해 실내 공기 질(IAQ)을 측정합니다.
일반적으로 센서는 특정 동작 조건에서 높은 EMC 내성, 장기 안정성, 최적화된 소비 전력을 보장합니다.
BME680 환경 센서
주로 저전력 소형 제품(웨어러블, 모바일 기기 등)에 적용됩니다.
BME680 정확도
아래 표는 BME680의 압력, 습도, 온도 센서 절대 정확도입니다.
BME680 동작 범위
아래 표는 BME680 압력, 습도, 온도 센서의 동작 범위입니다.
BME680 핀아웃
BME680 디바이스 구성
BME680 센서는 6핀 구조입니다.
회로도 – 아두이노와 BME680 연결
BME680은 SPI 인터페이스와 I2C 통신 프로토콜을 모두 지원합니다. 필요한 부품: 점퍼 와이어, 브레드보드, 아두이노 우노, BME680 센서 모듈.
점퍼 와이어/케이블로 아두이노 우노와 BME680 센서 연결
아두이노 우노 + BME680 (I2C 방식)
아두이노 우노 + BME680 (SPI 방식)
참고:
- Adafruit BME680 라이브러리를 찾아 아두이노 IDE 라이브러리 매니저에서 BME680 라이브러리/센서 모듈 설치
- 라이브러리 설치 후 아두이노 IDE 재시작
- BME680 사용을 위해 Adafruit_Sensor 라이브러리 추가 설치 필요
BME680 센서 모듈에서 측정값 얻기
Adafruit_BME680 라이브러리의 스케치 예제를 사용해 습도, 온도, 압력, 가스 센서 값을 읽습니다.
- 설치된 Adafruit_Sensor, BME680 라이브러리로 아두이노 IDE 열기
- 파일 → 예제 → Adafruit BME680 라이브러리 → bme680async 선택
원시 코드 레이아웃:
코드 동작 원리
필요 라이브러리
코드 시작부에 필요 라이브러리 포함:
- Adafruit_BME680, Adafruit_Sensor (BME680 인터페이싱용)
- SPI 라이브러리
- I2C 라이브러리 (Wire 라이브러리)
SPI 또는 I2C 통신 선택
BME680은 SPI와 I2C 모두 지원하므로 둘 다 코드에 포함. 기본은 I2C이므로 SPI 관련 핀 정의 라인은 주석 처리.
해수면 기압 (Sea Level Pressure)
SEALEVELPRESSURE_HPA 변수에 헥토파스칼(hPa) 단위 해수면 기압 저장.
주어진 압력과 해수면 기압 비교로 고도 추정. 기본값이 있으나 정확도를 위해 현재 실제 해수면 기압 값 사용 권장.
I2C 기본 설정
I2C가 기본 프로토콜. 아래 라인으로 bme 객체(Adafruit_BME680)가 아두이노 I2C 핀(D4/SDA, D5/SCL)에 나타남.
SPI 사용 시 위 라인 주석 처리하고 아래 라인 주석 해제.
Setup() 함수
시리얼 통신 시작.
BME680 센서 초기화
가스 히터, 필터, 오버샘플링 파라미터 설정.
Loop() 함수
비동기 읽기 시작(bme.beginReading())으로 측정 개시, 읽기 완료 시점 파악. 이후 endReading()으로 비동기 읽기 종료.
최종 센서 측정값 획득:
실전 데모
코드를 아두이노 우노에 업로드. 시리얼 모니터(115200 보드레이트) 열기. 보드 위 RST 버튼 누르면 아래와 같이 출력됨.
BME680 응용 분야
(스마트워치 - 웨어러블 디바이스 유형)
(공기 중 미세먼지 양 표시 센서)
(만보계)
결론
요약하자면 BME680은 일산화탄소 등 가스, 기압, 습도, 온도를 측정하는 디지털 환경 센서입니다.
BME680에 대해 더 알고 싶거나 문의사항이 있으면 언제든 연락 주세요.