2.2 KiB
2.2 KiB
Voici une solution complète pour votre Raspberry Pi :
- Système d'exploitation minimal : Installez Raspberry Pi OS Lite (version sans interface graphique) :
sudo apt update && sudo apt upgrade -y
sudo apt purge wolfram-engine libreoffice* -y
sudo apt clean && sudo apt autoremove -y
- Optimisation du boot :
Editez
/boot/cmdline.txtet ajoutez ces paramètres :
quiet splash logo.nologo consoleblank=0 loglevel=0
- Script Python (
/home/pi/smile_request.py) :
import os
import requests
try:
response = requests.get(
'https://timelapse.kerboul.me/api/smile',
headers={'accept': 'image/jpeg'},
timeout=10
)
if response.status_code == 200:
print("Requête réussie!")
# Pour la maquette, attente d'une entrée utilisateur
input("Appuyez sur Entrée pour éteindre...")
else:
print(f"Erreur: {response.status_code}")
except Exception as e:
print(f"Erreur: {str(e)}")
finally:
os.system('sudo shutdown -h now')
- Auto-start avec systemd :
Créez le service
/etc/systemd/system/smile.service:
[Unit]
Description=Smile API Request Service
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/bin/python3 /home/pi/smile_request.py
WorkingDirectory=/home/pi
User=pi
[Install]
WantedBy=multi-user.target
- Permissions sudo sans mot de passe :
Editez
/etc/sudoersavecsudo visudoet ajoutez :
pi ALL=(ALL) NOPASSWD: /sbin/shutdown
- Activation et finalisation :
sudo systemctl daemon-reload
sudo systemctl enable smile.service
sudo apt install python3-requests -y
Fonctionnement :
- Démarrage ultra-rapide en mode console (~10-15s)
- Exécution automatique du script
- Requête HTTP GET avec gestion d'erreur
- Extinction après exécution (avec confirmation manuelle pour test)
Pour tester sans redémarrer :
python3 /home/pi/smile_request.py
Personnalisation possible :
- Modifier le timeout dans le script Python
- Ajouter un délai avant extinction avec
shutdown -h +1 - Sauvegarder l'image reçue (ajouter un traitement de réponse)
Cette configuration permet un cycle complet démarrage->requête->extinction en moins de 30 secondes (selon la connexion réseau).