diff --git a/README.md b/README.md index b413e16..65e286f 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,76 @@ +# 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: + +```bash +CHIP=0 +LINE=16 +BTN_LINE=18 ``` -cp -Rfv *.service /etc/systemd/system/ -systemctl daemon-reload -systemctl enable led_off.service -systemctl enable led_on.service -systemctl enable escucha.service -systemctl start led_off.service -systemctl start led_on.service -systemctl start escucha.service + +## Instalación + +Siga esta secuencia de comandos para integrar los scripts como servicios del sistema: + +```bash +# 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: + +```bash +/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: + +```bash +systemctl status button-monitor.service ``` \ No newline at end of file