So-net無料ブログ作成
  • ブログをはじめる
  • ログイン

ラズパイにボタンを付けてシャットダウンさせる [ラズパイ]

本日もラズパイネタである。

ちょっと前、ラズパイにSQLiteをインストールした。

 ラズパイにSQLiteをインストール

トランザクションを試してみるかと思い、コードを書き始めたのは良いが、sqlite3コマンドが突然実行できなくなってしまった。

pi@raspberrypi:~ $ sqlite3
Segmentation Fault


コマンドが壊れている?

再インストールしようと思い、apt-get remove sqlite3で削除しようとしたが、これまたエラーとなり、削除できない。
どうも、ファイルシステムが破壊されたようである。

もう。

そういえば、前も壊れたよなぁ。ついついUSBケーブルを抜いちゃうのよね。shutdownしないで
raspbianの再インストール中「これは、なんとかしないといけないか」と思案した。

ということで、SQLiteのトランザクションは後回しにして、急遽シャットダウンボタンを付けることにした。


ボタンをひとつ付けるのに、ブレッドボードは必要ないでしょう。カッコ良く付けられないのは目をつむるとして、なんとかラズパイの筐体にくっつけたい。

と物色すると、PC用のリセットスイッチを発見。

IMG_20180511_141731.jpg

えーと、GPIOの適当なポートとGNDを接続すればOKなはず。抵抗は付けずにラズパイ側の設定でプルアップだかプルダウンにしておけば良いと思われ...

ということで、ケースの穴にケーブルを通して、筐体にテープで止めてみた。

IMG_20180511_142234.jpg

メスのコネクタがふたつくっ付いているやつなので、GNDと隣り合ったGPIO14を使うか。

接写したいが、これが限界。

IMG_20180511_145050.jpg

次に、ボタンが押されたときに、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のトランザクションは明日かな。



[改訂第4版]SQLポケットリファレンス

[改訂第4版]SQLポケットリファレンス

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2017/02/18
  • メディア: 単行本(ソフトカバー)







関連記事
ラズパイにSQLiteをインストール
SQLポケットリファレンスの歴史
SQLポケットリファレンスの歴史その2
SQLポケットリファレンスが第4版になりました
改訂第4版 SQLポケットリファレンス電子版



サイト内を検索

nice!(0)  コメント(0) 
共通テーマ:携帯コンテンツ

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。


AREarthroidPro ARで地球を表示するアプリ

Copyright Atsushi Asai Google+朝井淳
[改訂第4版]SQLポケットリファレンス

[改訂第4版]SQLポケットリファレンス

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2017/02/18
  • メディア: 単行本(ソフトカバー)

[データベースの気持ちがわかる]SQLはじめの一歩 (WEB+DB PRESS plus)

[データベースの気持ちがわかる]SQLはじめの一歩 (WEB+DB PRESS plus)

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2015/03/03
  • メディア: 単行本(ソフトカバー)

Access クエリ 徹底活用ガイド ~仕事の現場で即使える

Access クエリ 徹底活用ガイド ~仕事の現場で即使える

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2018/05/25
  • メディア: 大型本