Raspberry PiでDS18B20温度センサーをテスト
Raspberry PiでDS18B20温度センサーをテスト
- sudo modprobe w1-gpio
- sudo modprobe w1-therm
- cd /sys/bus/w1/devices
- ls
- cd 28-xxxx(表示されるシリアル番号に置き換え)
- cat w1_slave
1-Wireインターフェースは少し不安定なことがありますが、温度値が利用可能かどうかを確実に報告します。センサーがデータをシンプルなテキストファイルとして公開するため、ファイルを読み取るだけで済みます。
1行目はYESまたはNOで終わります。YESの場合、2行目に千分の1度単位の摂氏温度が含まれます。上記の例では、センサーが20.687℃と26.125℃を報告しています。
複数のセンサーが接続されている場合、それぞれが別々の28-xxxxディレクトリとして表示されます。1つずつ挿し、作成されたディレクトリをメモし、将来の参照のためにセンサーにラベルを付けてください。
超音波センサーの操作
HC-SR04超音波センサーは、Piの+5Vレール(ピン2)から電源供給されます。トリガーピン(GPIO 23)が測定を開始し、エコーピンが往復距離に対応する幅のハイパルスを返します。GPIOピンは3.3Vしか耐えられないため、抵抗分圧でエコーラインを保護します。
サンプルコード
#!/usr/bin/python
# 必要なPythonライブラリをインポート
import time
import RPi.GPIO as GPIO
# 物理ピン番号ではなくBCM GPIO参照を使用
GPIO.setmode(GPIO.BCM)
# Piで使用するGPIOを定義
GPIO_TRIGGER = 23
GPIO_ECHO = 24
print("Ultrasonic Measurement")
# ピンを出力と入力に設定
GPIO.setup(GPIO_TRIGGER,GPIO.OUT) # トリガー
GPIO.setup(GPIO_ECHO,GPIO.IN) # エコー
# トリガーをFalse(Low)に設定
GPIO.output(GPIO_TRIGGER, False)
# モジュールの安定を待機
time.sleep(0.5)
# トリガーに10usパルスを送信
GPIO.output(GPIO_TRIGGER, True)
time.sleep(0.00001)
GPIO.output(GPIO_TRIGGER, False)
start = time.time()
while GPIO.input(GPIO_ECHO)==0:
start = time.time()
while GPIO.input(GPIO_ECHO)==1:
stop = time.time()
# パルス長を計算
elapsed = stop-start
# その時間に音速(cm/s)を掛けた距離
distance = elapsed * 34000
# 往路復路なので半分にする
distance = distance / 2
print("Distance : %.1f" % distance)
# GPIO設定をリセット
GPIO.cleanup()
超音波駆動ロケットランチャー
以下のスクリプトは、ユーザー定義距離より近くに物体があるときに超音波センサーでロケット発射をトリガーします。画像も撮影し、LEDを視覚インジケーターとして点灯させます。
#!/usr/bin/python
# Author : Julian and Kyle Milligan
# Date : 09/01/2013
# 必要なPythonライブラリをインポート
import time
import RPi.GPIO as GPIO
from subprocess import call
# 物理ピン番号ではなくBCM GPIO参照を使用
GPIO.setmode(GPIO.BCM)
# Piで使用するGPIOを定義
GPIO_TRIGGER = 23
GPIO_ECHO = 24
GPIO_FIRE = 4
print("Ultrasonic Measurement")
# ピンを出力と入力に設定
GPIO.setup(GPIO_TRIGGER,GPIO.OUT) # トリガー
GPIO.setup(GPIO_ECHO,GPIO.IN) # エコー
GPIO.setup(GPIO_FIRE,GPIO.OUT) # 発射
# トリガーをFalse(Low)に設定
GPIO.output(GPIO_TRIGGER, False)
# モジュールの安定を待機
time.sleep(0.5)
# トリガー距離を設定
setdistance = input('Please enter a value to trigger the camera:')
while True:
time.sleep(0.1)
GPIO.output(GPIO_TRIGGER, True)
time.sleep(0.00001)
GPIO.output(GPIO_TRIGGER, False)
start = time.time()
s = start
quit = 0
while quit == 0:
quit = GPIO.input(GPIO_ECHO)
start = time.time()
if start - s > 0.1:
quit = 1
if start - s < 0.1:
while GPIO.input(GPIO_ECHO) == 1:
stop = time.time()
elapsed = stop-start
distance = elapsed * 34300
distance = distance / 2
print("Distance : %.1f" % distance)
if distance < setdistance:
call(["raspistill -o image.jpg"], shell=True) # Piカメラで写真撮影
print("Fire")
GPIO.output(GPIO_FIRE, True) # GPIOピン7をオンにしてロケット発射
# GPIO設定をリセット
GPIO.cleanup()
Raspberry Piからウェブカムをストリーミング
USBウェブカムからビデオをストリーミングするには、Piがネットワークに接続されていることを確認。最近のウェブカムを接続し、MJPEGストリーミングの設定については公式ガイドに従ってください。詳細については、DS18B20センサーテストのドキュメントを参照してください。
製造プロセス
- 複数DS18B20 1-WireセンサーをRaspberry Pi接続で精密温度監視
- DS1820ワンワイヤー温度センサーをGPIOでRaspberry Piに接続する方法
- HC-SR04超音波距離センサーをRaspberry Pi 3に接続 – 完全ガイド
- Raspberry Piでライントラッキングセンサー – シンプルなKY-033ドア/ライン検出器
- DS18B20ワンワイヤーデジタル温度計をRaspberry Piに接続 - ステップバイステップガイド
- Raspberry Pi、MCP9808、InfluxDB、Grafanaで作る家庭温度モニター
- Raspberry Pi GPIOマスター:PIRモーションセンサーをB+/Model 2でインターフェース
- Raspberry Piでホームセキュリティシステムを構築:PIRモーション検知+カメラメール通知
- HC-SR501 PIRモーションセンサーをRaspberry Piで接続・調整・プログラミングする方法
- エモーションセンサー&EEG:リアルタイム感情検知のための低コストハードウェア
- デジタル光センサー:Windows 10 IoT Coreで周囲光に応じてLEDを制御