Raspberry Piフォトセルログ&アラートシステム - Pythonで低消費電力光センサーを構築
このガイドでは、光レベルをログ記録しアラートをトリガーするRaspberry Piベースのフォトセンサーの構築手順を説明します。クローゼットや機器ロッカーなどの暗いスペースの監視、または単に周囲の照度を把握するのに最適です。
出力インジケーターとしてLEDを使用しますが、リレー、ブザー、通知サービスの制御にも応用可能です。必要なものはすべて含まれたAdafruit RPiスターターキット(コスト効率の良いバンドル)を使用するか、以下の部品表から自分でパーツを揃えることができます。
- 3×10mm拡散LED(赤、青、緑)
- 1×1µFコンデンサ
- 1×フォトセル(フォトレジスタ)
- 3×560Ω抵抗
- 1×Pi Cobblerブレークアウト
- 10×ブレッドボードジャンパーワイヤー
- 1×フルサイズはんだ付け不要ブレッドボード
一般的なマイクロコントローラーとは異なり、Raspberry Piにはオンボードのアナログ-デジタルコンバーターがありません。これを、フォトセルを通じてコンデンサの充電時間を計測する安価なRCタイミング技術で克服します。これは信頼性の高い読み取りを提供します。
前提条件
プログラミングはPythonで行います。RPi.GPIOライブラリとPi用のプリコンパイル済みモジュールを含むAdafruitのOccidentalisディストリビューションの使用を推奨します。最小セットアップを好む場合は、単にpipでRPi.GPIOをインストールしてください。
回路の消費電流が非常に少ないため、標準的なPi電源で十分です。校正には、可変光源(調光可能なデスクランプなど)があると、センサーが異なる照度レベルにどう反応するかを確認しやすくなります。
ステップ1 - RC回路の配線
1. Cobblerをブレッドボードに挿入し、どのピンも同じ電源レールに触れないようにします。そうしないとPiがショートする危険があります。
2. 3.3Vピンをブレッドボードのプラスレールに、GNDピンをマイナスレールに接続。
3. フォトセルをブレッドボードの中央ギャップ(左右の分割部分)に配置。
4. フォトセルの片側を3.3Vレールに、もう片側をPiのピン18に接続。
5. 1µFコンデンサをピン18からGNDに接続。これでRCネットワークが完成。
この時点でセンサーの校正に進めます。
ステップ2 - 校正とテスト
以下のPythonスクリプトを実行します。フォトセルを通じてコンデンサが充電されるまでの時間を継続的に測定します。返される値は光強度が増すにつれて低下します。
#!/usr/bin/env python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
RC_PIN = 18
def rc_time(pin):
GPIO.setup(pin, GPIO.OUT)
GPIO.output(pin, GPIO.LOW)
time.sleep(0.1) # コンデンサを完全放電
GPIO.setup(pin, GPIO.IN)
count = 0
while GPIO.input(pin) == GPIO.LOW:
count += 1
return count
while True:
print(rc_time(RC_PIN))
time.sleep(0.5)
光源を変化させると、明確な数値傾向が観察されます:光レベルが高いほど読み取り値が低くなります。暗闇と通常の照明下でいくつかサンプルを取得し、アラートトリガーの閾値を設定します。
ステップ3 - アラートの実装
閾値が定まったら、スクリプトを変更してLEDのオン/オフ、ファイルへのデータログ、メールやMQTTによる通知送信を行います。例えば、部屋が明るくなったときに赤色LEDを点滅させるには:
RED_LED = 17
GPIO.setup(RED_LED, GPIO.OUT)
while True:
level = rc_time(RC_PIN)
if level < THRESHOLD:
GPIO.output(RED_LED, GPIO.HIGH)
else:
GPIO.output(RED_LED, GPIO.LOW)
time.sleep(1)
より複雑なワークフローには、Home Assistant、Node-RED、カスタムFlaskウェブサービスとの統合を検討してください。
安全性とベストプラクティス
- Piに電源を入れる前に、ピン接続を必ず再確認してください。
- RCネットワークには3.3V電源を使用し、5Vは避けてください。PiのGPIOを損傷する恐れがあります。
- コンデンサの値は低く(1µF)保ち、充電時間が長くなりスクリプトが遅くなるのを防ぎます。
- 校正データを文書化しておくと、トラブルシューティングと将来の調整が容易になります。
このセットアップで、照明変化をログ記録し反応する信頼性が高く低消費電力の光センサーが完成しました。複数センサーの追加、データベースへのログ記録、Webダッシュボードでの可視化など、自由にプロジェクトを拡張してください。
製造プロセス
- シームレスMQTT統合:NodeMCU DHT22センサーとRaspberry Pi 3 B+ブローカー
- Raspberry Pi制御アクアポニックスシステム:構築ガイド & コード
- オプトカプラとRaspberry Piで24Vサーモスタットのイベントをログ記録・グラフ化
- Raspberry PiとPythonでリモート温度センサーを構築 – ステップバイステップガイド
- EzTempでRaspberry Pi上の温度・湿度をシームレスに監視
- Raspberry Piで室温監視 – Gnuplotグラフとメールアラート
- DS1820ワンワイヤー温度センサーをGPIOでRaspberry Piに接続する方法
- HC-SR04超音波距離センサーをRaspberry Pi 3に接続 – 完全ガイド
- ネイティブADCなしでRaspberry Pi上のアナログセンサーを測定
- Raspberry PiとDS18B20でマルチセンサー温度・光監視システムを構築
- Raspberry PiでGPIO経由のボタン押下を読み取り - ステップバイステップガイド