1Wire インターフェースを使ったセンサ(DS18B20)

1. 概要

1wire bus方式は、電源とGNDと1本のデータ線だけで通信を行う通信方式で、高速での通信は難しいですが、長いケーブルでも安定した通信が可能になるのと、複数のセンサをパラレルに接続できるのが特徴です。
水産養殖などで使用する水槽の水温を測定する温度センサは、防水でかつ複数個所を同時に測定する必要があります。ここでは、1wire bus方式の温度センサDS18B20を内蔵した防水温度計をR-MSMに接続して動作確認を行います。

 

2. DS18B20水温計とR-MSMの接続

2-1. DS18B20水温計の仕様

温度センサDS18B20内蔵の温度プローブの写真を次に載せます。
この先端の金属の筒の部分に温度センサDS18B20が内蔵されています。信号線が3本出ており、赤が電源、黒がGND、黄色がデータ信号です。
温度センサDS18B20の電源電圧範囲は3.0Vから5.5Vで、測定温度範囲は-55℃から125℃です。測定精度は、±0.5℃@-10℃~85℃です。
DS18B20の仕様書は、1-Wire Digital Thermometer DS18B20をご覧ください

次に、ブロック図を示します。このブロック図から、データ信号線に4.7kΩのプルアップ抵抗が必要なことが分かります。

2-2. R-MSMの1wire端子対応

R-MSMは、1wireに対応した端子を備えています。その端子は、コネクタA-ADC1(J10)の端子3:A-ADC2(ESP32-GPIO25)です。この端子は、Mode-D (デジタルセンサモード)の時のみ1wire対応端子として使用可能です。電源は、コネクタ+VOUTの端子1:3.3VOUTを使用します。GNDは、コネクタ+VOUTの端子2:GNDとコネクタA-ADC1(J10)の端子4:GNDを使用します。
センサモジュールのピン配置ならびにMode-AとMode-Dに関しては、こちらをご覧ください:センサモジュールの仕様

2-3.DS18B20水温計とR-MSMの接続

以下に、R-MSMとDS18B20の接続を示します。信号線には、4.7kΩのPull-Up抵抗を接続しています。
ここでは、DS18B20を1本のみ接続していますが、複数本接続する場合は、この電源とGNDと信号線に、追加のDS18B20を繋げてください。

3. 1wireセンサDS18B20の動作許可設定

R-MSMにおいて、1wire端子の動作ならびにDS18B20の読取りはデフォルトで許可されていません。そのため、DS18B20を使用するためには、その動作を許可する必要があります。1wire端子の動作を許可する方法を説明します。

DS18B20の動作をR-MSMで許可するためにPDH(Physical Data Hub)にインストールされているNode-REDのダッシュボードを使用します。そのためR-MSMとPDHをBluetoothもしくはUSBで接続します(USBの接続方法に関しては、こちらをご覧ください★IPアドレス追加必要)。

⓪ Node-REDのダッシュボードを開きます。

① 左上の三本線をクリックしてポップアップメニューを表示します。
② 出てきたメニューから「Sensor Device Control」をクリックします。

③ センサ選択画面が出てきます。現状の設定を知るために「RELOAD」ボタンを押します。

・すべてのセンサのON/OFFと動作周期の数値が読み出されます。
・この例では、このとき動作が許可されているBMX160とBME688とADS1015のチェックボタンがONになっています。

④ DS18B20は動作が遅いので、早く動作する必要があるセンサはオフします。ここでは、BMX160をオフにします。BMX160のチェックボタンをOFF側に倒します。
⑤ DS18B20のチェックボタンをON側に倒します。

以上、DS18B20の動作が許可されました。

3. DS18B20のデータ出力確認

DS18B20のデータがR-MSM経由でPDHに送られてくることを確認します。