import time

from machine import UART, Pin

uart = UART(2, baudrate=9600, tx=17, rx=16)

# Initialisation de la LED intégrée (souvent sur GPIO 2)
led = Pin(2, Pin.OUT)  # GPIO 2 pour la LED intégrée

def send_at_command(command):
    uart.write((command + "\r\n").encode())  # Envoie la commande AT au module LoRa
    time.sleep(0.3)  # Attendre la réponse du module
    while uart.any():
        response = uart.read().decode('utf-8')  # Lire la réponse
        print(response)

def blink_led(times, interval):
    for _ in range(times):
        led.value(0)  # Éteindre la LED
        time.sleep(interval)  # Attendre un certain temps
        led.value(1)  # Rallumer la LED
        time.sleep(interval)  # Attendre un certain temps

# Initialisation du module LoRa
led.value(1)  # Allumer la LED (rouge)
time.sleep(2)
print("Initialisation du module LoRa-E5...")
send_at_command("AT")
send_at_command("AT+MODE=TEST")
send_at_command("AT+TEST=RFCFG,868000000,12,125,8,14")  # Définir le débit de données (ex: SF12BW125)
send_at_command("AT+TEST=RXLRPKT")  # Commencer la réception des paquets LoRa

print("Module LoRa-E5 initialisé. En attente de messages...")

while True:
    if uart.any():  # Si des données sont disponibles sur le port série
        message = uart.read().decode('utf-8').strip()  # Lire le message reçu
        print(f"Message reçu : {message}")

        # Clignotement de la LED une fois pour indiquer la réception
        led.value(0)  # Éteindre la LED
        time.sleep(0.1)  # Attendre un peu
        led.value(1)  # Rallumer la LED

    time.sleep(0.01)  # Petite pause pour éviter de saturer la boucle