RPi-Buttons

De Wiki levelKro

Vous pouvez facilement ajouter des boutons sur un Raspberry Pi pour lui définir des actions précises.

Matériel

  • Boutons pressoir, il ne doivent pas garder la position "on".
  • Cable adéquat (prise Dupont) pour relier les boutons aux connections du GPIO.

Codes

Cet exemple ne montre que deux boutons, mais il est possible d'en ajouter plus et de faire des combinaison, à celui qui sera en mesure d'apdater le script. Créer le document dans le dossier "/home/pi" avec pour nom "buttons.py".

Script Python

from gpiozero import Button
from signal import pause
import os, datetime, time
from datetime import datetime as dt

buttonA = Button(4)
buttonApressed = False
buttonB = Button(17)
buttonBpressed = False

while True:
    if buttonA.is_pressed and buttonApressed is not True:
        buttonApressed = True
        print("Button A is pressed")
        os.system("sudo reboot")
    elif buttonA.is_pressed:
        pass
    else:
        buttonApressed = False
       
    if buttonB.is_pressed and buttonBpressed is not True:
        buttonBpressed = True
        print("Button B is pressed")
        os.system("sudo poweroff")
    elif buttonB.is_pressed:
        pass
    else:
        buttonBpressed = False

Script de démarrage

Pour démarrer le script Python automatiquement au démarrage, il suffit de créer un document dans "/etc/systemd/system/" au nom de "buttons.service" et d'y inclure ce code.

[Unit]
Description=Buttons service
After=udev.target
StartLimitIntervalSec=2

[Service]
Type=simple
Restart=always
RestartSec=1
User=root
ExecStart=python3 /home/pi/buttons.py

[Install]
WantedBy=multi-user.target