クラウドからのモータON/OFF制御
1.概要
ここでは、外出先でスマートフォンやタブレットなどから、クラウドのダッシュボードをモニターし、ビニールハウス内の気温上昇や下降により、ビニールハウスの換気を行う場面を想定して、クラウドのダッシュボードからビニールハウスのモータを駆動する方法に関して説明します。

2. クラウド上の処理(Node-RED)
クラウドのダッシュボードでモータ(くるファミ)の起動、停止させるボタンを配置します。ボタンを押すと、ノード(node)と機器(machine)とON/OFFのメッセージをMQTTを使ってパブリッシングします。
① buttonノードです。押すと、”2,C,ON”をmsg.payloadに載せて出力します。
② buttonノードです。押すと、”2,C,OFF”をmsg.payloadに載せて出力します。
③ mqtt outノードです。クラウド上に配置したサーバにパブリッシングします。 トピックをここでは、“/MotorDrive”としています。MQTTに関しては“MQTTによるデータ送受信”を参照ください。


パブリッシングする文字列とそれらの意味を以下の表にまとめます。
文字列は、ノードと機器とON/OFFをカンマで区切っています。
ノード:LPWAのノード番号です。作動させる機器が複数ある場合は、対象の機器についているLPWAのノード番号を指定します。LPWAのコマンドに関しては、“IM920sL間の通信実験”を参照してください。
機器:R-MSMのGPIOの番号です。A: GPIO5、B: GPIO6、C: GPIO7 どのGPIOに接続された機器を動作させるのかを指定します。
ON/OFF:機器をONさせるのか,OFFさせるのかを指定します。ONを指定すると、R-MSMは、GPIOの電圧をH(+3.3V)にします。OFFの場合には、GND(0V)を出力します。

3. PDHの処理(Node-RED)
PDHでは、クラウドのMQTTをサブスクライブしています。そこで、MQTTから命令がサブスクライブされてくるとそのコマンドを解析します。そして、LPWA(IM920sL)のコマンドに変換して、USBに接続されたLPWAに出力します。
①mqtt inノードです。トピック”/MotorDrive“をサブスクライブします。
②csvノードです。サブスクライブされた文字列(カンマ区切り)をJSON形式に変換します。列名は“node,machine,command”としています。
ですので、文字列”2,C,ON”は、{“node”:2,“machine”:“C”,“command”:“ON”}に変換されます。
③functionノードです。JSON形式になった文字列を命令文字列に変換します。文字列が、一致しない場合は、次段にmsgを送りません。
④changeノードです。JSONata式を使って、LPWAに送るコマンドを作成しています。
JSONata式:”msg.header&msg.node&msg.machine&msg.command”
⑤serial outノードです。PDHのUSBに接続したLPWAにコマンドを出力します。


4. R-MSMの接続
R-MSMは、LPWA(IM920sL)とUARTで接続します。また、モータを駆動するリレーとは、MCP23008のGPIOを使って接続します。以下に回路増を示します。
R-MSMは、LPWAが受信したコマンドをUARTを介して受取り、解釈して、指定された番号のGPIOをHまたはLに切り替えます。

R-MSMをPCに接続し、LPWA(IM920sL)から送られてきたコマンドを受信して、GPIO7をHighもしくはLowにしている状況を次に示します。
GPIO7をHighにした時にリレーのLEDが点灯しています。Lowになると消灯します。モータを繋げればモータのON/OFFができます。

5. 動作確認実験
いちご農家でクラウドからのモータの動作実験を行いました。スマートフォンからの指示でモータのON/OFFの確認ができました。
① R-MSMとLPWAと動作電源用のバッテリです。
② リレーとモータの制御盤
③ くるファミモータ


