背景

ディスプレイなしで使用するような環境では,VNCを使って操作することがあります.しかし,そのためにはネットワークに接続されている必要があります.そのネットワークに接続されたかどうかを表すためにLEDを用いられるスクリプトを作ることにしました.起動時にこのスクリプトを動かせば,ネットワークの接続がLEDによりわかるということです.

環境

OS: Raspbian Buster February 2020

LED: 物理的な端子番号32番に接続しており,Highを出力すると点灯,Lowを出力すると消灯するような回路構成となっています.

端子の操作: Wiring Piにより行います.従って,インストールされていないのであればWiringPiをインストールしてください.

設定

スクリプトの内容をここで説明します.

ネットワークに接続されたか確認するため,www.haljion.netにpingをうち,その結果,うまくいったようであればLEDを点灯し,うまくいかなかったようであれば消灯します.その後,15秒のウェイト時間を設けて同じことを繰り返し行います.

以上のようなスクリプトを起動時にバックグランドで動作させるようにします.下にスクリプトを示します.

#!/bin/sh

IP_ADDRESS=www.haljion.net

/usr/bin/gpio -g mode 12 out

while [ 1 -eq 1 ]
do
        /bin/ping -c 1 $IP_ADDRESS 2>&1 > /dev/null
        if [ $? -eq 0 ]
        then
                /usr/bin/gpio -g write 12 1
        else
                /usr/bin/gpio -g write 12 0
        fi
        sleep 15
done

このスクリプトを/usr/local/binの下にcheck_network.shとして設置します.

その後,このスクリプトを実行できるようにすべく,次のようなコマンドを実行します.

 sudo chmod a+x check_network.sh

次に,起動時にこのスクリプトを起動するため,/etc/rc.localへ以下のことを追記します.なお,このファイルはスーパユーザでないと編集できませんので,sudo vi /etc/rc.localのようにして編集します.

# Check network
/usr/local/bin/check_network.sh &

これで再起動すればよいです.