1 of 18

Sensores y actuadores en red inalámbrica

IoT: introducción

2 of 18

Material de referencia:

3 of 18

Ejercicio 1: vamos al tablero para explicar cómo funciona...

4 of 18

Ejercicio 2: conectarse a una red WiFi

Para conectarnos a una red WiFi necesitamos saber:

  • El ssid de la red
  • La clave de la red
  • Asegurarse que el AP esté a 2.4 GHz

Una vez nos conectemos el Access Point nos dará una dirección IP que identificará el dispositivo en la red y permitirá que otros dispositivos le envíen mensajes

5 of 18

  1. Para usar el radio WiFi del ESP32 incluimos los archivos de cabecera: WiFi y WiFiMulti
  2. Creamos un objeto de tipo WiFiMulti.
  3. Usando el objeto WiFiMulti adicionamos las posibles redes WiFi a los cuales se conectará nuestro sensor.
  4. Finalmente comenzamos el proceso de conexión con el método run().
  5. Note que el método run() se llama repetidamente hasta que se logre la conexión a la red.
  6. Por último usamos el método localIP() para obtener la dirección IP asignada por el AP al sensor.

6 of 18

Ejercicio 3

  1. Descargue un terminal TCP/IP que tenga cliente y servidor. Por ejemplo, Hercules.
  2. Abra Hercules.
  3. Seleccione la pestaña TCP Server y configure el puerto con el valor 3001.
  4. Click en el botón Listen.

Este procedimiento permitirá tener un servidor escuchando conexiones en el puerto 3001.

7 of 18

Ejercicio 3 (cont)

  1. Ejecute la aplicación Windows PowerShell.
  2. Escriba el comando ipconfig
  3. Escriba la dirección IP que el AP de su casa le asignó a su computador.

NOTA: tenga en cuenta que esta dirección IP puede cambiar, por tanto siempre debe verificarla cuando haga experimentos.

8 of 18

Ejercicio 3 (cont)

  1. Abra una segunda ventana de Hercules.
  2. Seleccione la pestaña TCP Client.
  3. En el campo Module IP y Port coloque las direcciones IP del servidor (slide anterior) y el puerto (3001).
  4. Click en Connect
  5. Escriba una cadena de caracteres en la primera caja de Texto de la sección Send de la ventana.
  6. Click en Send.
  7. ¿Qué sucede en la ventana del TCP Server?
  8. Envíe una respuesta desde la ventana del TCP Server al TCP Client

9 of 18

Ejercicio 4

  1. Descargue un cliente TCP para su celular (Ejemplo: simple TCP socket Tester)
  2. Conecte su celular a la misma Red Wifi.
  3. Conecte la aplicación aplicación al TCP Server.
  4. Envíe un mensaje al server y del server a los clientes conectados.
  5. Si no funciona la conexión, mire el siguiente slide

10 of 18

Ejercicio 4 (Cont)

Es posible que no pueda conectar su celular al TCP Server que corre en el computador. Sí este es el caso, deshabilitar temporalmente el antivirus apagar el firewall.

OJO: NO OLVIDE HABILITAR EL FIREWALL UNA VEZ TERMINE LAS PRUEBAS

11 of 18

Ejercicio 5

  1. En los Ejemplos del Arduino para el ESP32 busque en la carpeta Wifi el ejemplo WiFiTelnetToSerial.
  2. Abra el ejemplo.
  3. Salve una versión del ejemplo.
  4. Modifique el ejemplo cambiando serial2 por serial y la red WiFi a la cual se conectará el servidor.
  5. Programe en el arduino el ejemplo.

Este ejemplo es un servidor. Abra el monitor de arduino y tome nota de la dirección IP asignada a este servidor y lea en el programa el puerto en el cual está escuchando el server.

  1. Conecte un cliente al servidor usando Hercules.
  2. Intercambie mensajes entre el cliente y el servidor.

NOTAS:

  • Sí no funciona, revise de nuevo los ejercicios anteriores.
  • Recuerde modificar serial2 por serial.

12 of 18

Ejercicio 6

  • Salve una nueva versión del ejemplo WiFiTelnetToSerial que modificó en el ejercicio anterior. Debe tener cambiado serial2 por serial.
  • Ahora aumente la cantidad de clientes que puede aceptar de 1 a 3: MAX_SRV_CLIENTS
  • Conecte varios TCP Clients usando Hercules y/o el celular (Ejercicio 4).
  • Experimente enviando y recibiendo mensajes.

13 of 18

Ejercicio 7

  • Ahora abra el ejemplo WiFiClientBasic
  • Modifique el programa para configurar la red WiFi a la cual se conectará.
  • Abra un TCP Server en Hercules. Tome nota de la dirección IP del server y el puerto donde estará escuchando. Recuerde usar ipconfig y apagar los demás TCP Server de Hercules que tenga previamente escuchando en el mismo puerto.
  • Modifique de nuevo el ejemplo pero esta vez cambie el puerto y la dirección IP del host (server) al cual se conectará.
  • Comente la línea 59 y descomente la línea 57.
  • Programe el ESP32 con el ejemplo modificado.
  • Abra la terminal y experimente.
  • Experimente con este código.

14 of 18

Ejercicio 8

Estudie detenidamente el código de los Ejercicios 5, 6.

¿Qué hace cada parte?

15 of 18

Ejercicio 9

Estudie detenidamente el código del Ejercicio 7

¿Qué hace cada parte?

16 of 18

Ejercicio 10

Ya estudió en detalle y al menos durante una hora los ejercicios 8 y 9?

Hágalo, lo necesitará para el siguiente reto

17 of 18

RETO A

Utilizando 3 dispositivos: ESP32, computador (o celular) y computador (u otro celular) realizar una aplicación estilo grupo de “Whatsapp”:

  • Uno de los dispositivos será el servidor: el ESP32
  • Los otros serán clientes.
  • La idea de la aplicación es que aparezca en la terminal de cada cliente los mensajes que colocan los demás.

18 of 18

RETO B

  • Use como servidor Hercules.
  • Defina un protocolo ASCII
  • Haga un programa cliente en el ESP32 que responda a diferente comandos enviados desde el servidor:
    • Leer (el ESP32 reporta el estado de un pulsador o switch)
    • Escribir 0 (el ESP apaga un LED)
    • Escribir 1 (el ESP enciende el LED)
  • Repita lo anterior pero esta vez defina un protocolo binario.
  • EXPERIMENTE!