Створення кнопки зупинки / пробудження?


10

Я встановив кнопку "будильник від зупинки" за допомогою штифтів 5 і 6. Ці два штифта при підключенні відновлюють живлення та перезавантажуються з зупинки. Я хочу використовувати цю саму кнопку, якщо зможу, виконати команду, яка при натисканні буде вимикати комп’ютер за допомогою sudo halt. Це було б можливо? Для sudo haltкнопки мені потрібно буде підключити від GPIO 1 до кнопки, потім розділити на GPIO 6 (земля) та загальний GPIO-контакт. Я не знаю, чи можна / безпечно підключити GPIO 5 до цього.

Відповіді:


8

Не потрібно додавати інші штифти GPIO. Ви можете просто використовувати ті самі шпильки для вашої кнопки зупинки.

Ось якийсь код python, який запитає контактний штифт 5. Коли натискається кнопка, контактний штифт 5 витягується на землю (контакт 6), і код зчитується НИЗЬКО. У цьому випадку буде запущена 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)

PS. Я не знав про функцію Wake from Halt. Завдяки вам я знаю зараз! Тож спасибі


1
Блискуче! Я не усвідомлював, що можу це зробити всього лише на 5 та 6. Дякую! :)
Ryan McClure

Отже, ми обоє сьогодні дізналися щось (-:
Гербен

Більше записки до себе. Ви навіть можете змінити код, щоб натиснути кнопку перезавантажити, і натиснути і утримувати, щоб зробити відключення (або навпаки).
Гербен

Яким чином ваш сценарій працює постійно, тобто демонізується? Ви помітили будь-яке зниження продуктивності під час перегляду фільмів?
athanassis

1
Дійсно, це дуже давно, але не тоді, коли процесор потрапляє на 100% на кілька секунд, коли, наприклад, розшифровує фільм у повному HD. Спробую, тестування ніколи не зашкодить. Дякуємо за відгук!
athanassis

2

Кнопку скидання можна приєднати до заголовка P6, за допомогою якого Pi можна скинути. Миттєве скорочення двох штифтів P6 разом спричинить плавне скидання центрального процесора (що також може «розбудити» Pi зі стану зупинки / відключення)

пор


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.