• Hardware

    BME280 온습도 센서 강좌 -1

    twitter facebook

    안녕하세요? 러찌입니다.


    BME280 IC로 만들어진 온습도 센서 모듈에 대한 강좌를 시작합니다.


    BOSCH 사에서 만들어진 BME280 센서는,
    온도, 습도, 압력을 측정할 수 있는 통합 환경 센서입니다.
    다음 사진과 같이 크기가 2.5mm x 2.5mm x 0.93mm 로
    상당히 작고, 전류 소비가 낮습니다.
    그래서 주로 Mobile 장치에 사용됩니다.



    BME280 IC의 제품 특징은 다음 링크에서 확인 가능합니다.
    https://www.bosch-sensortec.com/bst/products/all_products/bme280


    BME280 IC의 Datasheet는 다음 링크에서 다운로드 받으실 수 있습니다.
    https://cdn-shop.adafruit.com/datasheets/BST-BME280_DS001-10.pdf


    BME280 IC의 주요 특징을 요약해 보았습니다.
    * 통신 인터페이스 : I2C, SPI
    * 공급 전원 : 1.71V ~ 3.6V
    * 전류 소비 : Normal(1.8uA ~ 36uA), Sleep(0.1uA)
    * 동작 범위 : 온도(-40~85도), 습도(0~100%), 압력(300~1100hPA)
    * 기타 : RoHS 인증


    BME280 IC로는 실제 온습도 데이터를 받아올 수 없어서,
    BME280 IC가 탑재된 모듈을 사용합니다.


    구글에서 BME280을 검색하면, 다양한 BME280 모듈이 있는데,
    이 중에서, 값이 저렴하고 크기가 작은 모듈을 선택하였습니다.


    선택한 BME280 모듈의 내용물을 보면,

    다음 사진과 같이 모듈과 헤더핀으로 구성되어 있습니다.


    다음은 모듈과 헤더핀을 솔더링하고, 브레드 보드에 연결한 사진입니다.


    BME280 모듈의 하드웨어 구성은,

    지금까지 진행한 내용처럼 간단하게 구성할 수 있습니다.


    이제, BME280의 온습도 데이터를 받아오기 위해서 통신 방식을 결정해야 하는데,
    여기서는 I2C로 동작시키겠습니다.
    I2C는 VCC, GND, SDA, SCL의 총 4핀만 연결하면,

    통신이 가능합니다.
    I2C 마스터 역할을 할 보드는, WAD-A64U 보드입니다.

    BME280 모듈과 WAD-A64U의 연결 구성은 다음과 같습니다.
    이 부분에 대한 내용은 다음 강좌에서 자세하게 설명하겠습니다.



    BME280과 I2C 통신을 하기 위해서는,
    다음과 같이 두 가지 정보가 필요합니다.
    바로, BME280의 I2C 통신 방식과 레지스터 정보입니다.
    이 내용은 BME280의 Datasheet에서 자세하게 확인 가능하며,

    여기서는 요약해서 설명하겠습니다.


    * BME280 I2C 통신 방식
    - I2C Slave 어드레스
       I2C Slave 어드레스는 SDO 핀에 의해 결정되며, SDO가 Low인 경우 어드레스는 0x76이고,
       SDO가 High인 경우 어드레스는 0x77이 됩니다.

    - I2C Write : I2C로 Write하기 위해서는,
       다음과 같이 Slave 어드레스(7bit+W) + 레지스터 어드레스(1Byte) + 데이터(1Byte) + ...로
       Single or Multi Byte Write 전송 방식을 지원합니다.


    - I2C Read : I2C로 Read하기 위해서는
       다음과 같이 Slave 어드레스(7bit+W) + 레지스터 어드레스(1Byte) + Slave 어드레스(7bit+R) + 데이터(1Byte) + ...로 

       Single or Multi Byte Read 통신 방식을 지원합니다.


    * BME280 레지스터 구성
    BME280의 레지스터 정보는 다음과 같습니다.
    해당되는 레지스터에 I2C Write를 하여 원하는 설정을 할 수 있고,
    I2C Read를 통해 해당 레지스터의 정보를 읽을 수 있습니다.

    다음은, Datasheet에 있는 레지스터 테이블입니다.

    여기에 나와 있는 hum, temp, press 레지스터 정보를 이용해서,

    온습도와 압력 데이터를 읽을 수 있습니다.


    여기까지 BME280에 대한 기본 정보와, 하드웨어 구성에 대해서
    알아보았습니다.


    다음 강좌에서는 BME280 모듈과 WAD-A64U 보드를 서로 연결하고,
    실제 I2C 통신을 통해 온습도 데이터를 Read 하는 방법에 대해서 알아보겠습니다.


    글 읽어 주셔서 감사합니다.


    * 다음 링크는 저희 페이스북입니다. 방문해 주시면 감사하겠습니다.
       https://www.facebook.com/wearedev1


    * 유튜브 채널 구독 부탁 드립니다.
       https://www.youtube.com/c/wearedev


    그럼 안녕히 계십시오.