PDHを構成するシェル・スクリプト

1. 概要

以下の内容は、かなり細かい内容になりますので、普通は飛ばしていただいて問題ないです。もし評価キットを使う中で、「あれっ、どうなっているのか?」と思った際に読んでいただければ問題ないです。

PDHのハードウェアは、Raspberry  Pi 4 Model Bです。またOSは、Raspbian GNU/Linux 10 (buster)です。このRaspberry PiをPDHとして機能させるために、Node-RED以外にもいくつかのシェルスクリプトを備えています。シェルスクリプトとは、実行すべきコマンドを羅列したファイルのことです。
PDHでは、ホームディレクトリ(/home/pi)の下の、preMSMというフォルダに配置しています。シェルの配置場所は、特にどこに置かないといけないという指定はありません。ここで準備しているシェルスクリプトは、すべて、Node-REDから呼び出していますので、わかりやすいようにpreMSMというフォルダにまとめて入れています。

では、preMSMディレクトリに移動して、ls –la コマンドでファイルを確認してみます。以下の様にいくつかの*.shというファイル名が表示されます。この*.shがPDHを機能させているシェルスクリプト群です。以下、簡単にこれらのスクリプトを説明していきます。

大きく3つの種類に分かれます。
  ※ フォルダにあるap2cl.sh.old と test.sh は、実際には使用されていませんので説明を省きます。

No

分類

シェルスクリプト名

1

R-MSMとのBluetooth接続関連

blth_start.sh.org, blth_start.sh, add_mod.sh, connect_mod.sh, del_file.sh

2

APモードとCLモードのモード変更関連

ap2cl.sh, cl2ap.sh

3

host名変更関連

gw_hname.sh

それぞれ、Node-REDのダッシュボードでPDHの設定を行う際に、裏方として働いています。
 No.1:R-MSMとのBluetooth接続関連は、下の図の①の領域の設定時に使用します。
 No.2:APモードとCLモードのモード変更関連は、下の図の②の領域の設定時に使用します。

2. R-MSMとBluetooth接続関連

No.1:R-MSMとのBluetooth接続関連の5つのシェルスクリプトの動作概要を以下にまとめます。
センサモジュールの登録方法に関しては、こちら(PDHとセンサモジュールのペアリング)をご覧ください。

No

ファイル名

機能概要

1

blth_start.sh.org

blth_start.shを生成するためのひな型。

2

blth_start.sh

ダッシュボードで「センサモジュール接続」を押した際に生成されるスクリプト。センサモジュールとPDHを bluetoothで接続します。電源投入後、Node-REDが起動した直後に実行されます。

中身の詳細は、「R-MSMBluetooth信号のスキャンと接続」をご覧ください。

3

add_mod.sh

ダッシュボードで「登録」を押した際に、実行され、センサモジュールのIDを sensor_name.txtに出力するスクリプトです。

4

connect_mod.sh

ダッシュボードで「センサモジュール接続」を押した際に、実行され、sensor_name.txtに記載されたIDを元に、blth_start.shを生成するスクリプトです。

5

del_file.sh

ダッシュボードで「登録IDの消去」を押した際に、実行され、sensor_name.txtを削除し、新たに空のsensor_name.txtを作るスクリプトです。

3. APモードとCLモードのモード変更関連

No.2:APモードとCLモードのモード変更関連の2つのシェルスクリプトの動作概要を以下にまとめます。
 PDHはwifiに関して、以下の2つのモードを有しています。
  1) APモード(Access Pointモード):Raspberry Piをwifiのアクセスポイントにするモード
  2) CLモード(Client モード):Raspberry Piをwifiのクライアントにするモード
 設定の詳細は、こちら(APモードとCLモードの移行)をご覧ください。
 現在、提供している評価キットはCLモードで提供しています。そのため、上の②の画面は、SSIDとパスワードの設定だけに使用しています。
 ネットワークへの接続に関しては、こちら(ネットワークへの接続とその活用)をご覧ください。

No

ファイル名

機能概要

1

ap2cl.sh

APモードからCLモードに切り替えるスクリプト。CLモードで起動すると、SSID、パスワード、IPアドレス、ゲートウェイを設定できます。ダッシュボードの「設定を保存してCLモードに移行」を押すと実行されます。

2

cl2ap.sh

CLモードからAPモードに切り替えるスクリプト。APモードでの固定IPアドレスなどを設定して、DHCPサーバを起動後、APモードに切り替わります。ダッシュボードの「CLモードからAPモードへ」を押すと実行されます。

4. host名変更関連

No.3:host名変更関連のスクリプトの概要を説明します。
PDHでは、ホスト名を1台毎異なるよう(ユニーク)な名前を付けています(gw****)。この下4桁は、wifiのMACアドレスの下4桁です。
ユニークな名前を付けることで、複数のPDHをネットワーク上に配置している場合に、簡単に区別ができるというメリットがあります。固定IPアドレスの場合には、IPアドレスで特定することもできますが、DHCPなどで適宜IPアドレスが割り振られる環境では厄介です。ホスト名でPDHに名前を付けるのが便利です。
gw_hname.shは、MACアドレスの下4桁を取り出して、gw****という名称を作成し、以下の2つのファイルを書き換えます。
元のファイルは、*.orgにコピーして残します。

このスクリプトは、あらかじめ評価キットを配布する前に実行してありますので、再度実行する必要はありません。
皆さんが、Raspberry Piを購入し、PDH を増設する場合にご利用ください。