1. はじめに
IoTプロダクトを検討するにあたり、センサーや機器をどのように接続してセンサーデータを受け渡しすればよいか悩んでいる方も多くいらっしゃると思います。同じ装置内の情報を取得するのであればI2C、SPI、UARTなどのインターフェースが適しています。ただし、別の機器同士や離れた場所にある機器と接続する場合にはRS-232、RS-422、RS-485などのインターフェースが有力となります。
今回は、その中でも産業分野で多く利用されているRS-485インターフェースに焦点を当て、NEQTOからRS-485インターフェースを制御してデータを測定した例をご紹介します。
2. RS-485とは?
それでは、RS-485について概要を説明します。RS-485はTIA-485またはEIA-485とも呼ばれ、RS-232やRS-422などと同様に電子機器間でデータ通信を行うためのシリアル通信規格の1つです。この規格では物理層の仕様は定義されていますが、その他のデータフォーマット、タイミング、コネクターなどは定義されていません。
特徴として、以下が挙げられます。
- 差動信号を採用していることによりノイズの影響を受けにくい
- マルチポイント接続に対応しており複数の機器を接続可能
- 高速通信が可能・・・最大伝送速度 10Mbps(距離による)
- 長距離ケーブル敷設が可能・・・最大ケーブル長 1200m
Ethernetや無線通信などより高速で長距離通信が可能な規格もありますが、リアルタイム性という面から現在でも多くのシーンでの利用されている通信規格であり、主にビル保守管理装置、空調設備、工場内設備間の通信など産業機器の分野で利用されています。
3. IoTサービス「NEQTO」を使ったRS-485制御
それでは早速、RS-485インタフェースを接続したいと思います。今回はDIGILENT製のPmod RS485というUARTインターフェースをRS-485インターフェースに変換するボードを利用した例で説明をしていきます。
Pmod RS485を制御するためにはデータ制御線としてTXDとRXD、送信イネーブルと受信イネーブルの制御線としてDEと~REがアサインされています。NEQTOではこれらの制御線をUARTオブジェクトとGPIOオブジェクトを利用して制御することになります。
表1. Pmod RS485のUARTインターフェース側ピンアサイン
ピン番号 | 信号名 | 説明 |
---|---|---|
1 | ∼RE | 受信イネーブル |
2 | TXD | 送信データ |
3 | RXD | 受信データ |
4 | DE | 送信イネーブル |
5 | GND | グランド |
6 | VCC | 電源 |
また、ここで記載したRS-485インターフェースとは前項でも述べたようにシリアル通信規格の一つで物理層のみ定義されています。実際に通信するためには通信プロトコルが必要となります。次項で使用例を紹介していますが、通信プロトコルとしてはModbusプロトコルのModbus RTUを使用しています。
本記事ではModbusについて説明は行いませんので、ご興味のある方はこちらから最新のModbus仕様をご確認ください。
4. RS-485を使ったデータ取得のご紹介
それでは、NEQTOの使用例として、冷蔵庫の冷凍室内の温度データを取得するデモを行ってみたいと思います。温度測定には神港テクノス株式会社の指示調節計DCL-33Aを使用します。このDCL-33Aは温度の取得は勿論のことリレー制御により発熱器や冷却器をON/OFF制御することで温度調節ができる装置ですが今回は温度調節を行わずに温度測定のみ行います。このためDCL-33Aには熱電対のみを接続します。NEQTOとDCL-33AはRS-485インターフェースで接続し、次のようなシリアル通信設定でデータの受け渡しを行います。また、取得した温度データはNEQTO Consoleへ送信することで、リアルタイムに確認することが出来ます。
表2. DCL-33Aシリアル通信設定
項目 | 仕様 |
---|---|
通信回線 | EIA RS-485準拠 |
通信方式 | 半二重通信 |
同期方式 | 調歩同期式 |
通信速度 | 9600bps |
通信プロトコル | Modbus RTU |
スタートビット | 1ビット |
データビット | 8ビット |
パリティ | 無し |
ストップビット | 1ビット |
それでは今回のデモで使用する構成品を紹介します。
- STM32 Discovery Kit
- Pmod RS485 DIGILENT
- DCL-33A 指示調節計 神港テクノス株式会社
- 熱電対 Kタイプ
- RS-485通信用ケーブル
このほかに冷蔵庫、ACアダプター、ジャンパーワイヤーを使用しています。
今回のデモ:冷蔵庫の温度測定は次の様な構成で実施しました。
接続図を以下に示します。
実際に冷蔵庫の側面に設置した図は次の通りです。
取得した温度データをNEQTO Console上で確認します。NEQTO Console上でデータを扱う際にはこちらをご参照ください。
今回は1分周期でデータ測定を実施しており、そこで得られたデータから冷凍室内の温度が-15度前後に保たれている期間と、冷却停止と冷却を繰り返す動きを行っていることが確認できました。
5. まとめ
今回は、RS-485インターフェースを制御する方法の一例として、冷蔵庫の温度を取得する方法をご紹介しました。NEQTOでは、RS-485機器の監視、制御、機器の管理、アラート通知などIoTで必要な機能をご利用いただけます。
本記事をご参考にNEQTOを活用いただければ幸いです。
リンク
今回使用したデバイスの購入先
STM32 Discovery Kit [B-L4S5I-IOT01A]:チップワンストップ
指示調節計 [DCL-33A]:モノタロウ
RS-485通信モジュール [Pmod RS485]:秋月電子通商