Как добавить переключатель On-Off в мой малиновый Pi 2

Я хочу добавить переключатель включения /выключения в свой pi 2, чтобы правильно закрыть pi вниз

Это переключатель, который я хочу добавить:

Изменить: переместился из ссылка , которая будет включена ниже: Один хромированный переключатель с одним полюсом Snap с табличкой с надписью «Вкл.» (На красном фоне) и «Выкл.» (На черном фоне) с проводами, выходящими из изображения «> </a> </p>

<p> Этот парень из группы малины Pi kik сделал для меня этот код </p>

<p> <a href="http://pastebin.com/WTeR39d8" rel="nofollow noreferrer"> http://pastebin.com/WTeR39d8 </a> </p>

<p> Изменить - воспроизведено ниже: </p>

<pre><code>---- +: = 0 = + ----</code></pre>

<p>, но он не объяснил, как подключить его.
Также я понятия не имею, как добавить код к пи. </p>

<p> Я запускаю кали. Я не пытался подключить коммутатор или поставить код в pi, потому что я не знаю, как это сделать. </p></body></html>

4 голоса | спросил laxus 31 ThuEurope/Moscow2015-12-31T03:50:39+03:00Europe/Moscow12bEurope/MoscowThu, 31 Dec 2015 03:50:39 +0300 2015, 03:50:39

3 ответа


4

Я только что закончил создание схемы отключения питания вчера, хотя мой использует мгновенный переключатель.

Вот код python (с встроенной атрибуцией):

#!/bin/python
#This script was authored by AndrewH7 and belongs to him (www.instructables.com/member/AndrewH7)
#You have permission to modify and use this script only for your own personal usage
#You do not have permission to redistribute this script as your own work
#Use this script at your own risk

import RPi.GPIO as GPIO
import os

gpio_pin_number=YOUR_CHOSEN_GPIO_NUMBER_HERE
#Replace YOUR_CHOSEN_GPIO_NUMBER_HERE with the GPIO pin number you wish to use
#Make sure you know which rapsberry pi revision you are using first
#The line should look something like this e.g. "gpio_pin_number=7"

GPIO.setmode(GPIO.BCM)
#Use BCM pin numbering (i.e. the GPIO number, not pin number)
#WARNING: this will change between Pi versions
#Check yours first and adjust accordingly

GPIO.setup(gpio_pin_number, GPIO.IN, pull_up_down=GPIO.PUD_UP)
#It's very important the pin is an input to avoid short-circuits
#The pull-up resistor means the pin is high by default

try:
    GPIO.wait_for_edge(gpio_pin_number, GPIO.FALLING)
    #Use falling edge detection to see if pin is pulled 
    #low to avoid repeated polling
    os.system("sudo shutdown -h now")
    #Send command to system to shutdown
except:
    pass

GPIO.cleanup()
#Revert all GPIO pins to their normal states (i.e. input = safe)

На самом деле важно помнить, что у вас должно быть два резистора в вашей схеме, например: схематическая схема

R1 (резистор 10k) переходит на землю и удерживает ваш выбранный штырь GPIO от плавающего, в то время как R2 (резистор 1k) помогает предотвратить повреждение этого же штыря от источника 3.3V.

ответил Jerry W. 22 FebruaryEurope/MoscowbMon, 22 Feb 2016 21:00:34 +0300000000pmMon, 22 Feb 2016 21:00:34 +030016 2016, 21:00:34
1

Код предназначен для:

  • отслеживать активность на выводе 26 GPIO (по BCM, то есть нумерации выводов Broadcomm), после того, как он настроен, он бесконечно ждет (в кусках 30 секунд), и он обнаружит «падающий» -эдж, который является тем, происходит с выводом, который имеет высокую подтяжку и переключатель, соединенный между ним и землей, когда активирован переключатель, который нормально разомкнут (нажат!)

  • , когда такое событие происходит, он запускает команду /usr/bin/sudo с аргументом poweroff, а затем перестает ждать появления других событий этого события.

  • В конце концов ему будет сказано прекратить (командой poweroff, с которой это произошло, чтобы инициировать!), и он сделает любые действия очистки, которые он может сделать до выхода.

Таким образом, вам понадобится подключить коммутатор между выводом GPIO, который равен 26 (физический контакт 37 IIRC), а не полагаться на внутреннее подтягивание. Я также подключил резистор 10 кОм между этим выводом GPIO и 3,3 В , Затем вам нужно заставить этот код запускаться как пользователь с разрешением на использование контактов GPIO - для этого пользователь root является разумным выбором, потому что вы не хотите, чтобы нормальный пользователь вмешивался в него, и вы хотите, чтобы он начинался, когда Pi загружается и работает до тех пор, пока (он не сообщит Pi) о завершении работы. Самый простой способ сделать это - вставить весь код в текстовый файл и сохранить его как нечто вроде gpio_poweroff.py, это будет полезно отметить его как исполняемый с помощью chmod u+x gpio_poweroff.py и поместить его в /sbin с помощью sudo mv gpio_poweroff.py /sbin. Наконец, вам нужно, чтобы он запускался при запуске Pi, и это зависит от того, что я не знаю о вашей системе. Если бы это была моя система, я бы ввел команду для ее запуска: /sbin/gpio_poweroff.py & в файл /etc/rc.local {& важно, это означает, что он запускается в фоновом режиме, не подождите (пока кнопка не будет нажата иначе), чтобы она закончилась}. Однако я не уверен, что ваша система будет иметь такой файл - если это так, то должно быть хорошо использовать его.

ответил SlySven 1 Jam1000000amFri, 01 Jan 2016 02:12:40 +030016 2016, 02:12:40
0

Вы можете добавить выключатель питания в свой PI, чтобы он нормально закрывался. Однако есть причина, которая не была широко рекламирована, но дизайнеры не использовали ее: если вы запустите систему из раздела только для чтения , вы можете безопасно вытащить вилку из ПИ, следовательно, освободите один драгоценный вывод.

ответил 1 Jam1000000amFri, 01 Jan 2016 02:53:47 +030016 2016, 02:53:47

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132