[출처 : https://howchoo.com/g/mwnlytk3zmm/how-to-add-a-power-button-to-your-raspberry-pi ]
라즈베리파이가 출시되면서 원가 이슈로 전원 버턴이 누락되었다
하지만 간단히 버턴 스위치와 선만 있으면 설치가 가능하다
전원 버턴이 필요한 이유는
sudo shutdown -h now
명령어 이후 전원선을 차단하면 되는데 작동 중 전원을 차단하면 Micro SD Memory 데이타 손상될 수 있기 때문에
간단히 버턴 스위치를 누른 후 Shutdown 후 전원을 차단하면 안전하게 라즈베리파이를 운영할 수 있다
준비물
- 라즈베리파이 3B 혹은 4B
- 복귀 마이크로 버턴 1개
- 전선 300 mm 2개
배선 사진
원본에는 GPIO 5번 6번에 푸쉬 스위치 연결하라고 되어 있는데 6번은 Nextion LCD 연결로 6번 39번으로 변경함
[실행방법 #1] 가장 간단히 github에서 다운받아 설치
1. 설치
git clone https://github.com/Howchoo/pi-power-button.git
./pi-power-button/script/install
2. 제거
git clone https://github.com/Howchoo/pi-power-button.git
./pi-power-button/script/uninstall
버턴을 한번 눌리면 켜지고 다시 눌리면 꺼진다
[실행방법 #2] 직접 수동 설치하는 방법
1. listen-for-shutdown.py 스크립트를 만든다
sudo nano listen-for-shutdown.py
#!/usr/bin/env python
import RPi.GPIO as GPIO
import subprocess
GPIO.setmode(GPIO.BCM)
GPIO.setup(3, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.wait_for_edge(3, GPIO.FALLING)
subprocess.call(['shutdown', '-h', 'now'], shell=False)
Ctrl-X -> Y -> 엔터 하고 저장한다
2. 부팅 시 위 스크립터를 /usr/loval/bin 으로 옮기고 자동 실행하게 만듦
sudo mv listen-for-shutdown.py /usr/local/bin/
sudo chmod +x /usr/local/bin/listen-for-shutdown.py
3. 추가 listen-for-shutdown.sh 를 만든다
sudo nano listen-for-shutdown.sh
#! /bin/sh
### BEGIN INIT INFO
# Provides: listen-for-shutdown.py
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO
# If you want a command to always run, put it here
# Carry out specific functions when asked to by the system
case "$1" in
start)
echo "Starting listen-for-shutdown.py"
/usr/local/bin/listen-for-shutdown.py &
;;
stop)
echo "Stopping listen-for-shutdown.py"
pkill -f /usr/local/bin/listen-for-shutdown.py
;; *)
echo "Usage: /etc/init.d/listen-for-shutdown.sh {start|stop}"
exit 1
;;
esac exit 0
Ctrl-X -> Y -> 엔터 하고 저장한다
4. 위 스크립트를 /etc/init.d 로 옮기고 실행하게 만듦
sudo mv listen-for-shutdown.sh /etc/init.d/
sudo chmod +x /etc/init.d/listen-for-shutdown.sh
5. 위 스크립트를 부팅시 실행되도록 함
sudo update-rc.d listen-for-shutdown.sh defaults
sudo /etc/init.d/listen-for-shutdown.sh start
이상입니다
DS5QDR 73!
'DV Lab & Test' 카테고리의 다른 글
2020-07-16 휴대폰용 이어폰 핀 배열도 (0) | 2020.07.16 |
---|---|
2020-07-14 차량에서 네비와 DVSwitch Mobile 동시 사용 (0) | 2020.07.15 |
2020-06-23 Kyocera KC-100S 무전기폰 PTT 활성화 (0) | 2020.06.23 |
2020-06-10 RS232C 9핀 단자 기능표 (0) | 2020.06.10 |
2020-06-09 Raspberry Pi 4B에 3.5 Inch XPT2046 LCD 부착 (0) | 2020.06.09 |