Raspberry Piの電源ボタン

GPIOポートはRaspberry Piの主な利点の1つです。後のバージョンのボードでは、その数が26から40に増えました。すべてのMalinkaモデルとの互換性を保つために、最初の26個の連絡先のみを使用し、残りの14個は「オーバーボード」のままにします。 しかし、私たちは奈落の底に良いものを与えません! この記事では、2つの未使用ポートの電源をオフにするかリセットボタンを作成する方法を説明します。 実際、ボタンの機能は、想像力とニーズに応じて任意に設定できます。











これはGPIOでの初めての経験なので、ロジックを理解することが重要でした。 ほとんどすべてのGPIOピン(いくつか予約済み)は、「出力」(別名OUTまたは論理1)または「入力」(INまたは論理0)のいずれかの状態に設定できます。 出力電圧は3.3Vです。 端末から直接、および任意のプログラミング言語の両方でGPIOポートを操作できます。 これについては、 ここで詳しく説明します







ボタンには、一番上の行の右端の2つのピンを使用することにしました。 コネクタ#38(GPIO20)は「出力」に設定され、コネクタ#40(GPIO21)は「入力」に設定されます。 さらに、1秒間に1回繰り返されるサイクルはコネクタ#40を「リッスン」し、信号が到着するとすぐに、使用されているポートが「クリーン」になり、コンソールコマンドが起動してシャットダウンします。 上記のように、チームは他のものでも構いません。 興味のために、私はこのタスクをPythonとbashスクリプトの2つの方法で達成しました。 以下は両方のオプションのコードです。



shutdown.py
import RPi.GPIO as GPIO from time import sleep import os GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) # Turn off warnings output GPIO.setup(38, GPIO.OUT) # Set pin #38 (GPIO20) to output GPIO.setup(40, GPIO.IN) # Set pin #40 (GPIO21) to input while True: buttonIn = GPIO.input(40) if buttonIn == True: print 'System shuts down' GPIO.cleanup() os.system("sudo shutdown -h now") break sleep(1)
      
      





shutdown.sh
 #! /bin/bash # Set up GPIO20 and set to output echo "20" > /sys/class/gpio/export echo "out" > /sys/class/gpio/gpio20/direction echo "1" > /sys/class/gpio/gpio20/value # Set up GPIO21 and set to input echo "21" > /sys/class/gpio/export echo "in" > /sys/class/gpio/gpio21/direction while ( true ) do # check if the pin is connected to GND and, if so, halt the system if [ $(</sys/class/gpio/gpio21/value) == 1 ] then echo "20" > /sys/class/gpio/unexport echo "21" > /sys/class/gpio/unexport shutdown -h now "System halted by a GPIO action" fi sleep 1 done
      
      







繰り返しますが、両方のスクリプトは同じことをします。ボタンが機能するには、いずれか(いずれか)が必要です。 それらはダウンロードすることもできます:





Pythonスクリプトの場合、注意点が1つあります。RPi.GPIOクラスが機能するために必要です。RPi.GPIOクラスは個別にダウンロードしてインストールする必要があります。 これは次のように行われます。



 wget http://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.5.11.tar.gz tar zxf RPi.GPIO-0.5.11.tar.gz cd RPi.GPIO-0.5.11 sudo python setup.py install
      
      







実際、最後にやらなければならないことは、自動ロードするスクリプトを追加することです。 これを行う方法はいくつかありますが、 cronを選択しました。 これを行うには、 sudo crontab -eコマンドを実行し、開くファイルに次のいずれかの行を追加します。



 @reboot python /home/pi/lentyay/poweroff.py & @reboot sudo /home/pi/lentyay/shutdown.sh &
      
      











それだけです 私からは、このようなボタンを使用することは非常に便利だと思います。



All Articles