#はじめに
Raspberry pi + 防水センサー(DS18B20)を使ってモニタリングをしていると、
どういうわけか、突然センサーを認識しなくなることがあります。今まではRapiを再起動したりしていましたが、コマンドで解決する場合がありことが分かり、メモしておきます。
#対策
GPIOのモジュールを再ロードします。このセンサーに関するモジュールは以下の2つです。
sudo modprobe w1-gpio
sudo modprobe w1-therm
#バッチ処理
Linux用の簡単なバッチ処理を作成しました。よろしかったら使ってください。これをcrontabで定期的に実行して生存確認を行うことができます。あくまで対症療法ですが・・・。
#!/bin/bash
#----------------------------------------
#DS18B20センサー生存確認シェルスクリプト
#----------------------------------------
acount=`cat /sys/devices/w1_bus_master1/w1_master_slave_count`
bcount=0
#command_a = "sudo modprobe w1-gpio"
#command_b = "sudo modprobe w1-therm"
if [ $acount = $bcount ]; then
echo "ds18b2 sensor dead"
#センサーロード
sudo modprobe w1-gpio
sudo modprobe w1-therm
else
echo "ds18b2 sensor alive"
fi
#おわりに
長時間にわたりRaspi+センサーでモニタリングをしていると、センサーが突然暴走したり、認識しなくなる現状をこれまで経験しています。遠隔でRaspiを再起動させるには、少々リスクがあるため、最近ではまず上記の方法を行うようにしています。