Modbus/RTUインタフェースを持つ圧力式水位センサーとLoRaWANの出会い

Modbus/RTUインタフェースを持つ圧力式水位センサーとLoRaWANの出会い

Modbus/RTUインタフェースを持つ圧力式水位センサーとLoRaWANの出会い

河川や貯水池、調整池などの水位監視は、防災・減災の観点から極めて重要な社会インフラです。近年、IoT 技術の発達により、遠隔地からリアルタイムで水位データを取得できるシステムの需要が高まっています。

今回は、Dragino 社の新製品 RS485W-LB と、公共分野で長年の実績を持つ株式会社拓和CPS-RM シリーズ圧力式水位計 を連携させて、LoRaWAN でデータを取得する実験を行いました。

※株式会社拓和の営業担当者様の取り計らいで、Modbus インタフェースを持つ CPS-RM シリーズ圧力式水位計をお貸出しいただきました。


img


1. RS485W-LB の進化ポイント

1.1 電源供給の強化

Dragino 社の従来製品 RS485-LB/LS と新製品 RS485W-LB の最大の違いは、電源供給能力の向上です。

info   Info
- RS485-LB/LS: DC 3.3V と 5V 電源供給
- RS485W-LB: DC 12V 電源供給(3.3V/5V も継続対応)

この DC12V 電源供給の実現により、より多くの産業用センサーとの接続が可能になりました。特に、高精度な測定を行う圧力センサーや流量計など、従来の 5V 電源では動作困難だった機器との連携が実現できるようになりました。

写真左側が RS485W-LB の基板です。赤枠部分が DC12V 用の端子です。


img


1.2 RS485W-LB の主な仕様

RS485W-LB の主要仕様は以下の通りです:

  • 通信プロトコル: LoRaWAN v1.0.3 Class A
  • Modbus/UART 対応: Modbus と UART(TTL)の両方のセンサーに対応
  • 電源供給: DC 3.3V / 5V / 12V
  • 動作環境: -40℃ ~+85℃
  • バッテリー寿命: 設定により 5-10 年(理論値)

2. 拓和 CPS-RM シリーズの概要

2.1 公共分野での実績

株式会社拓和は、水文観測機器の分野で 50 年以上の歴史を持つ専門メーカーです。今年 2025 年は、創業 60 周年だそうです。同社の CPS-RM シリーズ圧力式水位計 は、以下の特徴を持ちます。

  • 国土交通省をはじめとする公共機関での豊富な採用実績
  • 高精度な水位測定(± 0.2% FS / ± 0.1% FS ※測定範囲による)
  • 堅牢な設計による長期安定運用
  • Modbus 対応

img


写真右が CPS-RM シリーズの圧力式水位計です。 私が過去扱ったことがあるものは、左側にあるような小ぶりのものです。CPS-RM シリーズ製品はがっつりしっかりした作りです。そこはかとなく安定感がありますね!

なお、CPS-RM シリーズから取得できる代表的なデータは以下の通りです。

info   Info
1. 補正後水位 (m)
2. 水温 (℃)
3. エラー情報 (ステータスコード)

2.2 電源要件と従来の課題

CPS-RM シリーズの動作には DC 7V-15V の電力供給 が必要です。これが、従来の RS485-LB(5V 出力)では接続できない理由でした。

warning   Warning
従来の課題
- CPS-RM シリーズ: DC 7V-15V 必要
- RS485-LB: DC 5V 供給のみ → 電力不足により動作不可

RS485W-LB の 12V 電源供給により、この課題が解決され、高品質な圧力式水位計を LoRaWAN ネットワークに組み込むことが可能になりました。

3. 接続方法

3.1 物理接続

RS485W-LB と CPS-RM シリーズの接続は、標準的な Modbus RTU 接続で行います。

CPS-RM シリーズRS485W-LB
DC+12V+
DC-12V-
A(+)RS485-A
B(-)RS485-B

3.2 FW 設定

RS485W-LB のファームウェアに設定すべき肝は以下通りです。

AT+5VT=1000
AT+MOD=1
AT+MBFUN=0
AT+BAUDR=38400
AT+DATABIT=8
AT+PARITY=0
AT+STOPBIT=1
AT+DATAUP=0
AT+COMMAND1=01 04 00 02 00 02 ,1     AT+SEARCH1=0,0     AT+DATACUT1=7,2,4~7     AT+CMDDL1=0
AT+COMMAND2=01 04 00 04 00 02 ,1     AT+SEARCH2=0,0     AT+DATACUT2=7,2,4~7     AT+CMDDL2=0
AT+COMMAND3=01 04 00 06 00 01 ,1     AT+SEARCH3=0,0     AT+DATACUT3=6,2,4~5     AT+CMDDL3=0

1 つ目のコマンドで補正後水位を取得し、2 つ目のコマンドで水温を取得し、3 つ目のコマンドでエラー情報を取得しています。

4. The Things Stack でのデータ処理

4.1 ペイロードデコーダー

受信したデータをデコードするため、The Things Stack のペイロードフォーマッターに以下の関数を設定しました:

function decodeUplink(input) {
  const bytes = input.bytes;
  const decoded = {};

  decoded.battery = ((bytes[0] << 8) | bytes[1]) / 1000 + " V";
  decoded.payload_version = bytes[2];

  decoded.level_m = ieee754ToFloat(bytes.slice(3, 7)).toFixed(3) + " m";
  decoded.temp_c = ieee754ToFloat(bytes.slice(7, 11)).toFixed(2) + " ℃";

  const error = (bytes[11] << 8) | bytes[12];
  decoded.error_code = "0x" + error.toString(16).padStart(4, "0");
  decoded.error_flags = parseErrorFlags(error);

  return { data: decoded };
}

function ieee754ToFloat(bytes) {
  const view = new DataView(new ArrayBuffer(4));
  bytes.forEach((b, i) => view.setUint8(i, b));
  return view.getFloat32(0, false);
}

function parseErrorFlags(code) {
  return {
    comm_error_transient: !!(code & 0x0002),
    comm_error_confirmed: !!(code & 0x0004),
    pressure_sensor_measurement_error: !!(code & 0x0010),
    eeprom_access_error: !!(code & 0x0100),
  };
}

4.2 受信データの例

実際に受信したデータの例:

img

8. まとめ

Dragino RS485W-LB の 12V 電源供給機能により、従来は接続困難だった高精度な産業用センサーを LoRaWAN ネットワークに統合することが可能になりました。

特に今回の拓和 CPS-RM シリーズとの組み合わせでは、公共分野で実績のある高精度水位計をワイヤレス化できることが実証されました。これにより、設置コストの削減保守性の向上 を両立した水位監視システムの構築が現実のものとなりました。

edit   Note
主なメリット
- 高精度な水位・水温測定の実現
- ワイヤレス化による設置柔軟性の向上
- 長期バッテリー駆動による保守負荷軽減
- 既存の高品質センサー資産の有効活用

なお、本記事で紹介した RS485W-LB は、当社 EC サイトでお買い求めいただけます。

水位監視システムの導入ご検討の方既存の RS485 インタフェースを持ったセンサーを IoT 化したいとご希望のある方、ぜひお気軽にご相談ください。