2017.08.18
実家の農園で「リモート温度ロガー」として使っているRaspberry Piにシャットダウンボタンを追加
↑ボタンを追加しました。
今年の1月に実家の農園で使う3G/LTE経由でデータ転送するリモート温度ロガーをRaspberry Piで2台作りましたが、
↓
最近2台のうち1台が動かなくなったというので送り返してもらい調べました。
調べてみるとハードウェアには問題がなく、microSD中のデータが壊れてしまいOSが起動しなくなっているようです。両親には「中は普通にパソコンだよ」などと面倒な説明はしていないので、農園のあちこちの温度をモニターするために何度も電源を抜き差ししたと想像され、運悪くデータが壊れてしまったようです。たいていは大丈夫なんだけどねぇ。まあ当然起こりうる事態です。
装置自体はバックアップしておいたmicroSDのディスクイメージを書き込むことで復活しましたが、今後も同じ壊れ方をする可能性があります。
解決策として、Raspberry PiをリードオンリーのROM化するという作戦もあるみたいですが↓
ちょっと高度すぎて完全には理解出来ず。また、Raspbianのビルドバージョンごとの設定などもあるようで、難しそうなので今回は断念しました。
代わりに行ったのがシャットダウンボタンを付けるというもの
参考にしたのは
リンク先のサンプルスクリプトをコピペしてshutdown-deamon2.shというファイル名で保存。
chmod 755 shutdown-daemon2.sh
で実行属性を付与、実行してみたところエラーが。どうやら「gpio」というコマンドが入ってなかったので色々と調べてgpioを含むWiringPiというのをインストール、apt-getでいけました。
sudo apt-get install wiringpi
でインストールすると無事動きました(最新のRaspbianには最初からインストールされているらしい)
リンク先に従い
/etc/rc.local
に、
/home/pi/shutdown-daemon2.sh &
を追加し、電源ONと同時にスクリプトを走らせるようにしました。
このスクリプトが気に入ったのはLED点灯でシャットダウン動作が分かりやすくなっているところ、具体的には下記の動画のようにボタンを押した時、5秒間押し続けた場合で別の点灯し、分かりやすくシャットダウンが開始します。
↓回路の様子。線が抜けにくいように少し改造しています。
左の3本が1wire温度センサー用の3.3V(赤色)、2つあけて、GPIO4(黄色)、GND(黒)、そして2つあけて、GPIO22(白色)と3.3V(白色)です。スイッチはGPIO22と3.3Vをショートさせるようになっています。
スクリプトではGPIOをINPUT設定して、プルダウン(端子とグランドの間に抵抗を入れる設定)し、ボタンが押された時、5秒間押し続けた時の制御がされています。
↓ケース中の様子。
このシャットダウンボタンは設置が簡単なので、今後作るRaspberry Pi機器にも標準搭載していきたいですね。
Category:#電子工作 Raspberry Pi、Arduinoなど
■ ■ ■ コメント ■ ■ ■
いいっすね!=41
001 [08.18 12:55]匿名@OCN:温度を取得するだけならWROOM02を使う方が簡単だし、安定度も高いですよ。全て秋月で買えます。 ↑(11)
002 [08.18 17:11]ドイヒーDIY@Biglobe:息子が中学生位で爆団作りそうな家庭環境ですねw ↑(9)
003 [08.18 17:35]匿名@Excite:電源断によるデータ破壊では無く、SDの書き換え寿命かと。ジャーナリングがあるファイルシステムはそんなに弱くないです。そしてフラッシュの書き換え寿命は予想以上に短いです。swapの無効化やlogをramdiskに置かないと効果無いと思う。 ↑(12)
本カテゴリーで直近コメントが書かれた記事
→カテゴリー:#電子工作 Raspberry Pi、Arduinoなど(記事数:232)
本カテゴリーの最近の記事(コメント数)