Con la demanda actual sobre el desarrollo del internet de las cosas (IoT), hay necesidad de conectar microcontroladores como el arduino al internet para transmitir e intercambiar datos. Una forma conveniente de hacerlo es a través de un modulo WiFi. Una opción popular para conectar el arduino a internet es un modulo WiFi conocido como el ESP8266, el cual viene con su propio microcontrolador. Esto significa que puede ser programado igual que un arduino así como también usado en conjunto con otro arduino.
Configuración
El modulo viene con su propio firmware y permite responder a comandos AT. La opción requiere una configuración mínima, pero a cambio debe usarse en conjunto con otro microcontrolador. El microcontrolador extra enviara instrucciones AT al modulo WiFi y procesará las respuestas. La otra opción es programar el modulo en directo y aprovechar su microcontrolador integrado. Esto se puede lograr con el firmware nodemcu, el cual nos permite programar en Lua y provee un API con un estilo parecido a node.js.
Pero en este post nos enfocaremos a programar el ESP8266 con el lenguaje de programación de arduino usando el IDE de arduino. Proque siempre he tenido una inclinación por lo nativo.
En ese sentido. Hay dos formas de conectar el modulo WiFi a una computadora para poder grabar un programa en el. La forma mas simple es conectarlo a la computadora con un FTDI o con una placa USB-Serial. Y la otra opción es conectarse a través de un arduino.
Si utilizan una placa FTDI, todo lo que se necesita es conectar el modulo WiFi como en el diagrama de abajo. El TX del ESP8266 va al TX del USB-Serial, El RX del ESP8266 va al RX del USB-Serial. Tierra (gnd) y VCC también se conectan de una manera similar. Y Finalmente se conecta el GPIO 0 a Tierra y a CH_PD a VCC para poner el modulo en modo escritura para poder comenzar a recibir los programas.
Si están usando una placa Arduino UNO en lugar de un FTDI, deben primero asegurarse que estan conectando el pin VCC del modulo a la fuente de 3.3V en el arduino, y ademas de que la tierra (gnd) vaya a la tierra del arduino. Lo siguiente es conectar el pin TX del modulo WiFi al RX del arduino y el RX del modulo al TX del arduino. Como están cruzados podría parecer poco intuitivo pero así aseguramos que los datos transmitidos desde el arduino pasaran por la computadora y viceversa. Para referencia ver el diagrama. Debemos, ademas, asegurarnos de que los pines TX y RX estén conectados a un divisor de voltaje o un inversor lógico. Finalmente, conectar el pin reset del arduino a tierra para desactivar el microcontrolador. También pueden remover el microcontrolador del chip, para mayor seguridad 🙂
Grabando el programa
Ahora que ya tienen el modulo WiFi conectado propiamente, conectamos el arduino o el FTDI a la computadora y abrimos el IDE de arduino. Clic en Herramientas en el menu y seleccionar Puerto Serial y seleccionar el puerto deseado, y luego abrir el monitor serial. Asumiendo que su placa arduino esta nueva, hay que configurar el baud rate a 9600 o bien 115200, para que responda a los comandos AT. Para comprobar esto, configuramos el fin de linea como enter, y después escribimos AT+Enter y deberíamos ver OK en el monitor serial, esto significa que la placa esta configurada y lista para recibir comandos AT.
Si no obtienen ninguna respuesta, podrían estar usando el baud rate incorrecto o su modulo podría no estar corriendo un firmaware que soporte comandos AT. Si no ven el OK después de presionar enter, pruebe diferentes tasas de baudios. Revisen sus conecciones para asegurarse que están correctas o contacten a su proveedor para averiguar que firmware es el que trae su modulo WiFi.
Si todo funciona como es esperado, ahora estamos listos para programar un modulo WiFi con el lenguaje de programación de arduino!
[…] Lo siguiente que hay que hacer es un programa que grabaremos en el modulo WiFi, el tutorial para hacerlo se encuentra en este post. […]