---
# System prepended metadata

title: T.2.3.5 Comunicaciones en el SP32

---

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