工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Raspberry PiとDS18B20によるプロフェッショナルな温度監視

概要

Raspberry Piは、英国のRaspberry Pi財団によって開発されたコンパクトなシングルボードコンピュータ(SBC)です。ARMベースの各種Linuxディストリビューションを実行し、GPIOピンを備えることで、センサーやアクチュエータなど多様な外部コンポーネントとの接続を可能にします。Piにはオンボードのアナログ-デジタル変換器(ADC)がないため、TMP36のようなアナログ温度センサーを直接使用することはできません。代わりに、DS18B20のようなデジタル温度センサーを用いることで、正確なシリアルベースの温度測定が可能になります。

必要なパーツ

基本設計

ハードウェアセットアップ

基本構成は、Raspberry Pi、DS18B20、4.7kΩプルアップ抵抗、Pi-Cobbler(またはブレッドボードへの直接配線)、ジャンパーワイヤで構成されます。すべてのコンポーネントをブレッドボードに挿入することで、迅速なプロトタイピングと容易なデバッグが可能です。

配線図

DS18B20はシングルワイヤーシリアルインターフェースを使用し、複数のセンサーが同じデータラインを共有できます。Raspbian(またはその派生OS)では、適切なカーネルモジュールを読み込むと、センサーがシリアルデバイスとして認識されます。センサーはGPIOピン4(BCM 4)に接続する必要があります。これは1-Wireプロトコルをサポートする唯一のピンです。視覚的な参考資料は、AdafruitのDS18B20セットアップガイドで確認できます。

DS18B20の選択

DS18B20には以下の3つのバリエーションがあります:

すべてのバリエーションに1-Wireインターフェースと温度変換ロジックが含まれ、デジタル読み取り値を直接Piに提供します。最新のRaspbianイメージには必要なドライバが含まれており、ファイルシステム経由で簡単にアクセスできます。

コマンドラインでの検証

配線完了後、ターミナルからセンサーを確認します:

sudo modprobe w1-gpio
sudo modprobe w1-therm
cd /sys/bus/w1/devices
ls
cd 28-xxxxxxxxxxxx  # 実際のセンサーのシリアル番号に置き換え
cat w1_slave

出力の最後の行がYESで終わり、次の行に千分の1℃単位の温度値が表示されます。

ソフトウェア – 基本ロガー

以下のPythonスクリプトは、毎秒温度を読み取り、標準出力に表示します。temp_logger_basic.pyとして保存し、root権限で実行してください。

#!/usr/bin/env python3
import os
import glob
import time

# 1-Wireモジュールの読み込み
os.system('modprobe w1-gpio')
os.system('modprobe w1-therm')

BASE_DIR = '/sys/bus/w1/devices/'
DEVICE_FOLDER = glob.glob(BASE_DIR + '28*')[0]
DEVICE_FILE = f'{DEVICE_FOLDER}/w1_slave'

def read_temp_raw():
    with open(DEVICE_FILE, 'r') as f:
        return f.readlines()

def read_temp():
    lines = read_temp_raw()
    while lines[0].strip()[-3:] != 'YES':
        time.sleep(0.2)
        lines = read_temp_raw()
    equals_pos = lines[1].find('t=')
    if equals_pos != -1:
        temp_string = lines[1][equals_pos+2:]
        temp_c = float(temp_string) / 1000.0
        temp_f = temp_c * 9.0 / 5.0 + 32.0
        return temp_c, temp_f

while True:
    print(read_temp())
    time.sleep(1)

実行すると以下のような出力が得られます:

(18.875, 65.975)
(18.875, 65.975)
(18.875, 65.975)
…

センサーファイルは保護されたシステムディレクトリにあるため、sudo python3 temp_logger_basic.pyとして実行してください。

応用設計

実運用では、ブレッドボードの代わりにはんだ付けされたPCBシールドを使用することで、より堅牢でポータブルなソリューションが構築できます。筆者はPiに直接挿せるカスタムシールドを製作し、コンパクトな黒いケースに収めました。ソフトウェアは1時間ごとに測定値をログし、MySQLデータベースに格納。データはGoogle Chartsで可視化し、明確なトレンド分析を実現しています。

応用ハードウェア

基本セットアップのすべてのコンポーネントに加え、以下が必要です:

詳細なガイドについては、DS18B20温度センサーガイドおよびRaspberry Piの1-Wireサポートに関するドキュメントを参照してください。

製造プロセス

  1. 5ドルI2C温度センサーで作るRaspberry Pi温度ロガー
  2. Python、SQLite、LabVIEWによるRaspberry Pi高精度温度プロファイリング
  3. Raspberry Pi温度・湿度ネットワークモニター – DIYセットアップガイド
  4. Raspberry Pi 2でDS18B20温度センサー読み取りガイド
  5. Raspberry PiでMaxim 1-WireセンサーとDS2482 I2Cブリッジを用いた温度測定
  6. Raspberry PiとPythonでリモート温度センサーを構築 – ステップバイステップガイド
  7. EzTempでRaspberry Pi上の温度・湿度をシームレスに監視
  8. Raspberry Piでサーバークローゼットの温度を正確に監視
  9. DIY自家醸造温度制御:Arduinoで監視・調節
  10. Raspberry PiでBMP085:I2C経由の高精度温度・気圧測定
  11. Raspberry Pi 3とPubNubでリモート気象監視