ESP8266 (ESP-WROOM-02)에 조도 센서(BH1750)를 연결해 보았다

ESP8266(ESP-WROOM-02)에 조도 센서(BH1750)를 연결하여 시리얼 플로터로 그래프화해 보았습니다.



부품 정보



BH1750 은 조도(룩스)를 고정밀도로 디지털 측정할 수 있는 센서입니다. ¥180과 염가입니다.
CdS 셀 은 좀 더 싸지만 저항값을 룩스로 변환하는 데 한 번 걸리므로 객관적인 수치를 취하고 싶은 경우에는 이 센서를 추천합니다.

ESP8266은 그래서 M구 ぅ아 그림 SP8266 CH340이라는 개발 보드를 사용합니다.
중국에서 도착하는 데 시간이 걸립니다만, ¥ 480으로 염가입니다.

회로 정보



BH1750I2C 이라는 규격으로 접속할 수 있는 센서입니다.
이 표준은 다른 센서와 캐스케이드 연결할 수 있으며 ESP8266에서도 쉽게 사용할 수 있습니다.
Amazon에서도 다양한 I2C 디바이스이 판매되고 있기 때문에 바라보고있는 것만으로도 꿈이 퍼집니다.

연결은
SCL에 GPIO5, SDA에 GPIO4를 연결하고,
후에는 전원과 GND를 연결할 뿐입니다.

회로도 같은 것





소스 코드(스케치)



BH1750 ESP8266 라이브러리 가 공개되어 있었으므로 그쪽을 이용했습니다.
lightMeter.begin 안에서, Wire.begin() 하고 있으므로, setup() 에서는 불필요합니다.

BH1750.ino

#include <Wire.h>
#include "BH1750.h"

BH1750 lightMeter(0x23);
float lux = 0.0;

void setup() {
  // BH1750  
  lightMeter.begin(BH1750_CONTINUOUS_LOW_RES_MODE);
  Serial.println("BH1750 start.");

  // シリアル通信を開始
  Serial.begin(115200);
  Serial.println("Serial start.");
}

void loop() {

  // 照度を計測してシリアルに出力
  uint16_t lux = lightMeter.readLightLevel();
  Serial.println(lux);

  delay(1000);
}

  • BH1750_CONTINUOUS_LOW_RES_MODE 부분을 변경하면 측정 정밀도와 모드를 설정할 수 있습니다. 고정밀도로 하면 측정에 120ms정도 걸린다고 합니다.
  • BH1750_CONTINUOUS_HIGH_RES_MODE
  • BH1750_CONTINUOUS_HIGH_RES_MODE_2
  • BH1750_CONTINUOUS_LOW_RES_MODE
  • BH1750_ONE_TIME_HIGH_RES_MODE
  • BH1750_ONE_TIME_HIGH_RES_MODE_2
  • BH1750_ONE_TIME_LOW_RES_MODE

  • 라이브러리를 사용하는 경우 h 파일과 cpp 파일을 ino (스케치)와 동일한 디렉토리에 넣으면 괜찮습니다.
  • 넣은 라이브러리는 #include <xxxx.h> 대신 #include "xxxx.h"

    그래프



    Arduino IDE의 시리얼 플로터로 그래프화해 보았습니다.

    조도

    손을 잡고 그림자를 만들거나 만들지 않거나 해 보았습니다.

    ※궁극적으로, 이 센서&ESP8266은 자택 차고의 환경 감시에 사용할 예정

    참고 URL



    BH1750 라이브러리
    htps : // 기주 b. 코 m/cぁws/BH1750

    I2C
    htps : // 그럼.ぃきぺぢ아. 오 rg / uki / 2C

    I2C 버스 사양 및 사용자 매뉴얼
    h tp // w w. 응 xp. 코 m/도쿠멘 ts/우세 r_마누아 l/우 M10204_그럼. pdf
  • 좋은 웹페이지 즐겨찾기