チャコメーター1 表示機能6 照度測定

チャコメーター1に湿度表示機能を追加しました。
7セグLEDに表示させましたが、夜中眩しくていけません。
夜、部屋の照明を消灯すと、表示が暗くなる機能を追加したいと思います。

部品

手持ちのTSL2561で照度を測ります。

f:id:kainuma-k5:20210207151944p:plain
TSL2561

照度センサーをLEDの横に置くのはどうかと思いましたが、とりあえずブレッドボードの空いている箇所に設置しました。
f:id:kainuma-k5:20210207145252j:plain


i2cdetect

配線後、「再起動しないとダメかな」と思いつつi2cdetectすると、39ありました!
さすがラズパイ(の互換機)。

linaro@KK:/mnt/usb/work/7seg$ sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- 39 -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: 60 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- -- 

tsl2561ドライバ をインストール

pipでtsl2561ドライバをインストールします。

linaro@KK:/mnt/usb/work/7seg$ sudo pip install tsl2561
Looking in indexes: https://pypi.org/simple, https://www.piwheels.hostedpi.com/simple
Collecting tsl2561
  Downloading https://files.pythonhosted.org/packages/c6/6d/56f17e30c1121c80de7c1fd984680f76395d712561f7bc4c63ea4db00412/tsl2561-3.4.0-py3-none-any.whl
Installing collected packages: tsl2561
Successfully installed tsl2561-3.4.0

照度測定

ドライバーをインポートし、「tsl = TSL2561(debug=True)」で照度を測定できま した。

from tsl2561 import TSL2561
tsl = TSL2561(debug=True)
print(tsl.lux())

PM2:00ごろ、明るい昼間、80lux、
PM6:00ごろ、23lux、電気をつけて、60lux程度
夜、電気を消すと、2luxでした。

明るさ調整機能

1分に1回照度を測定し、10lux未満の場合は点灯時間を短くするようにしました。

for m in range(5): 
	tsl = TSL2561(debug=True)  #<--- 照度測定
	if tsl.lux() < 10:  #<--- 10lux未満の場合、点灯時間を短くする
		On_Time = 0.0001
	else:
		On_Time = 0.0004
	Of_Time = 0.0010 - On_Time
	for n in range(20000):  #<--- About 60sec
		for j in range(3):
			a = digit[ d[j] ]
			for i in range(8):
				if a[i] == 1:
					GPIO.output(Pin_A[i], GPIO.HIGH)
				else:
					GPIO.output(Pin_A[i], GPIO.LOW)
			if j == 1:
				GPIO.output(239, GPIO.HIGH)
			GPIO.output(Pin_C[j], GPIO.HIGH)
	  		time.sleep(On_Time)
	  		GPIO.output(Pin_C[j], GPIO.LOW)
	  		time.sleep(Of_Time)		

完成

夜、電気を消すと、表示も暗くなりました。