WORKING ON: Comunicación bidireccional TCP/IP, ESP8266 y Android.

Este Working On consiste en establecer comunicación TCP/IP entre un Arduino y una aplicación en Android, ambos conectados a la misma red WiFi.

Materiales:

  • ESP8266.
  • Arduino Mega. O en su defecto cualquier otra versión con periférico serial.
  • Leds.
  • Resistencias.
  • Protoboard.
  • Sensor LM35. O cualquier sensor de tu preferencia.
  • Punto de Acceso o Modem WiFi.
  • Aplicación móvil.

Existen diversas apps que nos permiten enlazarnos con otros dispositivos mediante el protocolo TCP/IP. WiFi TCP/UDP Controller es una de ellas, es muy intuitiva y fácil de utilizar por lo que se usará en éste ejemplo (https://play.google.com/store/apps/details?id=udpcontroller.nomal&hl=es_419).

Del celular se enviarán comandos los cuales causarán una acción al recibirse en el Arduino, las primeras tres cadenas causan el cambio de estado de tres leds diferentes y el último envía a la aplicación la temperatura actual procedente de un sensor lm35.

El sketch de arduino que te proporcionar no contiene las configuraciones iniciales que se necesitan, por lo que primero se procede a configurar el modulo por medios de comandos AT de manera manual, en el siguiente orden:

  • Resetear el módulo para prevenir errores anteriores: AT+RST
  • Configurar en modo estación: AT+CWMODE=1
  • Conectarse a una red wifi: AT+CWJAP_DEF=”NOMBRE DE RED WIFI”,”CONTRASEÑA”.
  • Obtener IP asignado por la red y guardar para su uso: AT+CIFSR
  • Permitir múltiples conexiones: AT+CIPMUX=1
  • Activar el servidor web en el puerto 80: AT+CIPSERVER=1,80

Recuerda, puedes usar un Convertidor USB-TTL serial o el mismo Arduino para comunicarte con el espi. Aunque estos comandos se ingresarán de forma manual se puede arreglar el código de Arduino para automatizar la operación, puesto que muchos de los comandos son olvidados por el espi cuando se des energiza.

La conexión eléctrica del circuito debe quedar de la siguiente forma, en el código se puede modificar los pines de acuerdo al modelo de placa Arduino que se utilice. Si usas otra placa que no sea el Mega o Mega SDK sigue éste link para una breve explicación del código  AQUÍ

tcpip conexiones

Conexión de Arduino mega con ESP8266 y elementos electrónicos.

Una vez obtenido la IP correspondiente al módulo, se procede a configurar la aplicación:

  1. Configurar la conexión TCP/IP:Nos metemos al menú preference de la APP y configuramos los primeros parámetros que corresponden al Target o el dispositivo objetivo con el que deseamos comunicarnos. IP: corresponde al IP que se le ha otorgado al espi y que hemos guardado de los pasos anteriores. Port: el puerto a utilizar en éste caso 80 (se puede experimentar con otros puertos disponibles pero se debe configurar de igual forma en el espi). Elegir la opción TCP.

Screenshot_20160804-133644

2. Configuración de interfaz: Como podrás notar luego de abrir la app, hay elementos visuales (botones, sliders, text box) que no tienen ninguna función al presionarlos o escribir sobre ellos. Para darles función tendremos que configurar sus acciones. Los comandos/cadenas que se enviarán en éste ejercicio son: “P40a”, “P41b”, “P42c” y “hol” (puedes modificarlo después), debemos ingresar estos comandos en la opción command, en donde tendremos la opción de escribirlo dentro de botones a los cuales les podremos cambiar el nombre que trae por default en la opción Name. La app te da más formas de personalizar los elementos visuales, siéntete libre de experimentar con las demás herramientas.

Screenshot_20160804-133735

3.  Subir el código: Luego de haber hecho las conexiones físicas y configurado la interfaz, se debe verificar que los pines declarados en el código correspondan a las conexiones hechas y/o hacer las modificaciones pertinentes, y cargar el código.

 EL CÓDIGO…

Poniendo a trabajar todo veremos cómo podemos controlar los leds desde la aplicación y al mismo tiempo recibimos en la app los datos del sensor. Ahora podrás hacer un sistema de control y monitoreo en tu propia red wifi local.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s