- 印刷する
方法Node-REDでシリアルを使う
シリアルデバイスへの接続、node-REDでのシリアルポートの設定、node-REDライブラリフローの紹介
この記事では、Node-REDを使用してTulip Edgeデバイスからシリアルデータを読み書きする方法について説明します。各タイプのEdgeデバイスの異なるシリアルポートに接続する方法と、シリアル通信を使用する2つのTulip Node-REDライブラリフローについて説明します。
必要なもの
Tulipアカウントに登録されたEdge IOまたはEdge MC
Edgeデバイスとシリアル通信を行うデバイス
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エディタを使ってパレットにノードを追加します。
シリアルノードはネットワーク
タブの下に表示されます:
シリアル入力を読み込むには、シリアル入力を
ドラッグ&ドロップします。シリアル入力を読み込むには、シリアル入力ノードをドラッグ&ドロップし、シリアル出力を書き込むには、シリアル出力
ノードをドラッグ&ドロップします。どちらのノードでも、シリアル・ポートを設定するには、"Serial Port "プロパティの編集ボタンをクリックします:
その後、以下のプロパティを入力します:
- Serial Port:シリアルポートのdevpath(例:/dev/ttyS0)。これは、接続するEdgeデバイスと物理シリアルポートによって異なります(Edge IOまたはEdge MCの記事を参照)。利用可能なパスは、以下のように検索ボタンをクリックして表示できます。
注意:現在、Node-REDではUSBデバイスのホットプラグはサポートしていません。つまり、Node-RED が USB デバイスにアクセスするには、デバイスの起動時に USB デバイスを接続する必要があります。
- 設定ボーレートやその他の設定は、通信相手のシリアルデバイスのボーレートに合わせる必要があります。
- 入力:ノードがいつメッセージを出力するかを選択します。オプションには、改行、カンマ、スペースなどの分割文字を待つか、固定長出力の場合は
n
文字ごとに待つか、タイムアウトを設定してn
秒ごとに出力させることができます。
- 出力:出力:出力メッセージに文字を追加します(例えば、改行を追加し直します)。
デプロイ後、ノードのステータスが "connected "になっていれば、有効なシリアルポートに接続されていることがわかります:
3.Node-REDライブラリのフロー:Tulipとの通信
Tulipは、Node-REDを使用してTulip Edgeデバイスのシリアル入力を読み取り、シリアル出力を書き込むためのライブラリフローをいくつか提供しています。Tulipライブラリ・フローのインポート方法については、「Tulip Node-REDフローのインポート」を参照してください。
Tulip アプリから Tulip Edge デバイスにシリアル出力を書き込むには、serial_http_endpoint
フローを使用し、Edge デバイスコネクタホスト上で動作する Tulip インスタンスで HTTP コネクタをセットアップします。このコネクタに、/serial
HTTP エンドポイントに POST リクエストを送信するコネクタ関数を追加し、アプリからそのコネクタ関数を呼び出す必要があります。コネクタホストを使用したNode-REDへの値の書き込みについては、Edge MCのコネクタホストとNode-REDを使用したマシンとの通信を参照してください。
Tulip Edgeデバイスのシリアル入力を読み取り、Tulipに送信するには、Tables API(テーブルにデータを書き込む)またはMachine API(マシン属性にデータを書き込む)のいずれかを使用できます。serial_to_tulip_table
ライブラリフローは、改行区切りのシリアル入力をチューリップテーブルに書き込む方法の例です。シリアル・ノードと2つのチューリップ・テーブル・ノードを、使用するケースに合わせて正しく設定する必要があります。Tulip Tables APIノードの使用方法についてはUsing Node-RED with the Tulip APIを参照してください。