पड़ाव / वेक बटन बनाना?


10

मैंने पिन 5 और 6 का उपयोग करके वेक-इन-हाल्ट बटन को रिग किया है। ये दो पिन, कनेक्ट होने पर, पावर को रीसेट कर देंगे और हाल्ट से रिबूट करेंगे। मैं एक ही बटन का उपयोग करना चाहता हूं, अगर मैं कर सकता हूं, तो एक कमांड चलाने के लिए, जिसे दबाए जाने पर, कंप्यूटर का उपयोग करके बंद हो जाएगा sudo halt। क्या यह संभव होगा? के लिए sudo haltबटन, मैं, बटन को GPIO 1 से कनेक्ट करने के लिए तो GPIO 6 (जमीन) और एक सामान्य GPIO पिन से विभाजित की आवश्यकता होगी। मुझे नहीं पता कि यह GPIO 5 को इस से जोड़ना संभव है / सुरक्षित है।

जवाबों:


8

अन्य GPIO पिन जोड़ने की आवश्यकता नहीं है। आप अपने पड़ाव बटन के लिए बस एक ही पिन का उपयोग कर सकते हैं।

यहाँ कुछ पायथन कोड है जो पिन पोल करेगा 5. जब बटन दबाया जाता है तो पिन 5 को जमीन (पिन 6) पर खींच लिया जाता है, और कोड एक LOW पढ़ेगा। उस मामले में haltकमांड चलाएगा

#!/usr/bin/python
import RPi.GPIO as GPIO
import time
import subprocess

GPIO.setmode(GPIO.BOARD)
# set pin 5 to input, and enable the internal pull-up resistor
GPIO.setup(5, GPIO.IN, pull_up_down=GPIO.PUD_UP)

oldButtonState1 = True
while True:
    buttonState1 = GPIO.input(5)

    if buttonState1 != oldButtonState1 and buttonState1 == False :
        # print "Button 1 pressed"
        subprocess.call("halt", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

    oldButtonState1 = buttonState1

    time.sleep(.1)

पुनश्च। मैं हॉल्ट फंक्शन से वेक के बारे में नहीं जानता था। धन्यवाद अब मुझे पता है! तो धन्यवाद।


1
प्रतिभाशाली! मुझे एहसास नहीं था कि मैं यह सब सिर्फ 5 और 6 पर कर सकता हूं। धन्यवाद! :)
रयान मैकक्लेर

इसलिए, हम दोनों ने आज कुछ सीखा (-:
Gerben

खुद के लिए एक नोट का अधिक। आप प्रेस को रिबूट करने के लिए कोड को भी संशोधित कर सकते हैं, और शटडाउन करने के लिए एक प्रेस-एंड-होल्ड (या इसके विपरीत) कर सकते हैं।
गेरबन

किस तरह से आपकी स्क्रिप्ट लगातार चल रही है, यानी, डीमॉनेटाइज़ की गई है? क्या आपने फ़िल्में देखते समय प्रदर्शन में कोई कमी देखी है?
अथानीस

1
वास्तव में, यह बहुत लंबा समय है, लेकिन तब नहीं जब सीपीयू कुछ सेकंड के लिए 100% हिट करता है, जैसे, एक पूर्ण एचडी फिल्म को डिकोड करना। मैं इसे आजमाता हूँ, परीक्षण कभी नहीं होता है। प्रतिक्रिया के लिए धन्यवाद!
अथानीस

2

एक रीसेट बटन P6 हेडर से जुड़ा जा सकता है, जिसके साथ पाई रीसेट किया जा सकता है। क्षण भर में P6 के दो पिनों को एक साथ छोटा करने से CPU का सॉफ्ट रिसेट होगा (जो कि हाल / शटडाउन स्टेट से पाई को 'जगा' सकता है)

सीएफ


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.