Japanese Stable CLIP を試してみた

センサーを使って Orange Pi で部屋の明るさを測る

光センサーはBH1750FVIを使います。aliexpressでいろいろあります。amazon.co.jpでもよいと思います。

https://www.aliexpress.com/item/32722878671.html


この辺を参考にしました。

https://www.raspberrypi-spy.co.uk/2015/03/bh1750fvi-i2c-digital-light-intensity-sensor/


Orange Pi Zero を使います。Orange Pi のサイトの Download に詳しいピン配置があるので、それを参考にします。

http://www.orangepi.org/download/orange_pi-zero-v1_11.pdf


OS は armbian にします。i2c を有効にできて、python のライブラリが使用できれば他の OS でもよいと思います。


i2c を有効にする

Orange Pi Zero で armbian を起動します。そうしたら、armbian-config を実行します。

sudo armbian-config

[Hardware] を選択
[i2c0] と [i2c1] にチェックを入れます
(後でもう一つセンサーをつなげるつもりなので、2個チェックを入れます。項目には i2c2 もありますが、実際には使えません)
再起動が必要とのことなので、再起動します


物理的に接続する

センサー裏側にピンアサインが印刷されています。今回は i2c 接続するので 5.ADDR は使いません。今回購入したセンサーは、コネクタとケーブルもセットになっていました。
線と文字が細すぎた・・・
Orange Pi Zero 側にはこのように接続しました。Orange Pi Zero は 26pin のヘッダーがついていないので、手持ちのピンを流用しました。その関係でピンがない箇所があったので、VCC と GND は USB などを拡張するピンからとりました。


センサーから値を読み取ってみる

まず、センサーを認識しているか確認します。

sudo i2cdetect -y 1

すると、こんな出力があると思います。

「23」と出力されていれば、アドレス 0x23 に(何かが)検出されているということになります。

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- 23 -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

センサーが認識されているようなので、スクリプトの実行に必要なライブラリをインストールします。python3 は入っているので、i2c 通信の smbus をインストールします。

sudo apt install python3-smbus

続けて、センサーを読み取るスクリプト本体です。

wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/bh1750.py

これを python で実行します。(センサー読み取りに管理者権限が必要なので、sudo で実行します)

$ sudo python3 bh1750.py
Light Level : 129.17 lx
Light Level : 109.17 lx
Light Level : 110.00 lx
Light Level : 110.83 lx
Light Level : 110.83 lx
Light Level : 110.83 lx
Light Level : 110.83 lx
Light Level : 110.83 lx
Light Level : 110.83 lx
Light Level : 111.67 lx

このように延々と Light Level が出力されれば OK です。

もしデバイスが見つからない場合は、bh1750.py をエディタで開いて "DEVICE" や "bus" の変数を適切な値に修正する必要があるかもしれません。


コメント