Оглавление:

Кнопка выключения для Raspberry Pi: 3 шага
Кнопка выключения для Raspberry Pi: 3 шага

Видео: Кнопка выключения для Raspberry Pi: 3 шага

Видео: Кнопка выключения для Raspberry Pi: 3 шага
Видео: Raspberry Pi 3: обзор, первое включение, настройка – Часть 1 2024, Ноябрь
Anonim
Кнопка выключения для Raspberry Pi
Кнопка выключения для Raspberry Pi

Raspberry Pi - очень полезная вычислительная платформа, которая позволяет создавать различные приложения для проектов IoT / robotics / smart-home /…. Единственное, чего у него нет, по сравнению с обычным компьютером, - это кнопки выключения и выключения. Итак, как мы можем создать его сами? Хорошо, давайте сделаем это вместе!

Для этого урока вам понадобится следующее:

  • 1 Raspberry Pi уже настроен и готов к использованию
  • 1 макет или что-то, что позволит вам создать электронную схему
  • 1 кнопка
  • 2 перемычки

Если вы никогда не использовали Raspberry Pi, вы можете ознакомиться с моим руководством о том, как и что делать для его настройки:

www.instructables.com/How-to-Setup-a-Raspberry-Pi-and-Start-Using-It/

Шаг 1: Электронная схема

Электронная схема
Электронная схема
Электронная схема
Электронная схема
Электронная схема
Электронная схема

Здесь нет ничего сверхсложного, это довольно простая схема. 2 изображения выше поясняют построение схемы. Вы можете использовать любой вывод GPIO для ввода кнопки, вам просто нужно обязательно обновить код, чтобы отразить это.

Давайте быстро объясним, как это будет работать:

  • КРАСНЫЙ провод подводит напряжение 3,3 В к одному концу кнопки.
  • ЧЕРНЫЙ кабель соединяет другой конец кнопки с Pi GPIO, который будет использоваться в качестве входа.
  • по умолчанию кнопка разомкнута, поэтому через нее не проходит напряжение. Таким образом, ЧЕРНЫЙ кабель находится на 0 В, когда кнопка не нажата. Это означает, что логическое состояние входа Pi GPIO равно 0.
  • когда кнопка будет нажата, напряжение пройдет через нее, и ЧЕРНЫЙ кабель будет подключен к 3,3 В. Затем Raspberry Pi увидит на своем входе напряжение 3,3 В, что соответствует логическому состоянию 1.

Шаг 2: код Python

Код Python
Код Python

Теперь, когда схема готова к использованию, нам нужно написать код, который будет ее запускать, и здесь я использую Python в среде PyCharm. Я настроил кнопку для выключения Raspberry Pi только тогда, когда она нажимается более 3 секунд последовательно. Причина, по которой я это делаю, заключается в том, что очень легко случайно нажать на нее, и вы не хотите, чтобы ваш Pi случайно выключился.

Приведенный выше экран для печати взят из моей среды PyCharm, а код следующий (с незначительной разницей в строке 26, которая связана с другим проектом, но здесь не требуется):

# Это код для отключения питания Raspberry Pi при нажатии и удерживании определенной кнопки # Внешний модуль импортирует импорт RPi. GPIO как GPIOimport timeimport os # Вывод Raspberry Pi и определения переменных & hold_time = 3 # Время удержания в секундах до poweroffbutton_poweroff = 1 # Нажатие кнопки для выключения Raspberry PiGPIO.setwarnings (False) GPIO.setmode (GPIO. BCM) # Схема нумерации контактов Broadcom GPIO.setup (button_poweroff, GPIO. IN, pull_up_down = GPIO. PUD_DOWN) # Кнопка установлена как ввод, пока True: GPIO.wait_for_edge (button_poweroff, GPIO. RISING) start = time.time () time.sleep (0.2) # Включить дребезг при GPIO.input (button_poweroff) == 1: time.sleep (0.01) length = time.time () - начать, если длина > hold_time: os.system ("sudo poweroff")

Первое, что нужно сделать, если вы подключили кнопку к другому GPIO, - это обновить строку 11 на приведенном выше экране с соответствующим входом GPIO:

button_poweroff = GPIO_X # Обновите с правильным GPIO, используемым в вашей цепи

Кроме того, переменная hold_time позволяет вам изменять время ожидания, которое вызывает отключение Pi.

Шаг 3: Как автоматически запустить скрипт после процедуры загрузки

Как запустить скрипт автоматически после процедуры загрузки
Как запустить скрипт автоматически после процедуры загрузки
Как запустить скрипт автоматически после процедуры загрузки
Как запустить скрипт автоматически после процедуры загрузки

Теперь, когда у нас есть код, нам просто нужно его выполнить. Но было бы удобно, если бы мы могли запускать этот скрипт каждый раз при загрузке Pi автоматически, чтобы кнопка работала без нас, чтобы запускать скрипт каждый раз. Есть много способов сделать это. Я добавил здесь одну строку в файл rc.local, который находится в папке / etc / вашего Pi. Он выполняется как часть последовательности загрузки.

Вам нужно открыть командную строку и ввести следующие команды (1-й экран выше):

CD /

cd и т. д. sudo nano rc.local

Первая команда перенесет вас из вашего каталога / home / pi в корневой каталог, которым является /.

Вторая команда перенесет вас в каталог / etc /.

Наконец, третий откроет файл rc.local как суперпользователь с полными правами редактирования, которые вам нужны для изменения файла.

Попав в файл, вам просто нужно добавить строку в его конец, но перед оператором exit 0 (2-й экран выше):

# Добавьте эту строку в файл rc.local для запуска скрипта

sudo python /home/pi/Documents/shutdown_with_hold.py &

Здесь есть несколько вещей, на которые вам нужно обратить внимание:

  1. имя вашего файла: в строке выше я предполагаю, что это файл shutdown_with_hold.py. Но это может быть что угодно, просто замените имя своим.
  2. где вы сохранили свой файл: в строке выше я предполагаю, что он сохранен в вашем каталоге / home / pi / Documents. Но опять же, это может быть где угодно. Вам просто нужно обязательно указать здесь абсолютный путь к вашему файлу.
  3. символ «&» в конце: это важно, и он позволяет этой команде работать в фоновом режиме.

Вот и все! Итак, теперь скрипт будет выполняться каждый раз, когда ваш Pi будет включен, и вам просто нужно нажать более 3 секунд на кнопку, чтобы выключить его.

Рекомендуемые: