Arduino筆記(57):光照度感測器 GY-30 BH1750FVI

我的書桌附近光線比較不足,可是也無法說出有多亮或多暗,需要科學的數據,本實作就用光照度感測器 GY-30  BH1750FVI感測模組來測一下我書桌附近的明亮程度。另一個應用是在房間或花園進行亮度照明的偵測,自動控制燈光的開關或亮度調整。

[GY-30 BH1750FVI 光強度模組]

GY-30 BH1750FVI的規格如下:
• 供電電源  :3-5v
• 光照度範圍:0-65535 lx
• 感測器內置 16bitAD轉換器:可直接輸出數字,省略複雜的計算
• 接近於視覺靈敏度的分光特性可對廣泛的亮度進行1勒克斯的高精度測定
• 標準NXP IIC通信協定

勒克斯是照度的國際單位制單位,勒克斯(Lux,通常簡寫為lx)是一個標識照度的國際單位制單位,1流明(lm)每平方米面積,就是1勒克斯。
        1 lm(球面度) = 1 cd(燭光) x sr(球面度)
如果一個光源發射1燭光的發光強度到1個立體角的範圍裡,則到那個立體角的總發射光通量就是1流明(lm)。每單位面積所接收到的光通量稱為照度。

[安裝BH1750 Library]

BH1750函式庫提供用於使用BH1750FVI IC的數位光傳感器模組讀取照明度

先到 Github 下載 Claws / BH1750,按右邊綠色選項「Clone or download」,再選「Download ZIP」。


• 將下載的壓縮檔解壓縮,放在 Arduino 主程式下的 libraries目錄內,以我的電腦來說,Arduino安裝在 C:\Program Files (x86)\Arduino,點進目錄有一個 libraries的子目錄,下載後解壓縮的目錄,整個放進  libraries 目錄,重新啟動 Arduino即可。


[材料]

• Arduino Uno x 1
• GY-30 (BH1750FVI) x1
• 連接線 x 4條

[接線與電路圖]

ArduinoGY-30 BH1750FVI
5V(VCC)VCC
GNDGND
A4(SDA)SDA
A5(SCL)SCL


[程式]

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

BH1750 lightMeter;

void setup(){

  Serial.begin(9600);

  // 初始化 I2C
  // 如果是 esp8266裝置,可以用 SCL 及 SDA 來使用 Wire.begin(D4, D3);
  Wire.begin();

  lightMeter.begin();
  Serial.println(F("BH1750 Test"));
}

void loop() {
  float lux = lightMeter.readLightLevel();
  Serial.print("Light: ");
  Serial.print(lux);
  Serial.println(" lx");
  delay(1000);
}

[實作結果]



[參考資料]

• wikipedia:勒克斯
• github:claws/BH1750

6 留言

張貼留言

較新的 較舊