Compare commits
1 Commits
5799a17507
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 9571001c45 |
82
README.md
82
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
|
## Instalación
|
||||||
systemctl enable led_off.service
|
|
||||||
systemctl enable led_on.service
|
Siga esta secuencia de comandos para integrar los scripts como servicios del sistema:
|
||||||
systemctl enable escucha.service
|
|
||||||
systemctl start led_off.service
|
```bash
|
||||||
systemctl start led_on.service
|
# 1. Otorgar permisos de ejecución a los scripts
|
||||||
systemctl start escucha.service
|
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
|
||||||
```
|
```
|
||||||
Reference in New Issue
Block a user