Raspberry Pi の Wi-Fi を自動再接続

気温、気圧をロギングしている Raspberry Pi Model B の Wi-Fi が不安定で、よく繋がらなくなる。電源周りが弱いと聞いたので電解コンデンサーを増設したけどあまり変わらなかった。その原因がわからないままにしたくはないけど、まずは計測したデータをちゃんととっておきたいので、「繋がらなくなったら再起動」するスクリプトを作った。

NTERFACE=wlan0
IP_FOR_TEST=192.168.1.1
NOTIFY_TO=notify@*****.com
PING_COUNT=1
STATUS_DOWN=~/$INTERFACE-connectivity-down
URL_FOR_RRDTOOL=http://*****.com/api/RaspberryPi/$INTERFACE/down
USER_FOR_RRDTOOL=********

ping -c $PING_COUNT $IP_FOR_TEST > /dev/null 2> /dev/null

if [ $? -ge 1 ]; then
    logger '$INTERFACE seems to be down, REBOOT to recover ...'
    touch $STATUS_DOWN
    sudo reboot
else
    if [ -e $STATUS_DOWN ]; then
        logger '$INTERFACE is up.'
        echo '$INTERFACE is up.' | mail -s 'check wlan0 of weather data logger' $NOTIFY_TO
        curl -u $USER_FOR_RRDTOOL -F 'number=1' $URL_FOR_RRDTOOL
        rm -f $STATUS_DOWN 2> /dev/null
    else
        curl -u $USER_FOR_RRDTOOL -F 'number=0' $URL_FOR_RRDTOOL
    fi
fi

ping が通らなかったら再起動する…というもの。
再起動したら、メール通知とRRDTOOLにもデータを投げておくことで、データの欠測の判断がしやすくなる。
気温、気圧は5分間隔で計測しているので、それよりも短い2分間隔でこのチェックスクリプトを実行するように cron に設定した。

2015年も、あけましておめでとう

昨年は、目の前の事に一心不乱に取り組めた年でした。

これほど多くの人とよく話をし、
それぞれの物事について「何が最高か」を
自分の中で常に模索し続けられたことは、
これまでの人生の中でも、貴重な一年間でした。

今後の人生の中で、物事を成すための大きな糧になると思う。

自ら新し価値を創造し、
常に社会の期待に応えられる人で在りたい。