Raspberry Pi光センサーチュートリアル - LDRを配線してPythonで光量を読み取る
この包括的なRaspberry Pi光センサーチュートリアルでは、フォトレジスタをGPIOピンに配線し、簡潔なPythonスクリプトでデータを読み取る手順を解説します。回路、コード、光目覚まし時計などの実用的応用まで、実践的な理解を提供します。
このプロジェクトはセンサー統合を探求したい初心者に最適であり、より高度なプロジェクトの基礎にもなります。
以下では、必要コンポーネント、ステップバイステップ配線、Piのデジタルピンを疑似アナログ測定に変えるPythonロジックを詳述します。
必要機材
ここにすべてをリストアップ。ブレッドボードは必須ではありませんが、特に実験を続ける場合は組み立てが大幅に簡単になります。
推奨
Raspberry Pi
8GB SDカードまたはPi 2/B+用Micro SDカード
イーサネットケーブルまたはWi-Fiドングル
光センサー(LDR)
1µFコンデンサ
オプション
Raspberry Piケース
USBキーボード
USBマウス
GPIOブレークアウトキット
ブレッドボード
ブレッドボード用ワイヤー
動画
視覚学習者向けに、完全な配線とリアルタイムセンサー出力を実演する動画を用意。テキストでも同等の情報を提供しています。
光センサー回路の構築
回路は意図的にシンプル:LDR、1µFコンデンサ、単一GPIOピンのみ。LDRの抵抗値は明るい光で数百Ω、暗闇で数MΩまで変化します。コンデンサのRC時定数を測定することで、アナログ入力なしでも光量を推測できます。
- ピン#1(3.3V)をブレッドボードの+レールに接続
- ピン#6(GND)をブレッドボードの-レールに接続
- LDRをブレッドボードに配置、片端から+レールへワイヤー
- LDRのもう片端からPiのピン#7へワイヤー
- 1µFコンデンサをピン#7からのワイヤーと-レールの間に挿入、負極を-レール側に
視覚的なレイアウトは下図を参照。ハードウェア完成後、Pythonコードでデジタルピンを疑似アナログ測定に変換します。
Pythonコード
以下のスクリプトは、コンデンサが電源電圧の75%まで充電されるまでの時間を測定。このRC時間はLDRの抵抗に比例し、環境光の概算値を得られます。
#!/usr/local/bin/python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
# RCネットワークに接続するピン
pin_to_circuit = 7
def rc_time(pin):
count = 0
GPIO.setup(pin, GPIO.OUT)
GPIO.output(pin, GPIO.LOW)
time.sleep(0.1)
GPIO.setup(pin, GPIO.IN)
while GPIO.input(pin) == GPIO.LOW:
count += 1
return count
try:
while True:
print(rc_time(pin_to_circuit))
except KeyboardInterrupt:
pass
finally:
GPIO.cleanup()
デプロイと実行
Raspbian搭載のRaspberry Piなら必要ライブラリはプリインストール済み。手動インストールが必要な場合:
sudo apt-get update
sudo apt-get install python3-rpi.gpio
リポジトリをクローンして実行:
git clone https://github.com/pimylifeup/Light_Sensor/
cd Light_Sensor
sudo python3 light_sensor.py
またはコードを新規ファイルにペーストしlight_sensor.pyとして保存、同コマンドで実行。
精度向上と応用例
LDRは低コストで手軽ですが、ダイナミックレンジの狭さと温度感度から精密用途には不向きです。高精度が必要ならAdafruit高ダイナミックレンジデジタル光センサーなどを検討してください。
- 光目覚ましアラーム: 日の出に合わせてアラーム音量を徐々に上げる
- 庭の日照モニター: 庭の各ゾーンの光強度を記録し、植栽判断の参考に
- 室内占有アラート: 暗い部屋で予期せぬ光を検知し通知
自由に実験し、RCネットワークを調整したり、より大規模なプロジェクトに統合したりしてください。問題や提案があればコメントでお知らせください。
出典:Raspberry Pi Light Sensor – A Simple LDR Tutorial
製造プロセス
- 5ドルI2C温度センサーで作るRaspberry Pi温度ロガー
- Raspberry PiとPythonでリモート温度センサーを構築 – ステップバイステップガイド
- Raspberry Piで気象観測ステーションを構築し、日次天気データをメール送信
- DS1820ワンワイヤー温度センサーをGPIOでRaspberry Piに接続する方法
- HC-SR04超音波距離センサーをRaspberry Pi 3に接続 – 完全ガイド
- Home Assistant on Raspberry Piで安全なホーム監視 – モーション、アラーム、ビデオ撮影
- Raspberry PiでPIRモーションセンサーとLEDを制御
- Raspberry Piで低コスト土壌水分センサーを構築 - スマート灌漑に活用
- Raspberry Piでリニアホールセンサーを読み取り: JavaガイドとADC0832の知見
- Raspberry PiとDS18B20でマルチセンサー温度・光監視システムを構築
- 4ドルのソーラーライトをスマートワイヤレスセンサーノードに変身: MSP430 + nRF24L01+で庭園監視