Índice:
- Etapa 1: Circuito Eletrônico
- Etapa 2: código Python
- Etapa 3: Como iniciar o script automaticamente após o procedimento de inicialização
Vídeo: Botão de desligamento para Raspberry Pi: 3 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:34
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.
Recomendado:
Fonte de alimentação de reserva para desligamento adequado: 5 etapas
Fonte de alimentação de backup para desligamento adequado: Uma fonte de alimentação de backup é um circuito que fornece energia aos dispositivos no caso de sua fonte de alimentação principal cair. Neste caso, esta fonte de alimentação de backup serve apenas para fornecer energia por alguns segundos para que o dispositivo possa fazer o procedimento de desligamento
Carga USB para interromper o desligamento automático dos bancos de energia: 4 etapas
Carga USB para interromper o desligamento automático dos bancos de energia: tenho vários bancos de energia, o que funciona muito bem, mas encontrei problemas ao carregar os fones de ouvido sem fio. pequena carga para manter a potência
Temporizador de desligamento retardado para bicicleta: 5 etapas
Temporizador de desligamento retardado para bicicleta: Problema: adicionei diferentes dispositivos à minha bicicleta. O problema é que eles estão conectados diretamente à bateria e drenam uma corrente de fuga ou depois do interruptor principal e não estão disponíveis quando eu desligo minha bicicleta. Exemplos: Você precisa carregá-la
Microcontrolador AVR. Alterne os LEDs usando um botão de pressão. Botão Debouncing: 4 etapas
Microcontrolador AVR. Alterne os LEDs usando uma chave de botão. Push Button Debouncing: Nesta seção, aprenderemos como fazer o código do programa C para ATMega328PU para alternar o status dos três LEDs de acordo com a entrada de uma chave de botão. Além disso, exploramos uma solução para o problema de ‘Switch Bounce’. Como de costume, nós teremos
Prank para desligamento do computador (Windows): 4 etapas
Prank para desligamento do computador (Windows): Isso desligará o computador de uma pessoa quando ela clicar no ícone que você configurou. Este ícone será um novo ícone em que a vítima não resiste em clicar. Ao clicar no ícone, o computador será encerrado com um comentário, com um comentário ou com