gpiotools_blink.sh

Raspberry Pi 5 (model-5) · Fichier : gpiotools_blink.sh · Langage : Bash · Usage : Piloter une GPIO depuis un script shell ou cron, sans dépendance Python

Sans Python, les gpiotools (paquet gpiotools) exportent la broche et basculent son niveau : pratique dans un cron, un script d'installation ou un service systemd. GPIO17 correspond à la broche 11 du connecteur J8 (40 broches). Le trap garantit la libération de la broche à la sortie.

Matériel requis

Une Raspberry Pi 5 (BCM2712 quad-core 2,4 GHz, puce I/O RP1, GPIO 40 broches, alimentation USB-C 5 V/5 A recommandée, deux ports caméra CSI). Une LED, une résistance 330 ohms, aucun paquet Python requis (gpiotools seulement).

Câblage

LED + résistance entre GPIO17 (broche 11) et GND, comme le montage LED classique du connecteur J8.

Fonctionnement

gpio-export crée /sys/class/gpio/gpio17, le script écrit 1/0 dans value via gpio-set/gpio-clear ; le mode out est fixé à l'export.

Exécution

Copiez le script sur la carte (scp), puis lancez-le avec python3. Sous Bookworm, gpiozero 2.x pilote les broches via la puce RP1 ; gardez gpiozero et python3-rpi.gpio à jour (sudo apt full-upgrade). Alimentation 5 V/5 A conseillée.

Variantes

gpio-get pour lire un bouton ; gpiomon (libgpiod) pour un événement. Alimentation 27 W (5 V/5 A) recommandée ; sans elle, l'USB se limite à 600 mA au total.

gpiotools_blink.sh

#!/usr/bin/env bash
set -u
# gpiotools_blink.sh — LED clignotante sans Python, via gpiotools.
# Deps: sudo apt install gpiotools
# GPIO17 = broche 11 sur le connecteur 40 broches (J8).
# Alternative sans paquet : echo 17 > /sys/class/gpio/export a la main.
# Relancez si la broche est deja occupee par un autre service.
PIN=17
gpio-export $PIN out
trap 'gpio-unexport $PIN' EXIT

echo "LED sur GPIO$PIN, Ctrl+C pour sortir"
while true; do
    gpio-set $PIN
echo "ON"
    sleep 0.5
    gpio-clear $PIN
echo "off"
    sleep 0.5
done

← Retour à la fiche