from tkinter import *
from gpiozero import LED, PWMLED
# Déclaration des GPIO
led = PWMLED(21)
# Fonction
def allume():
led.on()
def eteint():
led.off()
def luminosite(event): # Attention cette fonction utilise event
lux=curseur.get()
led.value=lux
# Boucle principale -main-
ihm=Tk() # Création de la fenetre tk
ihm.title('Ihm - GPIO') # Titre de la fenetre
ihm.geometry("540x260") # Taille de la fenetre
ihm.minsize(480, 260) # Taille minimale de la fenetre
ihm.config(background='#3995E7') # Couleur du fond
frame=Frame(ihm, bg='#3995E7') # Création de la trame pour les bouton
frame.pack(expand=YES) # et on pack / cela revient à faire une bind dans tk
# Creation du bouton 1 pour pour appeler la fonction allume
bouton1 = Button(frame, text="Allumer LED", font=("Courrier",14), command=allume,
bg='white', fg='#3995E7')
bouton1.pack(pady=5,fill=X)
# Creation du bouton 2 pour pour appeler la fonction eteint
bouton2 = Button(frame, text="Eteindre LED", font=("Courrier",14), command=eteint,
bg='white', fg='#3995E7')
bouton2.pack(pady=5,fill=X)
# Creation du curseur pour pour appeler la fonction luminosite
curseur=Scale(frame, from_=0, to=1, orient=HORIZONTAL,
resolution=0.1, tickinterval=0.1, length=350,
label='Luminosite | PWM',command=luminosite,
bg='white', fg='#3995E7')
curseur.pack(pady=5,fill=X)
ihm.mainloop() # et on boucle pour scanner les events
Plutôt cool, non ?
et c’est encore mieux avec un écran tactile … ou en ssh sur le tel ou une tablette.