📡 IoT

iot-raspberry-pi-setup

Configuration et projets Raspberry Pi incluant OS, GPIO, serveurs et domotique.

⚡ Installation & lancement en 1 commande

Copiez-collez dans votre terminal : le skill s'installe dans ~/.claude/skills et Claude Code se lance directement dessus.

macOS / Linux
curl -fsSL https://raw.githubusercontent.com/khalilbenaz/claude-skills-collection/main/install.sh | sh -s -- iot-raspberry-pi-setup --launch
Windows (PowerShell)
iex "& { $(iwr -useb https://raw.githubusercontent.com/khalilbenaz/claude-skills-collection/main/install.ps1) } iot-raspberry-pi-setup -Launch"

🚀 Déjà installé ?

claude "/iot-raspberry-pi-setup"

Ou tapez /iot-raspberry-pi-setup dans une session Claude Code, ou décrivez simplement votre besoin — le skill se déclenche automatiquement via le skill-router.

🔑 Déclencheurs automatiques

Le skill s'active automatiquement quand votre demande contient :

Raspberry PiRPiRaspbianGPIOdomotiqueserveur Raspberry

📦 Installation manuelle

git clone https://github.com/khalilbenaz/claude-skills-collection.git cp -r claude-skills-collection/skills/iot-raspberry-pi-setup ~/.claude/skills/

Payload du plugin : skills/iot-raspberry-pi-setup · source éditable : iot-skills/raspberry-pi-setup

đź“– Manuel

Raspberry Pi Setup

1. Choix du modèle

BesoinModèle recommandéRaison
Serveur, IA edge, desktopPi 5 (4/8 Go)PCIe, NVMe, double 4K
Projet headless légerPi 4 (2 Go)Bon rapport perf/prix
Caméra, capteurs simplePi Zero 2 WUltra compact, Wi-Fi
MicrocontrĂ´leur (pas Linux)Pi Pico 2MicroPython, bare-metal
NAS/stockagePi 5 + HAT NVMeBande passante PCIe 2.0

Critère décisif : si le projet nécessite Docker, Python avec libs ML ou un serveur web → Pi 4/5. Si batterie/consommation prime → Zero 2 W ou Pico.

2. Installation OS

# Installer Raspberry Pi Imager (multi-OS)
# https://www.raspberrypi.com/software/

# Via CLI (Linux/macOS) avec rpi-imager ou directement dd :
# Recommandé : rpi-imager GUI → choisir "Raspberry Pi OS Lite 64-bit" pour headless

# Options à configurer AVANT flashage (bouton roue dentée dans Imager) :
# - Hostname : monpi.local
# - SSH activé, clé publique injectée
# - Wi-Fi SSID + mot de passe
# - Locale fr_FR, timezone Europe/Paris

Choix OS :

3. Configuration réseau et SSH

# Premier accès SSH
ssh pi@monpi.local          # mDNS via avahi-daemon
ssh pi@192.168.x.x          # IP fixe si mDNS indisponible

# IP statique via NetworkManager (Bookworm 2023+)
sudo nmcli con mod "Wired connection 1" \
  ipv4.addresses 192.168.1.100/24 \
  ipv4.gateway 192.168.1.1 \
  ipv4.dns "8.8.8.8 1.1.1.1" \
  ipv4.method manual
sudo nmcli con up "Wired connection 1"

# Ancienne méthode dhcpcd (Bullseye et antérieur) — /etc/dhcpcd.conf :
# interface eth0
# static ip_address=192.168.1.100/24
# static routers=192.168.1.1
# static domain_name_servers=8.8.8.8

4. Sécurisation (obligatoire avant exposition réseau)

# Changer le mot de passe pi ou créer un nouvel utilisateur
sudo adduser khalil
sudo usermod -aG sudo khalil

# Désactiver login par mot de passe SSH — /etc/ssh/sshd_config :
sudo sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo sed -i 's/^#PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl restart ssh

# Pare-feu minimal
sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw allow ssh
sudo ufw allow 80/tcp    # si serveur web
sudo ufw enable

# Fail2ban
sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban

# Mises à jour automatiques de sécurité
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

5. GPIO — commandes et bibliothèques

# Installer gpiozero (recommandée 2024+) + lgpio backend
sudo apt install -y python3-lgpio python3-gpiozero

# Activer interfaces (I2C, SPI, 1-Wire) via raspi-config
sudo raspi-config nonint do_i2c 0
sudo raspi-config nonint do_spi 0

# Vérifier périphériques I2C connectés
i2cdetect -y 1
# LED clignotante — gpiozero (Pi 4/5, BCM numbering)
from gpiozero import LED
from time import sleep

led = LED(17)          # GPIO17 = pin 11
while True:
    led.on(); sleep(0.5)
    led.off(); sleep(0.5)

# Bouton avec callback
from gpiozero import Button
btn = Button(18, pull_up=True)
btn.when_pressed = lambda: print("Appui détecté")
# Lecture capteur DHT22 (température/humidité)
import board, adafruit_dht
dht = adafruit_dht.DHT22(board.D4)
print(f"Temp: {dht.temperature}°C  Hum: {dht.humidity}%")

6. Services système avec systemd

# /etc/systemd/system/monapp.service
[Unit]
Description=Mon application Pi
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=khalil
WorkingDirectory=/home/khalil/monapp
ExecStart=/usr/bin/python3 main.py
Restart=on-failure
RestartSec=5
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now monapp
journalctl -u monapp -f        # logs en temps réel

7. Sauvegarde carte SD

# Sauvegarde image compressée (depuis une autre machine)
ssh pi@monpi.local "sudo dd if=/dev/mmcblk0 bs=4M status=progress" \
  | gzip > backup-$(date +%Y%m%d).img.gz

# Outil recommandé : rpi-clone (sauvegarde à chaud vers autre SD/USB)
git clone https://github.com/billw2/rpi-clone.git
sudo rpi-clone sda              # clone vers /dev/sda

# Cron sauvegarde hebdomadaire
0 3 * * 0 root rpi-clone -f sda >> /var/log/rpi-clone.log 2>&1

8. Cas d'usage courants — commandes clés

# Pi-hole (bloqueur DNS réseau local)
curl -sSL https://install.pi-hole.net | bash

# Home Assistant Supervised (sur Debian Bookworm)
curl -Lo haos_rpi4.img.xz https://github.com/home-assistant/operating-system/releases/...
# Mieux : flasher Home Assistant OS directement depuis Imager

# Node-RED
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
sudo systemctl enable --now nodered

# Monitoring ressources
sudo apt install -y htop glances
glances --webserver --port 61208   # dashboard web

# Température CPU
vcgencmd measure_temp              # Pi 4/5
cat /sys/class/thermal/thermal_zone0/temp   # universel, /1000 = °C

Garde-fous / Anti-patterns / Pièges

Bonnes pratiques 2026