# T.2.3.5 Comunicaciones en el SP32 ## Conectarse a Internet A continuación, vamos a crear un programa que permita conectarse a la red WiFi de su hogar o lugar de trabajo. En este contexto, MicroPython utiliza la libreria network. Esta librería establece un socket TCP/UPD para solicitudades HTTP. Algunas consideraciones: 1. Después de una llamada a wlan.connect(), el dispositivo volverá a intentar conectarse de forma predeterminada para siempre, incluso cuando la autenticación falla o no hay AP dentro del rango. 2. Por otro lado, wlan.status() devolverá network.STAT_CONNECTING en este estado hasta que la conexión sea exitosa o la interfaz se deshabilite. Esto se puede cambiar llamando a wlan.config (reconnects=n), donde n es el número de intentos de reconexión deseados (0 significa que no volverá a intentarlo, -1 restaurará el comportamiento predeterminado de intentar reconectarse para siempre). En el siguiente links se puede encontrar más detalles sobre los diferentes comandos aplicados usando MicroPython. [Networks y más](https://docs.micropython.org/en/latest/esp32/quickref.html#networking) El código a implementar se muestra acontinuación para dicho propósito copie el mismo y cree un nuevo programa en la carpeta `MicroExample` y guardelo con el nombre de `ejemplo-wifi.py`. ```Python= import time import urequests #time.sleep(1) #time.sleep_ms(500) #time.sleep_us(10) # sleep for 10 microseconds def do_connect(SSID, PASSWORD): import network global wlan wlan = network.WLAN(network.STA_IF) wlan.active(True) if not wlan.isconnected(): print('connecting to network...') try: wlan.connect(SSID, PASSWORD) while not wlan.isconnected(): print(".-") time.sleep(1) pass except OSError: print("Wifi error") if wlan.isconnected(): print('network config:', wlan.ifconfig()) do_connect("ZAMORAMERO", "AABBCCDD") print("-------------Validar conexión-------------") respuesta1= urequests.get('http://jsonplaceholder.typicode.com/albums/1') print("Primera respuesta en formato txt", respuesta1.text) respuesta2 = urequests.post("http://jsonplaceholder.typicode.com/posts", data = "some dummy content") print("Segunda respuesta en formato txt", respuesta2.text) print("Segunda respuesta en formato json", respuesta2.json()) #https://www.esp32.com/viewtopic.php?t=14010 #https://docs.micropython.org/en/latest/esp32/quickref.html#networking ``` En el código anterior se muestra el uso de la libreria urequest dicha libreria permite enviar una solicitud de red. Los parámetros son: Envíe una solicitud de red, bloqueará los datos de respuesta devueltos a la red, parámetros: * Método para establecer una solicitud de red. p.ej. HEAD, GET, POST, PUT, PATCH, DELETE. * URL de la solicitud de red. * Más de detalles de sus métodos [aquí].(https://makeblock-micropython-api.readthedocs.io/en/latest/public_library/Third-party-libraries/urequests.html) Al ejecutar la respuesta se debe mostrar algo similar a la figura siguiente, pero, usando la configuración de red respectiva de cada controlador. ![](https://hackmd.io/_uploads/B1Ekxa8cY.png)