- ¿Qué es ESP8266?
- Conceptos básicos de la teoría de WiFi:
- Tipos de programación con ESP8266:
- Hardware para programar el módulo ESP8266:
- Materiales necesarios:
- Explicación del circuito:
- Tablero de construcción para programar ESP8266:
Internet de las cosas y la automatización del hogar realmente ha sido un tema publicitado en los últimos días. Construir algo por nuestra cuenta que pueda comunicarse con la World Wide Web y al que se pueda acceder desde cualquier parte del mundo, suena genial, ¿no?
¡¡¡Pero espera!!! También suena complicado ???….
Así que lo hice por mí, pensé que tomaría mucho tiempo y habilidad construir cosas que pudieran interactuar con Internet. NO, estaba completamente equivocado, gracias a este fantástico módulo llamado ESP8266 de Espressif Systems. Ahora, puede abrir fácilmente sus puertas para proyectos de IoT con la ayuda de este módulo. Este módulo de bajo costo y tamaño pequeño podría hacer maravillas y es realmente simple y fácil de usar, siempre que sigamos los pasos correctos.
Este tutorial tiene como objetivo presentarle este módulo ESP8266-01 y ayudarlo a comenzar con él. Quizás, ya ha traído su módulo y se ha quedado atascado al intentar usarlo. Entonces, no está solo, no se preocupe, a muchas personas les resulta muy difícil comenzar con el módulo porque no hay una guía o documentación adecuada para este módulo. Ésta es la razón para realizar este tutorial. Siga las instrucciones aquí y debería poder poner su módulo ESP8266-01 en funcionamiento en poco tiempo, aquí usaremos FTDI USB to TTL Serial Adapter Module para programar el ESP8266. Consulte el video detallado al final del tutorial.
Antes de entrar en el tema, cubramos algunos conceptos básicos sobre el módulo ESP8266-01.
¿Qué es ESP8266?
La mayoría de la gente llama ESP8266 como un módulo WIFI, pero en realidad es un microcontrolador. ESP8266 es el nombre del microcontrolador desarrollado por Espressif Systems, que es una empresa con sede en Shangai. Este microcontrolador tiene la capacidad de realizar actividades relacionadas con WIFI, por lo que se usa ampliamente como módulo WIFI.
Hay muchos tipos de módulos ESP8266 disponibles que van desde ESP8266-01 hasta ESP8266-12. El que estamos usando en el tutorial es el ESP8266-01 porque es el más barato y fácilmente disponible. Sin embargo, todos los módulos ESP tienen solo un tipo de procesador ESP, lo que difiere es solo el tipo de barra de ruptura utilizada. La placa de conexión de ESP8266-01 tendrá solo 2 pines GPIO, mientras que en otras placas será más alta.
La especificación completa del módulo se da en la siguiente tabla
voltaje |
3,3 V |
Consumo actual |
10uA-170mA |
Consumo máximo de corriente durante el parpadeo |
800 mA |
Memoria flash |
16 MB (512 K normal) |
Procesador |
Tensilica L106 32 bits |
Velocidad del procesador |
80-160 MHz |
RAM |
32K + 80K |
GPIO |
17 (pero la mayoría están multiplexados) |
Conversor analógico a digital |
1 (10 bits) |
Conexiones TCP máximas |
5 |
De acuerdo, algunas cosas que podrían haberte sorprendido sobre la especificación es que, SÍ, el módulo ESP8266 viene con un convertidor ADC y consume una corriente muy alta de 0.8A durante la actualización de tu dispositivo.
Consulte también nuestros diversos proyectos de IoT interesantes basados en ESP8266.
Conceptos básicos de la teoría de WiFi:
Protocolo de control de transferencia (TCP), Protocolo de Internet (IP), Protocolo de datagramas de usuario (UDP), Punto de acceso (AP), Estación (Sta), Identificador de conjunto de servicios (SSID), Interfaz de programación de aplicaciones (API), Servidor web….
¿Todos los términos anteriores tienen sentido para usted?
En caso afirmativo. Luego, BINGO puede saltar esta parte y pasar a la siguiente sección.
Si no. Entonces debes ser uno de los muchos estudiantes de electricidad que simplemente parpadearon a través de la mayoría de estos términos, tal como lo hice yo cuando me presentaron por primera vez todas estas cosas. Entonces, repasemos rápidamente todos estos términos porque solo entonces podríamos ingresar al mundo de IOT.
Protocolo de control de transferencia (TCP):
La mayoría de nosotros sabría lo que esto significa. Sí, este es el conjunto de reglas sobre las que funciona Internet. Dado que ESP8266 tiene la capacidad de configurar conexiones WIFI. En un nivel alto, Wi-Fi es la capacidad de participar en las conexiones TCP / IP a través de un enlace inalámbrico. Puede hacer que su ESP funcione en el protocolo TCP / IP o en el protocolo UDP.
Protocolo de datagramas de usuario (UDP):
UDP también es otro tipo de protocolo de Internet. Este tipo de comunicación es más rápida que TCP pero es menos precisa. La razón es que TCP utiliza un reconocimiento durante su comunicación, pero UDP no. TCP se usa principalmente en redes donde existe un requisito de alta confiabilidad. UDP se utiliza en lugares donde la velocidad tiene más prioridad que la fiabilidad. Por ejemplo, UDP se usa en videoconferencias, porque allí, incluso si algunos píxeles no se transmiten, no afectará tanto a la calidad del video, pero la velocidad es muy importante.
La mayoría de los proyectos y códigos ESP8266 funcionan alrededor de TCP / IP, UDP será el que menos molestará.
Punto de acceso (AP) y estación (STA):
Una vez que comience a trabajar con el módulo ESP, se encontrará con estos dos términos con frecuencia. Digamos que a usted y a su amigo les gustaría navegar por Internet en sus teléfonos inteligentes, pero como él no tiene una conexión a Internet activa, decide encender su punto de acceso y su amigo se conecta a él. Aquí, su teléfono que obtiene la conexión a Internet es el punto de acceso (AP) y el teléfono de su amigo que usa Internet se llama Estación (STA).
El módulo ESP8266 se puede utilizar en tres modos, modo AP, modo STA o en modo STA y AP (combinado).
Identificador de conjunto de servicios (SSID):
Este es un término bastante simple. Casi todos hemos utilizado WIFI. El nombre de la red Wi-Fi se llama SSID. Cuando tenemos varios puntos de acceso para que una estación se conecte, la estación debe saber a qué punto de acceso debe conectarse, por lo tanto, a cada punto de acceso (AP) se le asigna una identidad que se llama SSID.
Interfaz de programación de aplicaciones (API):
En pocas palabras, una API es un mensajero que recibe sus solicitudes, las procesa y le devuelve a su sistema el resultado deseado. La mayoría de las actividades que realizamos en Internet utilizan API, como cuando reserva un vuelo, realiza una compra en línea, etc. Todos los sitios web lo vinculan a una API donde parte del trabajo, como registrarse, realizar pagos, etc., se realiza por usted. allí.
ESP8266 usa API para comunicarse con el mundo de Internet. Por ejemplo si quiere saber la hora, el clima, o lo que sea debe solicitar en forma de API al sitio web correspondiente. Ese sitio web recibirá la solicitud y devolverá el resultado deseado a nuestro módulo ESP.
Servidor web:
Un servidor web es algo que se encarga de mostrar el contenido de un sitio web. Todo el contenido de ese sitio web en particular se cargará en su servidor web. Hay computadoras dedicadas cuyo trabajo es solo actuar como un servidor web. También podemos programar nuestro ESP8266 para que funcione como servidor web y conectarnos a él desde cualquier parte del mundo.
Bien, esto es suficiente para que comencemos. Ahora, pongamos nuestras manos en el hardware.
Tipos de programación con ESP8266:
Hay dos formas de trabajar con su módulo ESP8266. Este tutorial lo ayudará a comenzar con ambos. Una forma es usando los comandos AT. La otra forma es usando el IDE de Arduino. Entendamos lo que significa.
Todos los módulos ESP8266 enviados de fábrica tendrán un firmware predeterminado (SDK + API) cargado. Este firmware le ayudará a programar el módulo ESP8266 a través de comandos AT.
La otra forma es programando directamente el módulo ESP8266 usando el IDE de Arduino (placa no necesaria) y sus bibliotecas. Todos los proyectos se pueden realizar en ambos métodos. Pero, si comienza a usar el IDE de Arduino para programar su ESP8266, es posible que no pueda usar los comandos AT porque el SDK predeterminado podría estar dañado. En ese caso, debe actualizar su ESP con la configuración predeterminada. Cubriremos eso en otro tutorial.
Hardware para programar el módulo ESP8266:
ESP8266 es un módulo de 8 terminales. El pin de la misma se muestra a continuación.
Desafortunadamente, este módulo no es compatible con la placa de pruebas y, por lo tanto, no podemos montarlo directamente en nuestra placa de pruebas. Además, a diferencia de Arduino, no tiene un controlador USB a serie integrado; por lo tanto, tenemos que usar el “Módulo adaptador de serie FTDI USB a TTL” para comunicarnos con él. Asegúrese de que la placa FTDI también pueda funcionar con 3,3 V; el que estamos usando en este tutorial se muestra a continuación.
Ahora, como sabemos, deberíamos encender el ESP8266 con 3.3V. Pero el consumo de corriente es de 0,8 A, por lo que es posible que no funcione como se esperaba si se alimenta desde nuestra placa de conexión FTDI. Por lo tanto, tenemos que construir nuestro propio circuito de alimentación. Aquí hemos utilizado LM317 para el propósito de alimentación; los detalles para hacer el hardware completo se dan en secciones posteriores.
Materiales necesarios:
- Tablero de Perf
- ESP8266-01
- Tablero de ruptura FTDI
- LM317
- Condensador de 0.1uf
- Condensador 10uf
- Barril Jack
- Bergstik Masculino y Femenino
- Presionar el botón
- Cables de conexión
- Adaptador de 12V para alimentar la placa.
Explicación del circuito:
Los esquemas de la placa se muestran a continuación
Algunos podrían haber intentado alimentar su ESP directamente desde su FTDI y hacerlo funcionar, pero las siguientes son las razones para construir su propia placa con algunos componentes adicionales:
- Solo unas pocas placas FTDI pueden generar suficiente corriente para el módulo ESP. Pocos módulos ESP pueden consumir mucha corriente que el otro durante el flasheo. Por lo tanto, siempre es seguro tener su propia fuente de alimentación y será más fácil integrar el circuito de alimentación en la placa de puntos en lugar de en la placa de pruebas.
- Siempre debemos reiniciar el módulo ESP antes de cargar el código, construir nuestra propia placa nos ayudará a reiniciar el módulo fácilmente. Hemos utilizado el botón pulsador para restablecer ESP8266.
- El pin GPIO0 debe estar conectado a tierra cuando se programa con Arduino y debe dejarse libre cuando se usan comandos AT, esto se puede cambiar fácilmente si construimos nuestra propia placa. Hemos utilizado un puente para cambiar entre el modo de comandos AT y el modo de programación Arduino IDE.
- Toda la programación se realiza mediante comunicación serial , si usas un protoboard algunos terminales sueltos pueden causar un error a mitad de camino y obligarnos a flashear el módulo para trabajar nuevamente.
Dicho esto, puede seleccionar entre usar una placa de pruebas y hacer su propia placa para programar el módulo. Si aún desea usar la placa de pruebas, el mismo circuito que se muestra arriba se puede construir usando su placa de pruebas. Solo la apariencia será diferente, todas las demás instrucciones de este tutorial se aplicarán de la misma manera.
Tablero de construcción para programar ESP8266:
Entonces, aquí estamos construyendo la placa para programar el módulo ESP8266 que tiene su propio circuito de alimentación para encender el ESP8266.
Como se dijo, nuestro módulo requerirá alrededor de 800 mA durante la programación. Por lo tanto, hemos construido nuestro propio módulo de potencia utilizando un regulador de voltaje variable LM317 ya que la fuente de corriente del LM317 es de casi 1,2 A. El voltaje de entrada del LM317 será de 12 V que se proporcionará mediante un adaptador de montaje en pared de 12 V 2 A. La salida del LM317 se regulará a 3.3V constantemente usando las resistencias de 220ohm y 360ohm. Consulte también nuestro Circuito del cargador de batería con LM317 para obtener más información sobre LM317.
Las fórmulas para calcular el voltaje de salida de LM317 se dan a continuación:
Vout = 1,25 * (1+ (R2 / R1))
Donde, R1 es 220ohm y R2 es 360ohm.
El módulo ESP8266 se conecta según los pines que se muestran en la siguiente tabla.
Pin No. |
Nombre del pin ESP |
Conectado a |
1 |
Suelo |
Tierra del módulo FTDI |
2 |
GPIO2 |
Se deja libre o se conecta al palo de té para uso futuro |
3 |
GPIO0 |
Cambiar para alternar entre los modos de programación |
4 |
Rx |
Tx del módulo FTDI |
5 |
Tx |
Rx del módulo FTDI |
6 |
CH_PH |
3.3V de LM317 |
7 |
Reiniciar |
Botón para reiniciar el módulo |
8 |
Vcc |
3.3V de LM317 |
Para alternar fácilmente entre el modo de comando AT y el modo de programación Arduino, he colocado un interruptor (puente) que pondrá el GPIO 0 a tierra cuando use Arduino IDE y lo dejará flotando cuando use los comandos AT.
Hay un botón que cuando se presiona restablecerá el módulo ESP. Esto se hace simplemente conectando el pin RST del módulo ESP al riel de tierra a través del botón. Cada vez que programemos nuestro módulo ESP, debemos reiniciarlo.
Una vez que haya ensamblado el circuito, debería verse así a continuación.
He usado un tablero Perf pero también puede usar un tablero si está interesado (como se discutió anteriormente). La construcción completa y la explicación se muestran en el video a continuación.
Una vez hecho esto con las conexiones. Encienda la placa sin las placas ESP y FTDI y verifique si obtenemos 3.3V correctamente en los terminales Vcc y Ground de la posición de los módulos ESP. Ahora asegúrese de que su placa FTDI esté en modo 3.3V y conecte sus módulos FTDI y ESP a su placa.
Encienda su adaptador y conéctelo a su placa, el módulo ESP debería iluminarse con un color rojo.
Luego, conecte su placa FTDI a su computadora usando un cable mini-USB a USB y navegue al Administrador de dispositivos en su computadora y debería encontrar su placa FTDI conectada a su puerto COM, como se muestra a continuación:
Ahora es el momento de poner nuestras manos en la programación de nuestro módulo ESP8266. Puede comenzar usando los comandos AT y luego pasar a usar el IDE de Arduino. No olvide consultar nuestros otros proyectos basados en ESP8266.