自動耐圧試験システムの構築 その１

# 1. システムについて

絶縁耐圧試験器（日置電機社製　型番3159）の耐圧試験を例にシステムを構築する。
システムは、Raspberry Pi 4B（ラズパイ）、ATOM Lite(M5Stack)、絶縁耐圧試験器から構成した。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36206/798486dc-0aaf-f28f-5ab7-a0d1f2119441.png)


ATOM Liteは、ラズパイに設定したWiFiアクセスポイントに接続し、ATOM Liteと絶縁耐圧試験器はレベルシフトしたRS232Cで接続した。
ラズパイとATOM Liteは、MQTTを用いてデータ交換することにした。
ラズパイに試験用データベースをMariaDBに設定し、試験項目一覧テーブルと試験結果テーブルを設けた。
ラズパイはNode-RED、ATOM LiteはUIFowでプログラムを作成した。
ユーザインタフェースは、Node-REDのダッシュボードを用いた。

## 1-1. シーケンス図

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36206/004a2e74-76ed-f609-463e-60d273a4c5d5.png)

(1)　DBに試験項目一覧を問合せ、Node-REDのダッシュボード上に表示する
(2)　ダッシュボードで試験項目をキー入力し、OKボタンを押す。試験器に送信する設定コマンドが表示される。
(3)　送信ボタンを押すことで設定コマンド一式をMQTTでATOM Liteに送信する。
(4)　ATOM Liteは、MQTTで設定コマンドをサブスクライブしたら、設定コマンドを1つずつRS232Cで試験器に送信する。すべてのコマンドが終了したらMQTTでreadyを返す。
(5)　ラズパイは、MQTTでReadyをサブスクライブしたら、ダッシュボードのLEDを緑色にし、readyの文字を表示する。
(6)　ダッシュボードでロットナンバーを入力すると、ロットナンバーがダッシュボードに表示される。
(7)　ダッシュボードのスタートボタンを押すと、MQTTでstartがパブリッシュされる。
(8)　ATOM Liteは、MQTTでstartをサブスクライブしたら、スタートコマンドをRS232Cで試験器に送信する。環境センサの温度、湿度、気圧をJSON形式に変換し、MQTTでパブリッシュする。
(9)　ラズパイは、MQTTで温湿度データをサブスクライブしたら、flow変数に代入する。
(10)　ATOM Liteは、:STARTコマンド送信後、一定間隔で:STATコマンドを送信して試験終了を確認する。
(11)　WREADYを受信したら試験終了と判断して、試験結果問合せコマンド:MEAS:RES:WITH?を送信し、試験結果を取得し、JSON形式に変換してMQTTにパブリッシュする。　　
(12)　ラズパイは、MQTTで試験結果をサブスクライブしたら、DBに登録し、ダッシュボード上に表示する。

# 2．データベースの準備

phpMyAdminのCSVファイル読み込み機能を理解するために、試験項目一覧表はExcellでCSVファイルを作成した。
作成したCSVファイルをphpMyAdminでMariaDBに読み込ませた。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36206/e95e9832-85d0-a46d-bfd4-cc8cc183dc03.png)



ブラウザでphpmyadminにアクセスする。

```:アクセスURL：
http://localhost/phpmyadmin
```

rootでログインする。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36206/f9c09c4c-922b-3b6d-b28c-55cca93a9d30.png)

ログイン後、CSVファイルをインポートする。
インポートタブをクリックし、赤線で囲ったところを入力する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36206/2b6be6d6-8d17-12f5-1e44-46e6148713e0.png)

実行すると、正常終了したことが確認できる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36206/61988c43-a9ee-744a-0c5e-3586c96b3210.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36206/dbd3a6a9-2840-9094-2dc1-e6e0400641b3.png)

新規のデータベースとテーブルが作成されていることが確認できる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36206/753b165c-4ed9-16a1-9af3-37b0e563178b.png)

次に、試験結果を保存するテーブルを作成する。新規作成をクリックし、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36206/0c142431-92f5-c2e0-3023-6a3d6ea30a6d.png)

カラムに名前、データ型などを入力する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36206/c830ea17-b270-a547-3231-d00ebce087bf.png)

以下のような、テーブルを作成する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36206/51f0497e-cc91-147f-e62e-d633dce5f6de.png)


# 3.  Node-RED必モジュール追加

Node-REDに必要なモジュールを追加する。

Node-REDに必要なモジュールを追加する。
画面右上のメニューをクリックし、パレット管理を選択し、モジュール管理画面を表示させる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36206/9e335852-d08f-e865-a0d2-b39a337008bb.png)

ノードを追加タブをクリックし、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36206/f76d022e-45da-8810-4f02-e004e1d1fc56.png)

ノードを探索に必要なモジュールを入力して、追加する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36206/b947d706-5156-3cd0-54cd-cde92dff87dd.png)

追加するモジュールは、
- node-red-contrib-aedes
- node-red-contrib-ui-led
- node-red-dashboard
- node-red-node-mysql
- node-red-node-ui-table
の５モジュール。