Найти тему

Raspberry Pi Кнопка выключения системы и индикатор работы

Raspberry Pi Кнопка выключения системы и индикатор работы
Raspberry Pi Кнопка выключения системы и индикатор работы

UPD: Поскольку крупнейшая IT-компания не способна добавить инструменты для отображения кода в свой "Дзен", статьи буду, в первую очередь, выкладывать на teletype.in
Эта статья с на teletype:
https://teletype.in/@electronic_fields_notes/ZTDkjbwjFj4UodgJ

# Сборка и подключение.


Схему расположения выводов можно посмотреть на сайте
pinout.xyz

GPIO3 - PIN #5, GPIO14 - PIN #8 , GND - PIN #6
GPIO3 - PIN #5, GPIO14 - PIN #8 , GND - PIN #6


Монтажная схема:

Монтажная схема
Монтажная схема


Принципиальная схема:

Схема
Схема
сборка
сборка

Кнопку подключаем к физическим выводам 5 (SCL - GPIO3) и 6 (GND). Светодиод индикатора подключаем через резистор 330 Ом к физическим выводам 8 (TXD - UART0) и 6 (GND).

подключение
подключение

# Настройка кнопки

## Установка с помощью скрипта



1. Скачиваем скрипт:

git clone https://github.com/Howchoo/pi-power-button.git


2. Запускаем установку:

./pi-power-button/script/install

3. Для удаления используем команду:

./pi-power-button/script/uninstall

## Ручная установка

Создаем два скрипта

1. Первый скрипт "listen-for-shutdown.py":

sudo nano listen-for-shutdown.py

2. Содержание первого скрипта:

#!/usr/bin/env python
import RPi.GPIO as GPIO
import subprocess

GPIO.setmode(GPIO.BCM)
GPIO.setup(3, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.wait_for_edge(3, GPIO.FALLING)

subprocess.call(['shutdown', '-h', 'now'], shell=False)

3. Помещаем его в "/usr/local/bin" и делаем исполняемым:

sudo mv listen-for-shutdown.py /usr/local/bin/
sudo chmod +x /usr/local/bin/listen-for-shutdown.py

4. Создаем второй скрипт "listen-for-shutdown.sh":

sudo nano listen-for-shutdown.sh

5. Содержание второго скрипта:

#!/bin/sh

### BEGIN INIT INFO
# Provides: listen-for-shutdown.py
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO

# If you want a command to always run, put it here

# Carry out specific functions when asked to by the system
case "$1" in
start)
echo "Starting listen-for-shutdown.py"
/usr/local/bin/listen-for-shutdown.py &
;;
stop)
echo "Stopping listen-for-shutdown.py"
pkill -f /usr/local/bin/listen-for-shutdown.py
;;
*)
echo "Usage: /etc/init.d/listen-for-shutdown.sh {start|stop}"
exit 1
;;
esac
exit 0

6. Сохраняем второй скрипт в "/etc/init.d" и делаем исполняемым:

sudo mv listen-for-shutdown.sh /etc/init.d/
sudo chmod +x /etc/init.d/listen-for-shutdown.sh

7. Регистрируем в автозагрузку:

sudo update-rc.d listen-for-shutdown.sh defaults

8. Запускаем скрипт:

sudo /etc/init.d/listen-for-shutdown.sh start

-7

# Настройка индикатора.

Для Raspberry Pi версий старше 3 необходимо переопределить пин для отображения активности на GPIO в файле "/boot/config.txt":

dtoverlay=pi3-act-led,gpio=14
dtparam=act_led_trigger=default-on

Наиболее часто используемые варианты пульсаций:

default-on - Включено по умолчанию
heartbeat - Мигнуть сердцебиением (1-0-1-00000)
timer - Мигнуть 1 раз в секунду
mmc0 - Мигнуть при активности mmc0 (SD Card)
cpu0 - Мигнуть при использовании cpu0
rfkill0 - Мигнуть при активности wifi

Все варианты пульсаций:

none - Нет тригера
kbd-scrolllock - Клавиатура scroll lock
kbd-numlock - Клавиатура num lock
kbd-capslock - Клавиатура caps lock
kbd-kanalock - Клавиатура kana lock
kbd-shiftlock - Клавиатура shift
kbd-altgrlock - Клавиатура altgr
kbd-ctrllock - Клавиатура ctrl
kbd-altlock - Клавиатура alt
kbd-shiftllock - Клавиатура left shift
kbd-shiftrlock - Клавиатура right shift
kbd-ctrlllock - Клавиатура left ctrl
kbd-ctrlrlock - Клавиатура right ctrl
timer - Мигнуть 1 раз в секунду
oneshot - Мигнуть единожды
heartbeat - Мигнуть сердцебиением (1-0-1-00000)
backlight - Включена подсветка
gpio - Мигнуть когда высокий уровень определенного GPIO
cpu0 - Мигнуть при использовании cpu0
cpu1 - Мигнуть при использовании cpu1
cpu2 - Мигнуть при использовании cpu2
cpu3 - Мигнуть при использовании cpu3
default-on - Включено по умолчанию
panic - Мигнуть при kernel panic
mmc0 - Мигнуть при активности mmc0 (первичный интерфейс SD Card)
mmc1 - Мигнуть при mmc1 (вторичный интерфейс SD Card)
rfkill0 - Мигнуть при активности wifi
rfkill1 - Мигнуть при активности bluetooth

-8


# Ссылки

Оригинальные статьи на howchoo.com:

С подпиской рекламы не будет

Подключите Дзен Про за 159 ₽ в месяц