方法Node-REDでシリアルを使う
  • 04 Nov 2023
  • 1 読む分
  • 寄稿者

方法Node-REDでシリアルを使う


記事の要約

方法Node-REDでシリアルを使う

シリアルデバイスへの接続、node-REDでのシリアルポートの設定、node-REDライブラリフローの紹介

この記事では、Node-REDを使用してTulip Edgeデバイスからシリアルデータを読み書きする方法について説明します。各タイプのEdgeデバイスの異なるシリアルポートに接続する方法と、シリアル通信を使用する2つのTulip Node-REDライブラリフローについて説明します。

必要なもの

  • Tulipアカウントに登録されたEdge IOまたはEdge MC

  • Edgeデバイスとシリアル通信を行うデバイス

    • Edge IOは以下のシリアルデバイスをサポートしています:

      • RS-232

      • RS-485(半二重)

      • USB経由のシリアル

        • Edge MCは、以下のシリアルデバイスをサポートしています:
      • USB経由シリアル

      • TTY TX/RX付きUART

1.ハードウェアのセットアップシリアル・デバイスへの接続

まず、シリアル周辺機器をEdgeデバイスに物理的に接続してください。

オプション:最初にホストデバイス(ラップトップや別のTulip Edgeデバイスなど)と通信してNode-REDのフローをテストしたい場合は、ヌルモデム付きRS-232、またはTX/RXラインがクロスオーバーされたUSB-UARTケーブルを使用します(電源は接続しないでください)。

ホストデバイス上でEdgeデバイスと通信するために使用できるプログラムの例を以下に示します:

  • screen(MacOS):screen(MacOS): シリアル通信用のコマンドラインユーティリティ。
  • PuTTY(Windows/Linux):シリアルコンソールとして動作する無料のターミナルエミュレーター。
  • Node-RED:ホストデバイス上で実行されているNode-REDのインスタンスで、補完的なNode-REDフローを作成する。

2.Node-RED セットアップ:シリアルポートの設定

Node-RED のシリアル通信にはnode-red-contrib-serialportパッケージのノードを使用します。Tulip EdgeデバイスOS44+の場合、このパッケージはプリインストールされています。そうでない場合はNode-REDエディタを使ってパレットにノードを追加します。

シリアルノードはネットワークタブの下に表示されます:

Node RED Serial Setup Port Config

シリアル入力を読み込むには、シリアル入力をドラッグ&ドロップします。シリアル入力を読み込むには、シリアル入力ノードをドラッグ&ドロップし、シリアル出力を書き込むには、シリアル出力ノードをドラッグ&ドロップします。どちらのノードでも、シリアル・ポートを設定するには、"Serial Port "プロパティの編集ボタンをクリックします:

Node RED Serial Set Up Edit Port Modal

その後、以下のプロパティを入力します:

  • Serial Port:シリアルポートのdevpath(例:/dev/ttyS0)。これは、接続するEdgeデバイスと物理シリアルポートによって異なります(Edge IOまたはEdge MCの記事を参照)。利用可能なパスは、以下のように検索ボタンをクリックして表示できます。

Node RED Serial Setup Add New Port

注意:現在、Node-REDではUSBデバイスのホットプラグはサポートしていません。つまり、Node-RED が USB デバイスにアクセスするには、デバイスの起動時に USB デバイスを接続する必要があります。

  • 設定ボーレートやその他の設定は、通信相手のシリアルデバイスのボーレートに合わせる必要があります。

Node RED Serial Setup Settings

  • 入力:ノードがいつメッセージを出力するかを選択します。オプションには、改行、カンマ、スペースなどの分割文字を待つか、固定長出力の場合はn文字ごとに待つか、タイムアウトを設定してn秒ごとに出力させることができます。

Node RED Serial Setup Input

  • 出力:出力:出力メッセージに文字を追加します(例えば、改行を追加し直します)。

Node RED Serial Setup Output

デプロイ後、ノードのステータスが "connected "になっていれば、有効なシリアルポートに接続されていることがわかります:

Node RED Serial Setup Connected Status

3.Node-REDライブラリのフロー:Tulipとの通信

Tulipは、Node-REDを使用してTulip Edgeデバイスのシリアル入力を読み取り、シリアル出力を書き込むためのライブラリフローをいくつか提供しています。Tulipライブラリ・フローのインポート方法については、「Tulip Node-REDフローのインポート」を参照してください。

Tulip アプリから Tulip Edge デバイスにシリアル出力を書き込むには、serial_http_endpointフローを使用し、Edge デバイスコネクタホスト上で動作する Tulip インスタンスで HTTP コネクタをセットアップします。このコネクタに、/serialHTTP エンドポイントに POST リクエストを送信するコネクタ関数を追加し、アプリからそのコネクタ関数を呼び出す必要があります。コネクタホストを使用したNode-REDへの値の書き込みについては、Edge MCのコネクタホストとNode-REDを使用したマシンとの通信を参照してください。

Node RED Serial Setup Flow1

Tulip Edgeデバイスのシリアル入力を読み取り、Tulipに送信するには、Tables API(テーブルにデータを書き込む)またはMachine API(マシン属性にデータを書き込む)のいずれかを使用できます。serial_to_tulip_tableライブラリフローは、改行区切りのシリアル入力をチューリップテーブルに書き込む方法の例です。シリアル・ノードと2つのチューリップ・テーブル・ノードを、使用するケースに合わせて正しく設定する必要があります。Tulip Tables APIノードの使用方法についてはUsing Node-RED with the Tulip APIを参照してください。

Node RED Serial Setup Flow2


この記事は役に立ちましたか?