# Importation des bibliothèques nécessaires
import machine
import time

# Configuration des broches (à adapter selon votre câblage)
ir_receiver_pin = 14 # Broche du récepteur infrarouge
led_green_pin = 2     # Broche de la LED verte
servo_pin = 15       # Broche du servomoteur
buzzer_pin = 13       # Broche du buzzer
led_red_pin = 12

# Initialisation des composants
ir_receiver = machine.Pin(ir_receiver_pin, machine.Pin.IN)
led_green = machine.Pin(led_green_pin, machine.Pin.OUT)
servo = machine.PWM(machine.Pin(servo_pin), freq=50)
buzzer = machine.PWM(machine.Pin(buzzer_pin), freq=1000)
led_red = machine.Pin(led_red_pin, machine.Pin.OUT)

# Attente de la détection d'un signal infrarouge
while True:
    if ir_receiver.value():
        # Code capté par le récepteur infrarouge (à remplacer par votre code)
        received_code = "1234"  # Exemple de code
        
        # Vérification du code
        if received_code == "1234":
            # Allumer la LED verte
            led_green.on()
            
            # Faire tourner le servomoteur de 180 degrés
            servo.duty(40)  # Angle de 0 degré
            time.sleep(1)
            servo.duty(115)  # Angle de 180 degrés
            time.sleep(1)
            servo.duty(40)  # Retour à l'angle de 0 degré
            
            # Éteindre la LED verte
            led_green.off()
        else:
            # Activer le buzzer comme une alarme
            buzzer.duty(512)  # Intensité sonore (0-1023)
            time.sleep(60)
            buzzer.duty(0)  # Arrêter le buzzer
            
            # Clignoter la LED rouge
            for _ in range(5):
                led_red.on()
                time.sleep(1)
                led_red.off()
                time.sleep(1)
    time.sleep(1)  # Attendre avant de vérifier à nouveau

# Note : Assurez-vous d'ajuster les broches et les angles du servomoteur selon votre configuration matérielle.