ラズパイにボタンを付けてシャットダウンさせる
本日もラズパイネタである。
ちょっと前、ラズパイにSQLiteをインストールした。
ラズパイにSQLiteをインストール
トランザクションを試してみるかと思い、コードを書き始めたのは良いが、sqlite3コマンドが突然実行できなくなってしまった。
pi@raspberrypi:~ $ sqlite3 Segmentation Fault
コマンドが壊れている?
再インストールしようと思い、apt-get remove sqlite3で削除しようとしたが、これまたエラーとなり、削除できない。
どうも、ファイルシステムが破壊されたようである。
もう。
そういえば、前も壊れたよなぁ。ついついUSBケーブルを抜いちゃうのよね。shutdownしないで。
raspbianの再インストール中「これは、なんとかしないといけないか」と思案した。
ということで、SQLiteのトランザクションは後回しにして、急遽シャットダウンボタンを付けることにした。
ボタンをひとつ付けるのに、ブレッドボードは必要ないでしょう。カッコ良く付けられないのは目をつむるとして、なんとかラズパイの筐体にくっつけたい。
と物色すると、PC用のリセットスイッチを発見。
えーと、GPIOの適当なポートとGNDを接続すればOKなはず。抵抗は付けずにラズパイ側の設定でプルアップだかプルダウンにしておけば良いと思われ...
ということで、ケースの穴にケーブルを通して、筐体にテープで止めてみた。
メスのコネクタがふたつくっ付いているやつなので、GNDと隣り合ったGPIO14を使うか。
接写したいが、これが限界。
次に、ボタンが押されたときに、shutdownコマンドが実行されるように、pythonでスクリプトを書く。
#!/usr/bin/env python import RPi.GPIO as GPIO import os GPIO.setmode(GPIO.BCM) GPIO.setup(14, GPIO.IN, pull_up_down=GPIO.PUD_UP) try: GPIO.wait_for_edge(14, GPIO.FALLING) print "button press" except KeyboardInterrupt: pass GPIO.cleanup() os.system("/sbin/shutdown -h now")
これを実行して、試してみる。
pi@raspberrypi:~ $ ./shutdown.py button press Connection to 192.168.0.81 closed by remote host. Connection to 192.168.0.81 closed.
できた。
sshでログインしているので、シャットダウンとともにセッションが切れる。
常駐するように、/etc/rc.localに加える。
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi # shutdown button /usr/local/bin/shutdown.py & exit 0
SQLiteのトランザクションは明日かな。

Raspberry Pi3 Model B ボード&ケースセット 3ple Decker対応 (Element14版, Clear)-Physical Computing Lab
- 出版社/メーカー: TechShare
- メディア: エレクトロニクス
関連記事
ラズパイにSQLiteをインストール
SQLポケットリファレンスの歴史
SQLポケットリファレンスの歴史その2
SQLポケットリファレンスが第4版になりました
改訂第4版 SQLポケットリファレンス電子版
投稿者プロフィール

最新の投稿
コンピューター関係の記事2025年4月26日アイキャッチ画像にSQLアイコンとJSONアイコンが欲しい
コンピューター関係の記事2025年4月23日AdSense審査に無事パス
コンピューター関係の記事2025年4月22日SSブログ復活
コンピューター関係の記事2025年4月22日SSブログが無くなった余波は大きい