Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
O Raspberry Pi é uma plataforma de computação muito útil que permite a criação de vários aplicativos de projeto IoT / robótica / smart-home /…. Porém, a única coisa que ele não tem, em comparação com um computador normal, é um botão de desligamento. Então, como podemos criar um? Tudo bem, vamos fazer isso juntos!
Para este tutorial, você precisará do seguinte:
- 1 Raspberry Pi já configurado e pronto para usar
- 1 placa de ensaio ou algo que permitirá que você crie o circuito eletrônico
- 1 botão de pressão
- 2 fios de ligação
Se você nunca usou um Raspberry Pi, pode verificar meu tutorial sobre como e o que fazer para configurá-lo:
www.instructables.com/How-to-Setup-a-Raspberry-Pi-and-Start-Using-It/
Etapa 1: Circuito Eletrônico
Nada muito complicado aqui, é um circuito bastante simples. As 2 fotos acima explicam a construção do circuito. Você pode usar qualquer pino GPIO que desejar para a entrada do botão, você só precisa se certificar de atualizar o código para refletir isso.
Vamos explicar rapidamente como isso vai funcionar:
- o fio VERMELHO está levando os 3,3 V para uma das extremidades do botão.
- o cabo PRETO conecta a outra extremidade do botão a um Pi GPIO que será usado como entrada.
- por padrão, o botão está aberto, então não há tensão passando por ele. Portanto, o cabo PRETO está em 0 V quando o botão não está pressionado. Isso significa que o estado lógico da entrada Pi GPIO é 0.
- quando o botão for pressionado, a tensão passará por ele e o cabo PRETO será conectado ao 3,3V. O Raspberry Pi verá uma voltagem de 3,3 V em sua entrada, correspondendo a um estado lógico de 1.
Etapa 2: código Python
Agora que o circuito está pronto para ser usado, precisamos escrever o código que irá executá-lo, e estou usando Python em um ambiente PyCharm aqui. Eu configurei o botão para desligar o Raspberry Pi apenas quando for pressionado por mais de 3 segundos consequentemente. Estou fazendo isso porque é muito fácil pressioná-lo acidentalmente e você não quer desligar seu Pi por acidente.
A tela de impressão acima é do meu ambiente PyCharm e o código é o seguinte (com uma pequena diferença na linha 26, que está vinculada a outro projeto, mas não é obrigatória aqui):
# Este é um código para desligar o Raspberry Pi ao pressionar e segurar um botão definido # Módulo externo importaçõesimportar RPi. GPIO como GPIOimportar tempoimportar os # Definição de pinos e variáveis do Raspberry Pi & hold_time = 3 # Tempo de espera em segundos para poweroffbutton_poweroff = 1 # Botão de pressão para desligar Raspberry PiGPIO.setwarnings (False) GPIO.setmode (GPIO. BCM) # Broadcom pin-numbering schemeGPIO.setup (button_poweroff, GPIO. IN, pull_up_down = GPIO. PUD_DOWN) # Botão definido como inputwhile True: GPIO.wait_for_edge (button_poweroff, GPIO. RISING) start = time.time () time.sleep (0.2) # Switch debounce enquanto GPIO.input (button_poweroff) == 1: time.sleep (0.01) length = time.time () - inicia se comprimento > hold_time: os.system ("sudo poweroff")
A primeira coisa, se você conectou o botão a um GPIO diferente, é atualizar a linha 11 na tela de impressão acima com a entrada GPIO relevante:
button_poweroff = GPIO_X # Atualize com o GPIO correto usado em seu circuito
Além disso, a variável hold_time permite que você modifique o tempo de espera que aciona o encerramento do Pi.
Etapa 3: Como iniciar o script automaticamente após o procedimento de inicialização
Agora que temos o código pronto, só precisamos executá-lo. Porém, seria conveniente se pudéssemos ter esse script executado toda vez que o Pi estiver inicializando, de forma automática, para que o botão funcionasse sem que nós executássemos o script todas as vezes. Existem muitas maneiras de fazer isso. Eu adicionei aqui uma linha no arquivo rc.local que está localizado na pasta / etc / do seu Pi. Ele é executado como parte da sequência de inicialização.
Você precisa abrir uma linha de comando e digitar os seguintes comandos (1ª tela de impressão acima):
CD /
cd etc sudo nano rc.local
O primeiro comando o levará de seu diretório / home / pi para o diretório raiz, que é /.
O segundo comando o levará ao diretório / etc /.
Finalmente, o terceiro abrirá o arquivo rc.local como um superusuário, com direitos totais de edição, necessários para modificar o arquivo.
Uma vez no arquivo, você só precisa adicionar uma linha no final dele, mas antes da instrução exit 0 (2ª tela de impressão acima):
# Adicione esta linha ao arquivo rc.local para iniciar o script
sudo python /home/pi/Documents/shutdown_with_hold.py &
Existem algumas coisas às quais você precisa prestar atenção, aqui:
- o nome do seu arquivo: na linha acima, estou assumindo que o arquivo é shutdown_with_hold.py. Mas pode ser o que você quiser, basta atualizar o nome com o seu.
- onde você salvou seu arquivo: na linha acima, estou assumindo que ele está salvo em seu diretório / home / pi / Documentos. Mas, novamente, pode estar em qualquer lugar. Você só precisa ter certeza de colocar o caminho absoluto para o seu arquivo aqui.
- o caractere "&" no final: isso é importante e permite que este comando seja executado em segundo plano
E é isso! Portanto, agora, o script será executado sempre que seu Pi estiver LIGADO, e você só terá que pressionar mais de 3 segundos no botão para desligá-lo.