Bonjour,

Sur un raspberry pi 0, j'ai rajouté un bouton poussoir et une led pour pouvoir éteindre le système proprement sans écran ni clavier.
L'idée est que lorsque l'on appuie le bouton assez longtemps (min 2s), le système s'éteint. La led doit s'allumer lors de la mise sous tension, et clignoter lorsque le bouton est appuyé.
j'ai écrit 2 scripts python qui sont lancé au démarrage grâce à supervisor.

le code pour le bouton :
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from gpiozero import Button
from subprocess import check_call
from signal import pause
 
def shutdown():
    check_call(['sudo', 'poweroff'])
 
shutdown_btn = Button(26, hold_time=2)
 
print("extinction")
shutdown_btn.when_held = shutdown
pause()

le code pour la led :
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time
import os
import signal
from gpiozero import LED
 
pin = 23
red = LED(pin)
def Signal_Handler(signal, frame):
    red.blink(on_time=0.5, off_time=0.5, n=None)
red.on()
signal.signal(signal.SIGTERM, Signal_Handler)
while 1:
    time.sleep(0.2)

Le seul défaut c'est que la led s'allume avec un délai énorme par rapport à la mise sous tension (environ 1 min). Un énorme délai aussi pour le clignotement lors de l'appui sur le bouton, de plus j'ai l'impression que cela ralentit l'extinction du système (la led clignote pendant + d' 1 min).
Je ne sais pas si mon code est en cause...