こんにちは。さかやすです。
ラズベリーパイ(ラズパイ)のシャットダウンについて知りたい人向け
ラズパイ初心者
ラズベリーパイ(ラズパイ)はデータの読み書きが随時行われているコンピュータです。
電源を抜くようなシャットダウンは、データ破損のリスクがあり適切な方法ではありません。
ラズベリーパイを正しくシャットダウンさせる方法は、3つあります。今回は、その方法について解説していきます。
Python(プログラミング言語)を使用して、電源ボタンを自作する手順も紹介しています。
本記事の内容
①画面操作でシャットダウン
②コマンドからシャットダウン
③自作ボタンでシャットダウン(Pythonプログラミング)
ラズベリーパイ未購入の方に、オススメの記事です。
【Raspberry Pi(ラズパイ)】ラズパイとは?ラズパイの種類とできること! 【初心者向け】ラズベリーパイの買い方。OSのインストールは不要です目次
ラズベリーパイとパソコンの環境について
今回使用したラズベリーパイとパソコンの環境について記載しておきます。
ラズベリーパイ
ラズベリーパイの本体
Raspberry Pi4 ModelB です。
ラズベリーパイのOS
raspbian-2018-11-15 を使用しています。インストールの手順は、こちら。
パソコン
パソコンのOS
Windows10のパソコンを使用しています。
ラズベリーパイやプログラミング学習にオススメのパソコンです。
子供用おすすめノートパソコン!プログラミング学習に最適なパソコン画面操作用のリモートツール
VNC Viewer 6.19 を使用しています。
ssh接続ツール
TeraTerm 4を使用しています。
VNC・TeraTermのインストール手順はこちらから。
【Raspberry Pi(ラズパイ)】インストールからVNC接続までを解説:モニタ・キーボード・マウスは不要です画面操作(GUI)でシャットダウン
ラズベリーパイに接続
1.VNC Viewerでラズベリーパイに接続します。
パソコンでVNCを起動して、ラズベリーパイのIPアドレスを入力して接続します。
2.接続に成功すると次の画面が表示されます。
操作手順
1.Shutdownを選択します。
2.確認メッセージが表示されますので、Shutdownを選択します。
コマンド(CUI)からシャットダウン
ラズベリーパイに接続
TeraTermを使用して、ラズベリーパイに接続します。
1.TeraTermを起動して、ラズベリーパイのIPアドレスを入力します。
2.ユーザ名とパスフレーズを入力します。
3.次の画面が表示されれば、接続完了です。
操作手順
1.次のコマンドを実行します。
1 | $ sudo shutdon -h now |
2.ラズベリーパイがシャットダウンします。
本体のランプが消えれば、シャットダウン成功です。
シャットダウンスイッチの自作
必要なパーツ
GPIOに直接接続可能なスイッチを別途購入しました。
配線
ラズベリーパイのGPIOピンに直接スイッチを接続しました。今回使用したのは、GPIO27とGNDです。
シャットダウンプログラムの作成
Pythonでラズベリーパイのシャットダウンプログラムを記述していきます。
1.「/home/pi」に作業ディレクトリ「work」を作成します。
1 | $ mkdir work |
2.作業ディレクトリ「work」に移動します。
1 | $ cd work |
3.viを使用してファイルを新規に作成します。
1 | $ vi shutdown.py |
4.次のコードを入力し保存します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #!/usr/bin/python # coding:utf-8 import time import RPi.GPIO as GPIO import os GPIO.setmode(GPIO.BCM) GPIO.setup(27,GPIO.IN,pull_up_down=GPIO.PUD_UP) while True: GPIO.wait_for_edge(27, GPIO.FALLING) while True: sw_status = GPIO.input(27) if sw_status == 0: os.system("sudo shutdown -h now") print("shutdown start") break |
自動起動プログラムの登録
シャットダウンプログラムを常駐プログラムとして登録させるため、「rc.local」に記述します。
1.rootでログインします。
1 | $ su root |
1 2 3 | $ sudo passwd root Enter new UNIX password : ***** Retype new UNIX password : ***** |
2.etcディレクトリに移動します。
1 | $ cd /etc |
3.etc配下にある「rc.local」を編集します。
1 | $ vi rc.local |
4.exti0の直前に次のコマンドを追加します。
1 2 3 4 | ... $ /home/pi/work/shutdown.py $ exit 0 ... |
5.再起動します。
1 | $ sudo reboot -h now |
まとめ
いかがでしたでしょうか。今回はラズベリーパイのシャットダウンについて解説しました。
ラズベリーパイはデータの読み書きが随時行われているため、シャットダウンは適切な方法で行う必要があります。
電源を抜くだけのシャットダウンはデータ破損のリスクがあり危険です。
当記事を参考に、適切なシャットダウンを心がけましょう。
シャットダウンの方法3つ。
- 画面からシャットダウン
- コマンドからシャットダウン
- 自作ボタンからのシャットダウン
ここまでお読みいただきありがとうございました。
プログラミング講師 さかやす