#01 RS232トランシーバ
Tibbitの配置
Tibbit #01とTibbit #19を挿入します。
使用できるスロットは、1,3,5,7,9です。
シリアルの設定
はじめに、シリアルの設定を登録します。
この手順はどのノードでも同様で、登録したシリアル設定は選択して使用することになります。
そのため、毎回登録作業を行う必要はありません。
(機器が1台であれば、1つのシリアル設定だけを登録します)
#01のノードの設定を開き、赤枠をクリックします。
シリアルの設定を開き、ボーレートなど、機器に合わせて設定します。
あとで分かりやすいように名前はつけておきましょう。
デフォルトの受信は「\n」区切りに設定されております。受信ができない場合は、この設定をご確認ください。
一度保存したシリアル設定は、以降、プルダウンで選択することができます。
その他のノードでもプルダウンで選択できますので、毎回登録する必要はありません。
登録した設定を変更したい場合は、プルダウンで該当のシリアル設定を選択し、赤枠のボタンをクリックします。
登録した設定を削除したい場合は、編集画面で削除ボタンをクリックします。
設定不備
以下のようなエラーが表示される場合は、シリアルのプルダウンが選択されているか、設定に不備が無いかなどご確認ください。
その場合、Tibbo-Piは処理を開始できませんのでご注意ください。
err: (‘Please check the serial setting.’,)
err: Tibbo-Pi failed to start up.
ノードの配置
シリアルのIN
以下のようにフローを配置します。
ノードの設定を開き、スロットとシリアル設定を選択します。
Node-REDデプロイ後、機器からのデータを受信します。
サンプルフロー
1 |
[{"id":"3aae7255.07bc86","type":"Tibbit-#01 in","z":"f79c229d.089ba8","name":"","tpSlot":"S01","communication":"Serial","outputOnly":true,"serialConf":"c790b305.a63b8","connectedStatus":"start","host":"","x":200,"y":920,"wires":[["a25e4baa.dc8b28"]]},{"id":"a25e4baa.dc8b28","type":"debug","z":"f79c229d.089ba8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":360,"y":1000,"wires":[]},{"id":"c790b305.a63b8","type":"tp-config-serial","z":"","serialName":"シリアル1","hardwareFlow":"off","seriBaudRate":"9600","seriDataBits":"8","seriParity":"none","seriStartBits":"1","seriStopBits":"1","seriSplitInput":"1","seriOnTheCharactor":"\\n","seriAfterATimeoutOf":"0","seriIntoFixedLengthOf":"0"}] |
Outputsされたデータを文字列に変換ができます。
functionノードを配置します。
1 2 |
msg.payload = msg.payload.toString('utf8'); return msg; |
受信したデータを、文字列に変換できます。
シリアルのOUT
送信するデータをセットするため、functionノードを使用します。
以下のようにフローを配置します。
functionノードの編集を開き、コードに以下を記述します。
「test」の部分が送信されるデータになりますので、適宜変更してください。
→文字列以外にもbytesなどでも可能。
1 2 |
msg.payload = Buffer.from("test\n"); return msg; |
ノードの設定を開き、スロットとシリアル設定を選択します。
Node-REDデプロイ後、injectノードをクリックすると機器へデータを送信することができます。
サンプルフロー
1 |
[{"id":"68038275.de6b3c","type":"function","z":"d0a8e665.0b3038","name":"シリアル送信データ","func":"msg.payload = Buffer.from(\"test\\n\"); \nreturn msg;","outputs":1,"noerr":0,"x":1060,"y":1080,"wires":[["871c6b25.f502d8"]]},{"id":"871c6b25.f502d8","type":"Tibbit-#01 out","z":"d0a8e665.0b3038","name":"","tpSlot":"S01","communication":"Serial","serialConf":"21e4a251.3b34a6","connectedStatus":"start","host":"","x":1180,"y":1120,"wires":[]},{"id":"d5fe7777.76ba28","type":"inject","z":"d0a8e665.0b3038","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":900,"y":1040,"wires":[["68038275.de6b3c"]]},{"id":"21e4a251.3b34a6","type":"tp-config-serial","z":"","serialName":"シリアル1","hardwareFlow":"off","seriBaudRate":"9600","seriDataBits":"8","seriParity":"none","seriStartBits":"1","seriStopBits":"1","seriSplitInput":"1","seriOnTheCharactor":"\\n","seriAfterATimeoutOf":"0","seriIntoFixedLengthOf":"0"}] |