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-MSMのBluetooth信号のスキャンと接続」をご覧ください。 |
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 を増設する場合にご利用ください。