産業用タッチパネル型PC「reTerminal DM」の初期セットアップ手順

Node-REDのコントリビュータをしている横井一仁です。
今回、Node-RED搭載の産業用タッチパネル型PCであるreTerminal DMをゲットしましたので、お勧めの初期セットアップの手順を紹介します。

# reTerminal DMとは
SeeedStudioからリリースされた産業用タッチパネル型PCです。
![57866a6d-2f6a-46a7-a5aa-ca70a9959fdb.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/18391fca-bd71-4477-eb01-08b83ed67e4e.jpeg)
※画像は[スイッチサイエンスさんのページ](https://www.switch-science.com/products/8951)から引用

　これまでの画面サイズが5インチのreTerminalと比較すると、画面サイズが10.1インチに広がっており、工場での作業者が扱いやすいよう設計されています。内部にはRaspberry Pi Compute Module 4を搭載しているため、Raspberry Piのノウハウやソフトウェア資産を活用することもできます。特にNode-REDが標準で搭載されており、Node-REDで全てのシステムを開発しようという世界観が特徴の製品です。
![Screenshot 2023-06-10 at 21.20.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/5a1250f1-e4ab-b803-d300-fa3e45138506.png)
　[reTerminal DMの動画](https://www.youtube.com/watch?v=15LqSX-xGI4)を見ると、PLC接続、映像分析、環境センシング、データのローカル保存/クラウド転送、アプリ開発などのユースケースが紹介されています。Node-REDがよく使われるユースケースですね。

# 必要な機器
- ACアダプタ
　最初にハマったのは、ACアダプタです。reTerminal DMには、12Vの電源を接続する端子があるのですが、コンセントに接続するACアダプタが付属していません。SeeedStudioさんに問い合わせてみたところ、下記ACアダプタを教えてもらい、解決できました。
  https://amzn.asia/d/9azdEN4

- USBキーボード・マウス
　文字入力を行うためにUSBキーボードが必要です。タッチパネルがあるため、USBマウスは無くても良いのですが、細かいメニュー選択操作を行う際にあると便利です。

- 有線LAN接続のインターネット環境
　reTerminal DMは無線LAN接続もできますが、有線LAN接続ができるルーターがあれば有線の方が安定して使えるでしょう。

# reTerminal DMを起動
　上記機器をreTerminal DMに接続し、ACアダプタをコンセントにつなぐと起動します。しばらく待つと、下記の様なSenseCraft Edgeというアプリケーションの中に、Node-REDダッシュボードで作られた画面が表示されます。
![IMG_3665.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/baeb4787-69fe-8873-ddce-872da16ad8e7.jpeg)
　本ダッシュボードには、reTerminal DM本体のメモリ、CPU、ストレージ、ネットワークの使用量が表示されています。

　左側には「Dashboard」「Node-RED」「Setting」の3つのメニューがあり、Node-REDをクリックすると、フローエディタが表示されました。
![IMG_3668.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/ab3fad50-ddb9-576d-f945-209b541b934f.jpeg)
　定期的にexecノードを実行してリソース使用量を取得し、ダッシュボードに可視化するフローが動いていました。

　もし無線LANを用いる場合は、メニューから「Setting」をクリックし、接続設定を行います。
![2023-06-10-063705_1280x800_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/3b54359b-0517-179e-3c6c-45395ebc519f.png)
　reTerminal DMでは基本、このSenseCraft Edgeの画面のみを操作する形になります。Chromiumブラウザなど個別にアプリケーションを起動したい場合は、USBキーボードのWindowsキーを押してOSのメニューから起動することもできます。

# Node-REDの初期設定
　通常であれば、デフォルトで用意されているNode-REDのフローを削除して開発を始めるのですが、フローは一度削除してしまうと元に戻せなくなってしまいます。そのため、本格的なフロー開発で用られているGit連携機能を有効化して、現在のフローの状態を保存させます。

　まず、キーボードのWindowsキーを押して、OSのメニューを開き、Accessoriesの中のTerminalを起動します。
![2023-06-10-063306_1280x800_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/496d90e0-66fc-5fa4-2040-8922327fce1d.png)
　その後、「vi /var/seeed/apps/data/seeed_node_red/settings.js」を実行して、Node-REDの設定ファイルを編集します。
![2023-06-10-063437_1280x800_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/8277474d-7b27-8968-0596-c3068f9b2c7e.png)
　編集する部分は、editorThemeブロックの中です。本ブロック内に以下のGit連携機能を有効にする設定を追加します。
```
projects: {
    enabled: true
},
```
![2023-06-10-063211_1280x800_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/626dbe89-766c-aee8-75a5-7b12a1b5848d.png)
　その際、最後のカンマを忘れないようにしましょう。修正したsettings.jsファイルを保存した後、設定を有効化したNode-REDを起動するため、上の電源アイコンから「Restart」を選択してreTerminal本体を再起動します。
![2023-06-10-063814_1280x800_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/46a2fbc5-f27e-dcf5-e404-6b540e0f9ef8.png)
　再起動が完了すると、初回のみ現れるGit連携機能のダイアログが表示されます。
![2023-06-10-065156_1280x800_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/10dd256f-b49c-4bca-caef-6edafc49aa72.png)
　今回は現在のフローを保存しておくプロジェクトを作成するため、「Create Project」を選択します。

　次の画面では、フローの変更履歴を記録するユーザを設定します。
![2023-06-10-070424_1280x800_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/e866a6c7-6d4f-8cb1-d4d5-c9ff3a2eba94.png)
　ここでは、自分の名前とe-mailアドレスを入力します。

　次の画面は、プロジェクトの名前と概要を設定する画面です。
![2023-06-10-070633_1280x800_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/eba83991-2b00-5bbb-64ef-0a1dd214f55a.png)
　プロジェクト名として「node-red-reterminaldm」、概要として「Default flow in reTerminal DM」を入力しました。

　次は、フローのファイル名の設定です。デフォルトの「flows.json」のままで次に進みます。
![2023-06-10-070706_1280x800_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/f87af9cc-ebe6-2bb0-b65a-ec1ff022699a.png)
　次の設定画面では、フローをパスワードで暗号化するか否かを設定します。
![2023-06-10-070741_1280x800_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/c91a7f69-940c-164e-ceb1-8c824ae3ff4d.png)
　本設定は、GitHub上にフローを置く際に、パスワードやAPIキーなどの情報を暗号化するためのものです。今回は、初期フローを本体に保存しておくだけで、GitHub上に公開しないため「Disable encryption」を選択します。

　これでプロジェクトを作成できました。最後の画面では「Done」をクリックしてダイアログを閉じます。
![2023-06-10-070820_1280x800_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/d4c68b5e-3cec-7582-64ab-ecfe3262e265.png)

　下のスクリーンショットの様に、一見元の画面に戻った様に見えるのですが、既存のフローが新しいプロジェクト「node-red-reterminaldm」の中に移動されて表示されています。
![2023-06-10-070844_1280x800_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/71e52fe8-2bf3-1c23-351d-4e3439cee403.png)
　フローは編集履歴に追加されているため、もしフローを編集してデプロイした後でも[Historyタブから元に戻る](https://www.youtube.com/live/AJrbLTx-qA0?t=2378)ことも可能です。

# 新規プロジェクトを作成
　次に、別のプロジェクトとして新規にフローを作る手順を紹介します。まずフローエディタ右上のメニューから「Projects」->「New」を選択します。
![2023-06-10-071003_1280x800_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/0de4c434-472e-42cc-28bc-321273d83718.png)
　新規プロジェクトを作成するダイアログが表示されるため、以下のように入力し「Create Project」ボタンをクリックします。
![2023-06-10-071323_1280x800_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/18efa0d7-5c61-86ff-53f7-46c69460b6c5.png)
　すると、新規プロジェクトを作るための空のワークスペースが表示されます。
![2023-06-10-071341_1280x800_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/b400f127-33c8-74b9-a5ce-01b2096644f4.png)
　ここに、例としてinjectノードとdebugノードからから成るシンプルなフローを作ります。
![2023-06-10-071449_1280x800_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/45881e84-2758-28b0-6563-41ea0402af66.png)
　デプロイボタンをクリックして、injectノードの左側のボタンをクリックすると、現在時刻を表す数値が右側のデバックタブに表示されました。

　3つ目の別プロジェクトを作りたい場合は、同じ要領で新規プロジェクトを作る形になります。もし、作成したプロジェクトを切り替えたい場合は、右上のメニューから「Projects」->「Open」を選択します。
![2023-06-10-072735_1280x800_scrot copy.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/c5c91e02-0892-a432-1816-faa431f632a7.png)
　すると、以下の様なプロジェクトを切り替えできるダイアログが表示されます。
![2023-06-10-072821_1280x800_scrot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/ba267e0b-1827-2a25-0762-cfaaafea9196.png)
　ここで「node-red-reterminaldm」をダブルクリックすると、元の初期フローに戻ることができます。この方法を用いると、既存のフローを残したまま、新規にフローを開発できるようになります。

# 最後に
　今回は、reTerminal DMに搭載されているNode-REDの初期セットアップの手順について紹介しました。reTerminal DMは、ほぼOSS版と同じNode-REDが搭載されているため、設定ファイルを修正するだけでGit連携機能を有効化できます。Raspberry Piの知見がそのまま活かせるのはとても良いですね。

# おまけ
　今回有効化したGit連携機能の詳細については、月刊I/Oに連載しています。今回の記事では2023年4月号で紹介した「プロジェクトを切り替える」ノウハウをreTerminal DMに用いたケースを解説しました。

- [2023年3月号: Node-REDのGit連携機能を使ってみよう](http://www.kohgakusha.co.jp/books/detail/4771)
- [2023年4月号: 1つのNode-RED環境で複数のプロジェクトを切り替える](http://www.kohgakusha.co.jp/books/detail/4777)
- [2023年5月号: フローのバージョン管理を行なう](http://www.kohgakusha.co.jp/books/detail/4784)
- [2023年6月号: Node-REDのフローをGitHubに共有](http://www.kohgakusha.co.jp/books/detail/4787)
- [2023年7月号: GitHub上のNode-REDのフローをRaspberry Piへダウンロード](http://www.kohgakusha.co.jp/books/detail/4792)
- [2023年8月号: Node-REDのフローをクラウド環境へデプロイ](http://www.kohgakusha.co.jp/books/detail/4801)

　7月号では、Raspberry Pi 4 Model BにUSBカメラを接続し、GitHubに共有した画像認識アプリのフローを動かす方法を紹介しました。もちろん、reTerminal DMにUSBカメラを接続し、同様の手順を試してみたところ、動作しました❗️
![IMG_3682.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/a81e9634-0441-2748-eea4-4b9da4752a8e.jpeg)
　Raspberry Piを現場に設置する場合は、どの様に固定しようと悩むことがありますが、reTerminal DMはVESA規格やPLCの隣への設置など、固定方法のバリエーションもあるので、現場にすぐ設置できそうです。
　今後もreTerminal DMの活用方法について、紹介してゆこうと思います。