DS18B20について

概要

DS18B20 はデジタル温度センサで、Maxim (旧 Dallas Semiconductor) 製の 1-Wire 通信対応センサです。通信には 1 本のデータ線(+共通グランド)で済むため配線が簡単です。各センサには 64 ビットのユニークな ROM コードがあり、複数センサを同じバスに接続しても区別できます。

主な仕様(典型値):

項目
電源電圧3.0 V ~ 5.5 V
測定温度範囲−55 °C ~ +125 °C
精度±0.5 °C(−10 °C 〜 +85 °C 範囲)
分解能9 ~ 12 ビット(0.5 °C ~ 0.0625 °C 刻み)
変換時間最大 750 ms(12 ビット設定時)

モジュールとしては防水プローブ型やモジュール基板付きタイプもあり、水回りや屋外用途に使われることがあります。この記事では、防水プローブ型モジュールについて説明しています。

Amazon で入手できるモジュール例

ESP32との接続方法

DS18B20のケーブル

DS18B20(防水プローブ型)は3本のケーブルが1つにまとめられています。

黒:GND (グランド)
赤:VDD (電源)
黄:データ線

接続の基本

  1. データ線 (DQ) を ESP32 の任意 GPIO に接続
  2. プルアップ抵抗 (4.7 kΩ 程度) を DQ − VDD 間に設置
  3. 電源(VDD)を 3.3 V に接続
  4. GND を共通グランドに接続

複数センサを使う場合は、すべてのセンサ DQ を同じデータバス(共通線)に並列接続できます。

接続表(例:1 センサ、通常モード)

DS18B20 ピン接続先 ESP32備考
GNDGND共通グランド
DQ (Data)GPIO 4(例)任意の GPIO 可。4.7 kΩ 抵抗を接続
VDD3.3 V電源供給

必要なライブラリ

ライブラリ名作者 / 提供元URL / 備考
OneWirePaul Stoffregen 他GitHub OneWire
DallasTemperatureMiles BurtonGitHub DallasTemperature

通常は Arduino 環境で OneWire + DallasTemperature を使うのが簡便です。

サンプルコード

#include <OneWire.h>
#include <DallasTemperature.h>

// DS18B20 のデータ線を接続する GPIO 番号(例:GPIO 4)
#define ONE_WIRE_BUS 4

// OneWire インスタンスを作成(OneWire 通信を扱う)
OneWire oneWire(ONE_WIRE_BUS);

// DallasTemperature ライブラリに OneWire を渡してセンサ制御オブジェクトを作成
DallasTemperature sensors(&oneWire);

void setup() {
  Serial.begin(115200);
  // 少し待ってから開始
  delay(1000);
  Serial.println("DS18B20 温度測定開始");

  // センサ初期化
  sensors.begin();
}

void loop() {
  // 全センサに温度変換を要求
  sensors.requestTemperatures();

  // インデックス 0 のセンサを読み取る(1センサの場合)
  float tempC = sensors.getTempCByIndex(0);

  // エラー値チェック(接続異常などの場合 DEVICE_DISCONNECTED_C が返る)
  if (tempC == DEVICE_DISCONNECTED_C) {
    Serial.println("エラー:センサからの応答なし");
  } else {
    Serial.print("温度: ");
    Serial.print(tempC, 3);
    Serial.println(" °C");
  }

  // 次回読み取りまで待機
  delay(2000);
}

動作方法と出力サンプル

実行手順

  1. ESP32 用ボード設定を Arduino IDE に導入
  2. 上記サンプルコードを貼り付け
  3. OneWire および DallasTemperature ライブラリをインストール
  4. DS18B20 を配線(プルアップ抵抗付き、VDD / GND 接続)
  5. コードを書き込み
  6. シリアルモニタ 115200 baud で開き、温度出力を確認

出力サンプル(シリアルモニタ)


DS18B20 温度測定開始
温度: 23.125 °C
温度: 23.188 °C
温度: 23.063 °C
…

もしセンサ接続が正しくない場合は:


DS18B20 温度測定開始
エラー:センサからの応答なし
…

という出力が出ることもあります。

\ 最新情報をチェック /

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です