Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Наверное, каждый пользователь RPi когда-нибудь задумывается, как выключить Raspberry Pi?
Вы не можете просто выключить питание. Если вы это сделаете, очень вероятно, что однажды SD-карта будет повреждена, и ваш RPi не запустится. Вы должны сначала выключить ОС, и только потом вы сможете выключить ее, выдернув шнур из розетки, или, если вы более опытный пользователь, выключателем, установленным самостоятельно. Это более или менее нормально, если вы используете свой RPi в качестве настольного ПК. Но что делать, если в вашем проекте не используются ни клавиатура, ни мышь, ни монитор?
Мое решение основано на использовании мини-кнопочного переключателя питания с платой защиты от обратного напряжения. Разберемся в деталях.
Шаг 1. Настройте Raspberry Pi
Сначала вам нужно отредактировать файл config.txt в RPI, добавив строку:
dtoverlay = gpio-poweroff, active_low, gpiopin = 14
Поместите эту строку в конец перед:
start_x = 0
С помощью этой строки вы устанавливаете GPIO14 (здесь я использую нумерацию BCM GPIO) при запуске. Когда он станет низким после выключения, он отключит питание с помощью контакта «ctrl» на плате Pololu.
Шаг 2: Подключите плату Pololu к вашему RPi
Подключите плату Pololu к вашему RPi, как показано на картинке.
Шаг 3: скрипт Python
Вам нужно добавить код в свой скрипт Python, а также
.****************************************************************************
gpio.setup (31, gpio. IN, pull_up_down = gpio. PUD_UP) # установить GPIO 31 как вход
def Shutdown (channel): os.system ("sudo shutdown -h now") # выключает RPi при низком уровне GPIO31
gpio.add_event_detect (31, gpio. FALLING, callback = Shutdown, bouncetime = 2000) # ожидание низкого уровня GPIO для выключения RPi
****************************************************************************
Шаг 4: как это работает
Переключатель SW1 выполняет функцию кнопки «ВКЛ». Ничего особенного, все понятно:)
Когда вы нажимаете SW2, процесс выключения инициализируется путем выполнения скрипта Python.
После завершения процесса GPIO8 переходит в низкий уровень.
Этот низкий уровень на контакте "ctrl" платы Pololu отключает питание.
Вот и все:)
Шаг 5: Спасибо
Посетите мой блог, чтобы увидеть больше интересных проектов:
verysecretlab09.blogspot.com/
YouTube канал:
www.youtube.com/channel/UCl8RTfbWUWxgglcJM…