Оглавление:
- Шаг 1: Электронная схема
- Шаг 2: код Python
- Шаг 3: Как автоматически запустить скрипт после процедуры загрузки
Видео: Кнопка выключения для Raspberry Pi: 3 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:47
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 в среде 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 &
Здесь есть несколько вещей, на которые вам нужно обратить внимание:
- имя вашего файла: в строке выше я предполагаю, что это файл shutdown_with_hold.py. Но это может быть что угодно, просто замените имя своим.
- где вы сохранили свой файл: в строке выше я предполагаю, что он сохранен в вашем каталоге / home / pi / Documents. Но опять же, это может быть где угодно. Вам просто нужно обязательно указать здесь абсолютный путь к вашему файлу.
- символ «&» в конце: это важно, и он позволяет этой команде работать в фоновом режиме.
Вот и все! Итак, теперь скрипт будет выполняться каждый раз, когда ваш Pi будет включен, и вам просто нужно нажать более 3 секунд на кнопку, чтобы выключить его.
Рекомендуемые:
Загрузка USB для остановки автоматического выключения аккумуляторов питания: 4 шага
Загрузка USB для остановки автоматического выключения аккумуляторов питания: у меня есть несколько аккумуляторов, которые отлично работают, но я столкнулся с проблемой при зарядке беспроводных наушников power bank автоматически отключится из-за слишком малого тока зарядки.Поэтому я решил сделать USB-адаптер с небольшая нагрузка для сохранения мощности ба
Использование кнопки для включения и выключения светодиода с CloudX M633: 3 шага
Использование кнопки для включения и выключения светодиода с CloudX M633: < img src = " https: //www.instructables.com/files/deriv/FLC/57B2…" / > Знаете ли вы, что вы можете использовать CloudX M633 для включения светодиода при нажатии кнопки? В этом проекте я собираюсь показать вам, как вы можете использовать кнопку для включения и выключения светодиода. ч
Сенсорная кнопка питания для Raspberry Pi: 3 шага
Сенсорная кнопка питания для Raspberry Pi: с тех пор, как я распечатал и начал использовать этот чехол для своего Retropie, я всегда представлял, как сделать кнопку питания. Идея заключалась в том, чтобы изменить дизайн, чтобы сделать кнопку перемещения, а затем переместить переключатель. В конце концов у меня появилась другая идея, где мне не нужно было менять кассету
Кнопка внешнего питания для ESC: 3 шага (с изображениями)
Кнопка внешнего питания на ESC: я делаю электрический скейтборд, и мне нужно добавить внешний переключатель к ESC, чтобы иметь возможность разместить всю свою электронику в одном корпусе. Список деталей: -Pushbutton-wire-shrinktube (необязательно) -hotglue (необязательно) -ESC (banggood: https://goo.gl/4n8kzB)
Добавление разъема синхронизации ПК к кабелю Nikon Sc-28 TTL (используйте автоматические настройки для включения вспышки камеры и включения вспышки выключения камеры !!): 4 шага
Добавьте разъем синхронизации ПК к кабелю Nikon Sc-28 Ttl (используйте автоматические настройки для включения вспышки камеры и запуска вспышки выключения камеры !!): в этой инструкции я покажу вам, как удалить один из этих надоедливых проприетарных 3-контактных разъемов TTL на сторона кабеля TTL снятого с камеры Nikon SC-28 и замените его стандартным разъемом синхронизации ПК. это позволит вам использовать специальную вспышку, s