こんにちは、LinuCエバンジェリストこと、鯨井貴博@opensourcetechです。
以前、Raspberry Pi zeroで光センサーを使ってみましたが、ESP32開発ボード(Arduino)でもやってみようと思います!
光センサーBH1750FVI(GY-30)で明るさを測定する - Opensourcetechブログ
配線
こんな感じです。
具体的には、以下のように接続しています。
※前者が光センサー、後者がESP32開発ボード
VCC-3.3V
SCL-D22
SDA-D21
ADD-GND
GND-GND
あとは、Arduino IDE(PC)とESP32開発ボードの接続をデータ転送も可能なUSBケーブルで行えばOKです。
うまくデバイスと接続できない方は、以下の設定周りを見直すといいかと思います。
ボードとか、Upload Speedとか、シリアルポートなど。
BH1750FVIライブラリのインストール
Arduino IDEのツール > ライブラリを管理と辿り、BH1750FVIライブラリをインストールします。
インストールされたら、スケッチ > ライブラリをインクルードに表示されるようになります。
スケッチの作成
作成といっても、サンプルとして用意されているものを使用すればOkです。
ファイル > スケッチ例 > BH1750FVI > BH1750FVI_Simpleと辿ればサンプルがあります。
なお、今回は1箇所だけ修正しました。
光度(ルクス)測定のインターバルですが、デフォルトでは250msecとなっているので、
1000msecにしました。
※お好みでカスタムください。
その後、デバイスへの書き込み。
デバイスによっては、Bootを押しながら書き込みます。
※詳細は、以下の記事。
光度(ルクス)測定
では、実際に測定してみます。
※単位はルクス(単位面積当たりの明るさ度合いを表す単位)
観測結果は、シリアルモニタで確認します。
ツール > シリアルモニタ、もしくはショートカットCtrl+Shift+M(Windowsの場合)
まず、リビングの明るさ。
450ルクス程度。
イベントでもらったノベルティの懐中電灯。
6,500ルクス程度。
そして太陽光。
39,000ルクス。
桁違いですね。太陽拳、まぶしいわけです。
明るさの基準
調べてみるとちゃんと基準がありました。
色々と測定したくなりますね。
まとめ・考察
今回やってみてわかったのですが、
シンプルなIoT機器としてみた場合、ESP32はRaspberry Pi zeroより扱いやすいですね。
※逆にいろいろなパッケージをインストールして使い倒したい場合は、Raspberry Pi zeroに軍配かな。
その他、マイコンいじりは
・ハード・パーツ・ソフトウェア・電機関連・センサーで測定対象となるものなど多くのことを学ぶことが出来る総合学習である。
・はんだ付けで手先が器用になる。
・太陽拳のまぶしさを数値化でき、より原作(ドラゴンボール)を身近に感じる。
・もっと色々と試してみたくなる。
などなどいいことばかり!