Files
raspberry_scripts/README.md
2026-01-27 21:55:01 +01:00

2.5 KiB

Raspberry Pi LED & Button Control

Sistema de gestión para el control de estado de un LED y monitorización de un botón físico para acciones de sistema (apagado/reinicio) utilizando systemd y la suite libgpiod.

Estructura del Proyecto

Los archivos deben estar localizados en el directorio /opt/raspberry_scripts/:

  • led_config.conf: Archivo centralizado de variables para definir los pines GPIO.
  • blink_led.sh: Script de parpadeo para identificación visual.
  • button_control.sh: Script que gestiona la lógica de pulsación del botón.
  • led-on.service: Servicio de sistema para encender el LED al inicio.
  • led-off.service: Servicio de sistema para apagar el LED al apagar/reiniciar.
  • button-monitor.service: Servicio persistente que ejecuta el script del botón.

Configuración (led_config.conf)

Edite este archivo para ajustar los pines a su hardware:

CHIP=0
LINE=16
BTN_LINE=18

Instalación

Siga esta secuencia de comandos para integrar los scripts como servicios del sistema:

# 1. Otorgar permisos de ejecución a los scripts
sudo chmod +x /opt/raspberry_scripts/*.sh

# 2. Instalar los archivos de servicio en systemd
sudo cp /opt/raspberry_scripts/*.service /etc/systemd/system/

# 3. Ajustar permisos de los archivos de servicio
sudo chmod 644 /etc/systemd/system/led-on.service
sudo chmod 644 /etc/systemd/system/led-off.service
sudo chmod 644 /etc/systemd/system/button-monitor.service

# 4. Recargar el demonio de systemd
sudo systemctl daemon-reload

# 5. Habilitar el inicio automático de los servicios
sudo systemctl enable led-on.service
sudo systemctl enable led-off.service
sudo systemctl enable button-monitor.service

# 6. Iniciar el monitor de botón de forma inmediata
sudo systemctl start button-monitor.service

Operación

Control del Sistema (Botón)

El script monitoriza eventos en el pin definido como BTN_LINE:

  • Pulsación estándar: Apaga la Raspberry Pi (poweroff).
  • Pulsación prolongada (> 5 segundos): Reinicia la Raspberry Pi (reboot).

Identificación Visual (LED)

Para identificar físicamente la unidad, ejecute:

/opt/raspberry_scripts/blink_led.sh

El LED parpadeará hasta que se interrumpa el proceso (Ctrl+C), momento en el cual el LED volverá a estado encendido fijo automáticamente.

Verificación de Servicios

Puede comprobar el estado del monitor en cualquier momento con:

systemctl status button-monitor.service