2022年9月3日 星期六

RPi 設定GPIO接點作為開關機控制

如何用GPIO 作為RPi的實體開關機按鍵

RPi 没有像PC 的Power按鍵,   一般使用上有可能會偶遇SD卡磁損毀的情況, 雖然可以用OverLayFS(參考石頭成的這篇 Raspberry Pi OverlayFS 檔案系統使用備忘錄) 來避免檔案系統損毀, 但從另一個角度想想, 如果能增加實體按鍵, 可以利用Arduino 之類的單晶片電腦也就可以遠端控制 RPi 的開跟關囉! 

1 開機

RPi 正常開機只要送電就可以開機, 若用sudo poweroff 關機, 在没有關閉外部電源的情況下, RPi 也可以用PIN5(GPIO03)接地進行開機, 不須另外設定GPIO, 這個PIN腳本來也可以進行關機, 但因為 I2C 也用到這支腳, 通常開機後會因為受到I2C的設備而干擾造成無法使用來關機。 

2關機

為了能使用GPIO作為關機按鍵, 可以在 /boot/config.txt 中設定 GPIO 的腳位功能

例如:  設定 GPIO 21 腳位作為觸發關機 可在 /boot/config.txt 中增加一行如下

dtoverlay=gpio-shutdown,gpio_pin=21,active_low=1,gpio_pull=up

儲存檔案後重開RPi  , 此時, 短路 GPIO 的最後兩支腳Pin 39(GND),40(GPIO 21) 即可觸發關機動作。

經過測試,  在開機狀態下, GPIO03短接並不會像PC 的power 鍵按下會再觸發關機(可能原因如前述, I2C使用中),  此時將 GPIO 21, GPIO 03 接在一起, 接上遠端控制或環控, 就可以像PC的電源按鍵, 一鍵開關RPi 囉! 












參考

https://ppfocus.com/hk/0/hu0b06dc6.html

https://howchoo.com/g/mwnlytk3zmm/how-to-add-a-power-button-to-your-raspberry-pi

https://blog.driftking.tw/2019/11/%E6%9B%BFRaspberryPi%E6%B7%BB%E5%8A%A0%E9%96%8B%E9%97%9C_%E9%9B%BB%E6%BA%90%E7%87%88_%E7%A1%AC%E7%A2%9F%E7%87%88/

https://www.rocksaying.tw/archives/2019/Raspberry_Pi_OverlayFS_%E5%82%99%E5%BF%98%E9%8C%84.html