クラウドからPDHを経由してR-MSMへのコマンド送信

1. 概要

IOエクスパンダ MCP23008のGP5~7のポートがOutputのGPIOとしてR-MSMに搭載されていることを前の章で確認した。
ここでは、クラウドからLEDの点灯/消灯実験を行う。

動作の概要を以下に示します。
① Cloud上のVM(Virtual Machine)上のNode-REDが、MCP23008のGP5のH/LコマンドをMQTTを使って送信(パブリッシング)します。
② PDHは、MQTTのサブスクライブします。そしてコマンドが来たら、R-MSMへBluetoothのシリアル送信(Serial Port Profile)を使って送ります。
③ R-MSMはコマンドを読み、GP5のOutputをH/Lします。
④ それにより、LEDが点灯/消灯します。

CloudとPDHの通信には、MQTTを使用します。MQTTの通信に関しては、こちら(Node-REDへのAedes Brokerの導入)を参照ください。

 

2. Cloud側の設定

2-1. ブローカーの配置

CloudのNode-RED上に、Aedes MQTT brokerを配置します。Cloud上にmosquittoのブローカーを設定している場合は必要ありません。

2-2. コマンドのパブリッシングの準備

① injectノードを2つ置き、一方のpayloadに、”MCP23008_GP5=true“を設定します。
② もう一方に、 ”MCP23008_GP5=false“を設定します。
③ mqtt outノードを配置し、localhost のブローカーに繋ぎます。
④ トピックをここでは”/command“と設定しました。

3. PDH側の設定

① mqtt inノードを配置します。cloudの外部IPアドレスを設定します。
② トピックは、パブリッシングと合わせて”/command“とします。
③ シリアルポートを配置します。Bluetooth(rfcomm0)でR-MSMと接続します。
詳細は、こちら(R-MSMBluetooth信号のスキャンと接続)を参照ください。
④ パブリッシングデータのモニタのためにdubugノードを配置します。

4. 動作確認

R-MSM に送られてきたコマンドを確認するためとR-MSMの電源を確保するために、R-MSM をUSBでPCに接続します。
① cloud上のinjectノードのボタンを押し、“MCP23008_GP5=true”をパブリッシングします。PDH でそのコマンドをサブスクライブし、R-MSM に送ります。
 R-MSM でコマンドが受け取られ、MCP23008のGP5の出力が“1(H)”になります。そして、LEDが点灯します。
② 次に、cloud上の別のinjectノードのボタンを押し、“MCP23008_GP5=false”をパブリッシングします。PDH でそのコマンドをサブスクライブし、R-MSM に送ります。
  R-MSM でコマンドが受け取られ、MCP23008のGP5の出力が“0(L)”になります。そして、LEDが消灯します。

以上で、クラウドからPDHを経由してR-MSMへのコマンド送信の実験が完了しました。