シャットダウンボタンをつける

 


仕様

 sudo shutdown -h now を発行するボタンをつける。
 安全に電源をOFFにすることができるようにする意図。

必要物

 

 必要物は以下です。

No. 必要物
 1.  Raspberry pi 2 model B
 2.  適当なMicro USB ケーブル
 3.  適当なLANケーブル
 4.  適当なUSB電源
 5.  タクトスイッチ
 6.  ブレッドボード
 7.  ジャンパワイヤ

※ブレッドボードではなく、基盤にはんだ付けした方が見栄えは良いです。

その他、あると良いものは以下です。

No. あると良いもの
 1.  ヒートシンク(熱対策)
 2.  ケース(ほこり対策)

 

 

 結線

 

Pin assignment

 

Raspberry pi 2 model B側のピン番号

pin

pin

 GPIOの操作には、WiringPiというモジュールを使用。そのモジュールから見た端子名称は以下。

WiringPi_pin

参考WEBサイト:
https://www.raspberrypi.org/documentation/usage/gpio-plus-and-raspi2/
http://pinout.xyz/pinout/wiringpi_gpio_pinout

Scematics
PinWiring

※ プログラム内で、GPIO2ピンのチップ内プルアップ抵抗をEnableにしています。
したがって、特に外部回路でのプルアップ抵抗は必要ありません。

※ Pin25側は、GND端子ならどの端子と接続しても構いません。

 


Wiring Piのセットアップ

 以下のサイトに従って操作を行います。

Download and Install

必要なファイルを圧縮ファイルとしてダウンロードし、解凍&ビルド、を行う手順で行います。
Plan B です。

 

1) ファイルダウンロード

以下のリンク先を開いてください。

https://git.drogon.net/?p=wiringPi;a=summary

shotlogのリストの右の方に、snapshotと書かれているリンクを開きます。
すると、wiringPi-b0a60c3.tar.gz のような名称のファイルがダウンロードされます。
以下、ファイル名は適宜読み替えてください。

 

2) wiringPi-b0a60c3.tar.gz をRaspberry Pi内にコピー

Raspberry Piの電源を入れ、50秒ほどたった後にWinSCPを起動してください。

Raspberry Pi側に以下のフォルダを作成し、そこにwiringPi-b0a60c3.tar.gzをコピーします。

home/pi/Work/Software/wiringPi

 

3) ファイル解凍、ビルド、インストール

TeraTermを起動し、以下のコマンドを入力します。

 $ cd Work/Software/wiringPi
$ tar xfz wiringPi-b0a60c3.tar.gz
$ cd wiringPi-b0a60c3
$ ./build

WiringPiBuild

 

4) インストールの確認

TeraTermから以下のコマンドを入力します。

 $ gpio -v

このように、gpioのversion等が表示されます。

gpio-v

 

さらに、以下のコマンドを入力します。

 $ gpio readall

GPIOの端子一覧が表示されます。

 

 

 

アプリ作成

 

プログラムは以下の、公開されているGithub repositoryを参考にしました。
https://github.com/phil-lavin/raspberry-pi-gpio-interrupt

 

1) プログラム格納用フォルダ作成

WinSCPを起動し、home/piの下に、Work/Sources/ShutButtonフォルダを作成します。

 

2) ソースファイルをコピー

Work/Sources/ShutButtonフォルダに、以下のファイルを格納します。

※お願い!ファイルダウンロードの際、Twitterで一言呟いていただけると大変嬉しいです!

 

zipファイルがダウンロードできますので、解凍してください。
以下1ファイルが作成されます。
ShutButton.c

このファイルをhome/pi/Work/Sources/ShutButtonにコピーしてください。

 

3) ソースファイルをコンパイル

ここで、開きっぱなしのTeraTermに戻ります。
home/pi/Work/Sources/ShutButtonに移り、ファイルをコンパイルします。

 $ cd Work/Sources/ShutButton/
$ gcc -lwiringPi -o ShutButton ShutButton.c

 

4) WinSCPクローズ

アプリを実行する前に、WinSCPを閉じましょう。

 

5) アプリケーションを実行

以下を実行します。

 $ sudo ./ShutButton

 

6) ボタンを押す

ボタンを押すと、シャットダウンプロセスが始まり、TeraTermが強制終了します。

 

作成したアプリをRaspberry pi起動時に自動的に実行させる

 

1) 起動スクリプトファイルの編集

/etc/rc.localは、Raspberry Piが起動した時に実行したいプログラム等を定義するスクリプトです。
nanoを使って編集します。

$ sudo nano /etc/rc.local

以下を、このファイルの最後の方、exit 0 の手前に追加します。

sudo /home/pi/Work/Sources/ShutButton/ShutButton &

編集内容を保存し、nanoを終了してください。

 

2) Raspberry Piを再起動

$ sudo reboot

と発行すると、再起動します。

 

3) しばらく待ち、ボタンを押す

Raspberry Piが起動するまで50秒程待ち、TeraTermを起動し、ボタンを押すと、
シャットダウンプロセスが始まり、TeraTermが強制終了します。

 

 配線

このようになりました。

IMG_2400



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です