
# El programa escrito en Micropython utiliza la libreria BLE.py y
# permite establecer una conexion serial UART Bluetooth con un ESP32. 

# Por medio de la conexion se envian las letras "A", "a" y "b" para 
# cambiar el estado de un led conectado en el pin 2 del ESP32. 

# Una letra "A" pone el led en ON.
# Una letra "a" pone el led en OFF.
# Una letra "b" pone el led en BLINK.

# Se recomienda usar una app móvil Serial Bluetooth Terminal para 
# conectarse al circuito y enviar las letras que modifiquen el estado 
# del led.

from machine import Pin
import bluetooth
from BLE import BLEUART
import time 

pin = Pin(2, Pin.OUT)
pin.off()

nombre = input("Dar un nombre: \n")
print ("Nombre bluetooth: "+nombre+"\n")
ble = bluetooth.BLE()
uart = BLEUART(ble,nombre)


def on_rx():
    rx_recibe = uart.read().decode().strip()    
    uart.write("ESP32 ha recibido ->"+str(rx_recibe)+"\n")
    print("Se ha recibido -> ",rx_recibe)

    if rx_recibe == "A":
        pin.value(1)
    if rx_recibe == "a":
        pin.value(0)
    if rx_recibe == "b":
        for n in range(0,10):
            pin.value(1)
            time.sleep(0.1)
            pin.value(0)
            time.sleep(0.1)

uart.irq(handler=on_rx)    


