お久しぶりですhagechipです←
今回は照度センサ(フォトトランジスタ)を使用して、明るさを計測します。
日照時間のデータ取得のためです。
明るければ太陽が出てて、暗ければ太陽は隠れている。的な。
日照計は高いので、安上がりなフォトトランジスタを使います。
最悪測定できなくてもいいしね。(その時は気象庁のデータを使う)
実はコードは前回の土壌センサで使用したものをそのまま使えるため、
今回やることはあまりありません。
現段階の結論を先に書いておくと、
・明るさで変化する値を取得するのは可能
・精度があまりよくなさそう
・晴れ、曇りでどの程度の差が出るのかは不明
(そこまで大きな差は出ない気がする)
→それっぽいの値を得ることはできたが、
実際に使えるかはもっと検証しないとわからない。
というか厳しいのではないかと思っている。
目次
用意するもの
・各種電子工作部品
・フォトトランジスタ
・ADコンバータ
電子工作部品については、どのセンサを使用する場合にも
必要なので、下のページにまとめています。
http://ameblo.jp/hagechip/entry-12276345664.html#parts
・フォトトランジスタ
明るさによって出力が変わるトランジスタです。
今回はこれを使用します。
・照度センサ(フォトトランジスタ)NJL7502L(新日本無線)
(リンクは秋月電子)
2個で100円!安いですね!
人間の目に最適化されたものですが、いくら探しても太陽光で
最適化されたセンサが見つからなかったのでこれを使用します。
今回も出力はアナログ値です。
前回同様、ADコンバータも使用します。
ADコンバータ:MCP3208-CI/P (Microchip社)
(リンクは秋月電子)
コードについて
冒頭に書いたとおり、コードは土壌センサで使用したものをそのまま使用できます。
実際に使うときはADコンバータの0chに土壌センサ、1chに照度センサを接続して
使い分けをすることになるのかな。。。
そこら辺は最終的に全部つなげるときに記載します(たぶん)
基本コード
前回作成してる人はファイルをコピーして、MeasureIlluminance.pyとでも名付けましょう。
69行目に記載してる出力ファイル名は変更しておきましょうかね。
try:
f = open('/home/pi/MoistureLog.csv', 'a')
これを
try:
f = open('/home/pi/IlluminanceLog.csv', 'a')
回路接続
電圧は常にかけておく → 明るさで出力電流が変わる
フォトトランジスタ:+側 - ラズパイ:5VPower
フォトトランジスタ:-側 - MCP3208:0ch
MCP3208:VDD - ラズパイ:5VPower
MCP3208:VREF - ラズパイ:5VPower
MCP3208:AGND - ラズパイ:Ground
MCP3208:CLK - ラズパイ:BCM11番ピン
MCP3208:DOUT - ラズパイ:BCM9番ピン
MCP3208:DIN - ラズパイ:BCM10番ピン
MCP3208:CS/SHDN - ラズパイ:BCM8番ピン
MCP3208:DGND - ラズパイ:Ground
配線について
ちゃんと計測できてるのか疑問が生まれてきました
フォトトランジスタは明るさにより"出力電流"が変化する
ADコンバータ(MCP3208)は"基準電圧(VREF )と入力電圧(0ch)の比"を出力
(基準電圧にはラズパイ:5VPowerを接続してる)
上の回路でちゃんと計測できているのかな・・・?
他のサイトを見てると「フォトトランジスタ - ADコンバータ間に抵抗を直列に接続」したり、
「フォトトランジスタの出力に、ADコンバータと抵抗を並列に接続」したりしてます。
前者は抵抗で電圧降下が起きてしまうので、ADコンバータの入力電圧が小さくなるだけです。
だダイナミックレンジも小さくなるので精度がちょっと落ちてしまうと思います。
後者は並列接続のため取得できる値に関係がありません。
フォトトランジスタの電圧降下について勉強が必要ですね。。。
(土壌センサ使うときもMCP3208は"出力電流"を計測してるもんだと思ってた)
まぁよくわかりませんが、次の章の通り、相対値ですがそれっぽい値を
取得できているため、ひとまずは上記回路で進めました(´ε` )
計測実行
計測を行ってみます。
まだまだ栽培できる状態に持っていくのは先になりそうですね。



