# 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.
