Conectando esp 01 a Arduino uno. Posibilidad de conectar módulo wifi esp8266 a arduino

El chip ESP8266 es una de las herramientas más populares para organizar comunicaciones inalámbricas en proyectos de hogares inteligentes. Con un controlador inalámbrico, puede organizar la comunicación a través de la interfaz WiFi, proporcionando a los proyectos Arduino acceso a Internet y la capacidad de controlar y recopilar datos de forma remota. Sobre la base del ESP8266 se han creado placas tan populares como WeMos y NodeMcu, así como una gran cantidad de proyectos caseros. En este artículo, descubriremos qué es el ESP82266, cuáles son sus variedades y cómo trabajar con el ESP8266 en el IDE de Arduino.

ESP8266 es un microcontrolador con interfaz WiFi que tiene la capacidad de ejecutar programas desde una memoria flash. El dispositivo fue lanzado en 2014 por la empresa china Espressif y casi de inmediato se hizo popular.

El controlador es económico, tiene una pequeña cantidad de elementos externos y tiene los siguientes parámetros técnicos:

  • Admite protocolos Wi-Fi 802.11 b/g/n con WEP, WPA, WPA2;
  • Tiene 14 puertos de entrada y salida, SPI, I2C, UART, ADC de 10 bits;
  • Admite memoria externa de hasta 16 MB;
  • La fuente de alimentación requerida es de 2,2 a 3,6 V, el consumo de corriente es de hasta 300 mA, según el modo seleccionado.

Una característica importante es la ausencia de memoria de usuario no volátil en el chip. El programa se ejecuta desde una ROM SPI externa mediante la carga dinámica de los elementos necesarios del programa. El acceso a los periféricos internos no se puede obtener desde la documentación, sino desde la API de un conjunto de bibliotecas. El fabricante indica la cantidad aproximada de RAM: 50 kB.

Características de la placa ESP8266:

  • Conexión conveniente a una computadora, mediante un cable USB, alimentado por ella;
  • Disponibilidad de convertidor de voltaje incorporado de 3,3 V;
  • Disponibilidad de memoria flash de 4 MB;
  • Botones incorporados para reiniciar y flashear;
  • Todos los puertos se enrutan a la placa mediante dos peines con un paso de 2,5 mm.

Áreas de aplicación del módulo ESP8266

  • Automatización;
  • Varios sistemas para una casa inteligente: control inalámbrico, enchufes inalámbricos, control de temperatura, además de sistemas de alarma;
  • Electrónica móvil;
  • ID de etiqueta;
  • juguetes para niños;
  • Redes de malla.

configuración de pines esp8266

Existe una gran cantidad de variedades del módulo ESP8266. La figura muestra algunos de ellos. La opción más popular es ESP 01.

La ejecución del programa debe estar determinada por el estado de los puertos GPIO0, GPIO2 y GPIO15 cuando finaliza el suministro eléctrico. Se pueden distinguir dos modos importantes: cuando el código se ejecuta desde UART (GPIO0 = 0, GPIO2 = 1 y GPIO15 = 0) para flashear una tarjeta flash y cuando se ejecuta desde una ROM externa (GPIO0 = 1, GPIO2 = 1 y GPIO15 = 0) en el modo estándar.

El pinout para ESP01 se muestra en la imagen.

Descripción del contacto:

  • 1 – tierra, 8 – potencia. Según la documentación, el voltaje se suministra hasta 3,6 V; es importante tener esto en cuenta cuando se trabaja con Arduino, que generalmente se alimenta con 5 V.
  • 6 – RST, necesario para reiniciar el microcontrolador cuando se le aplica un nivel lógico bajo.
  • 4 – CP_PD, también se utiliza para poner el dispositivo en modo de ahorro de energía.
  • 7 y 0: RXD0 y TXD0, este es un UART de hardware necesario para actualizar el módulo.
  • 2 – TXD0, un LED está conectado a este pin, que se enciende cuando el nivel lógico en GPIO1 es bajo y cuando los datos se transmiten a través de UART.
  • 5 – GPIO0, puerto de entrada y salida, también permite poner el dispositivo en modo de programación (cuando el puerto está conectado a un nivel lógico bajo y se aplica voltaje).
  • 3 – GPIO2, puerto de entrada y salida.

Distribución de pines ESP-12

Las principales diferencias entre Arduino y ESP8266.

  • El ESP8266 tiene una mayor cantidad de memoria flash, mientras que el ESP8266 no tiene memoria no volátil;
  • El procesador ESP8266 es más rápido que Arduino;
  • ESP8266 tiene Wi-Fi;
  • ESP8266 consume más corriente que Arduino;

Programación de ESP8266 en Arduino IDE

El kit de desarrollo esp8266 incluye:

  • Compilador de la colección de compiladores GNU.
  • Bibliotecas, WiFi, pilas de protocolos TCP/IP.
  • Un medio para cargar información en el programa del controlador.
  • IDE operativo.

Inicialmente, los módulos ESP8266 se suministran con firmware del fabricante. Con su ayuda, puede controlar el módulo desde un microcontrolador externo y trabajar con Wi-Fi como módem. También hay muchos otros firmwares ya preparados. Algunos de ellos permiten configurar el funcionamiento del módulo mediante una interfaz WEB.

Se puede programar desde el IDE de Arduino. Con su ayuda, puede escribir bocetos fácilmente y cargarlos en el ESP8266, actualizar el ESP8266 y no necesita la placa Arduino. Arduino IDE admite todo tipo de módulos ESP8266.

Actualmente, se pueden implementar las siguientes funciones para el ESP8266:

  • Funciones básicas del lenguaje Wiring. Puede controlar los puertos GPIO de la misma manera que los pines de la placa Arduino: pinMode, digitalRead, digitalWrite, analogWrite. El comando analogRead(A0) le permite leer valores de ADC. Usando el comando analogWrite (pin, valor), puede conectar PWM a la salida GPIO deseada. Cuando el valor = 0, PWM está deshabilitado, el valor máximo alcanza una constante igual a 1023. Usando las funciones adjuntarInterrupt y detachInterrupt, puede interrumpir en cualquier puerto GPIO excepto el 16.
  • Calendario y retraso. Usando los comandos milis y micros puedes devolver los ms y μs que han pasado desde el inicio. El retraso le permite pausar la ejecución del programa durante el tiempo deseado. Además, la función de retardo(…) le permite mantener el funcionamiento normal de Wi-Fi si el boceto contiene elementos grandes que tardan más de 50 ms en ejecutarse. Yield() es un análogo de la función de retardo(0).
  • Serie y Serie1 (UART0 y UART1). El trabajo en serie en ESP8266 es similar al trabajo en Arduino. Ejecución de código de bloques de datos de escritura y lectura si el FIFO de 128 bytes y el búfer de software de 256 bytes están llenos. El objeto Serial utiliza hardware UART0, puede configurar los pines GPIO15 (TX) y GPIO13 (RX) en lugar de GPIO1(TX) y GPIO3(RX). Para hacer esto, después de Serial.begin(); necesitas llamar a Serial.swap();. De manera similar, Serial1 usa UART1, que funciona para la transmisión. El pin requerido para esto es GPIO2.
  • MacroPROGMEMA. Su funcionamiento es similar al de Arduino. Le permite mover datos de sólo lectura y constantes de cadena a la memoria flash. Al mismo tiempo, el ESP8266 no almacena las mismas constantes, lo que genera un desperdicio adicional de memoria flash.
  • I2C. Antes de trabajar con el bus I2C, los buses se seleccionan usando la función Wire.pins(int sda, int scl).
  • SPI, OneWire: totalmente compatible.

Usando esp8266 para comunicarse con Arduino a través de WiFi

Antes de conectarse a Arduino, es importante recordar que el voltaje de alimentación del ESP8266 no puede ser superior a 3,6, mientras que en el Arduino el voltaje es de 5 V. Es necesario conectar 2 microcontroladores mediante divisores resistivos. Antes de conectar el módulo, debe familiarizarse con la distribución de pines del ESP8266 seleccionado. El diagrama de conexión para ESP8266-01 se muestra en la figura.

3,3 V de Arduino a Vcc&CH_PD en el módulo ESP8266, Tierra de Arduino a tierra de ESP8266, 0 – TX, 1 – RX.

Para mantener un funcionamiento estable, el ESP8266 requiere una fuente de voltaje constante de 3,3 V y una corriente máxima de 250 mA. Si la alimentación proviene de un convertidor USB-TTL, pueden producirse averías y fallos de funcionamiento.

Trabajar con la biblioteca Wi-Fi para ESP8266 es similar a la biblioteca de un escudo normal. Hay varias características:

  • mode(m): para seleccionar uno de los tres modos: cliente, punto de acceso o ambos modos al mismo tiempo.
  • softAP(ssid): necesario para crear un punto de acceso abierto.
  • softAP(ssid, contraseña): crea un punto de acceso con una contraseña, que debe tener al menos 8 caracteres.
  • WiFi.macAddress(mac) y WiFi.softAPmacAddress(mac): define la dirección MAC.
  • WiFi.localIP() y WiFi.softAPIP(): determinación de la dirección IP.
  • printDiag(Serie); – le permitirá conocer datos de diagnóstico.
  • WiFiUDP: soporte para enviar y recibir paquetes de multidifusión en modo cliente.

El trabajo se realiza según el siguiente algoritmo:

  • Conexión de USB-TTL a USB y a ESP.
  • Lanzando Arduino IDE.
  • Seleccione el puerto, la placa, la frecuencia y el tamaño de la memoria flash requeridos en el menú de herramientas.
  • Archivo - Ejemplos - ESP8266WiFi - WiFiWebServer.
  • Anota el SSID y la contraseña de la red Wi-Fi en el boceto.
  • Comience a compilar y cargar código.
  • Espere a que finalice el proceso de firmware, desconecte GPIO0 de tierra.
  • Establezca la velocidad en 115200.
  • Se producirá una conexión y se registrará la dirección IP.
  • Abra un navegador, ingrese el número IP/gpio/1 en la barra de direcciones
  • Mire el monitor del puerto; si hay un LED conectado a la salida GPIO2, debería encenderse.

NodeMCU basado en esp8266

NodeMCU es una plataforma basada en el módulo esp8266. Se utiliza para controlar el circuito de forma remota mediante Internet mediante Wi-Fi. La placa es pequeña, compacta, económica y tiene un conector USB en la parte frontal. Cerca hay botones para depurar y reiniciar el microcontrolador. También se instala un chip ESP8266. La tensión de alimentación es de 5 a 12 V, es recomendable suministrar más de 10 V.

La gran ventaja de la placa es su bajo consumo de energía. A menudo se utilizan en circuitos autoalimentados. Solo hay 11 puertos de uso general en la placa, algunos de los cuales tienen funciones especiales:

  • D1 y D2 – para interfaz I2C/TWI;
  • D5-D8 - para interfaz SPI;
  • D9, D10 – para UART;
  • D1-D10: puede funcionar como PWM.

La plataforma cuenta con una API moderna para entrada y salida de hardware. Esto le permite reducir la cantidad de pasos al trabajar con el equipo y al configurarlo. Con la ayuda del firmware NodeMCU, puede utilizar todo el potencial operativo para el desarrollo rápido de dispositivos.

WeMos basado en esp8266

WeMos es otro tipo de plataforma basada en el microcontrolador esp8266. En consecuencia, hay un módulo Wi-Fi, se admite Arduino IDE y hay un conector para una antena externa. La placa tiene 11 entradas/salidas digitales, que (excepto D0) admiten interrupción/pwm/I2C/un cable. La tensión de alimentación máxima alcanza los 3,3 V. También hay un conector USB en la plataforma. Entrada analógica 1 con tensión máxima de 3,2V.

Para trabajar con el módulo, necesita instalar el controlador CH340 y configurar el IDE de Arduino para ESP8266. Para hacer esto, debe agregar la dirección http://arduino.esp8266.com/stable/package_esp8266com_index.json en el menú de configuración en la línea "enlace adicional para el administrador de la placa".

Después de esto, debe buscar el paquete esp8266 by ESP8266 e instalarlo. Luego debe seleccionar el microcontrolador Wemos D1 R2 en el menú de herramientas y escribir el boceto deseado.

Conclusiones sobre ESP8266

Con placas basadas en el chip ESP8266, puedes agregar capacidades de Big Internet a tus proyectos, haciéndolos mucho más inteligentes. Control remoto, recopilación y análisis de datos en el servidor, procesamiento de voz y procesamiento de imágenes: todo esto está disponible cuando conectamos nuestro proyecto a través de WiFi a Internet. En los siguientes artículos, analizaremos más de cerca cómo se pueden programar dispositivos basados ​​​​en esp8266 y también prestaremos atención a placas base tan populares como WeMos y NodeMcu.

Decidí estudiar Arduino. Construya una casa "inteligente". Tienes que empezar por algún lado.
Basado en el módulo WI-FI ESP8266, puedes conseguir un sensor inalámbrico de temperatura, humedad, presión, luz... Sólo necesitas actualizar el firmware del módulo y conectar los sensores. No se requieren microcontroladores adicionales.
Hace unos dos años, aparecieron en el mercado chino módulos WI-FI ESP8266 baratos de un desarrollador chino. Este no es solo un módulo WI-FI, sino un microcontrolador completo de 32 bits con su propio conjunto de GPIO, incluidos SPI, UART, I2C.

Presupuesto:
Procesador: Tensilica L106 de un solo núcleo con una frecuencia de hasta 160 MHz.
Estándares WI-FI soportados: 802.11 b/g/n.
Tipos de cifrado admitidos: WEP, WPA, WPA2.
Modos de funcionamiento admitidos: Cliente (STA), Punto de acceso (AP), Cliente+Punto de acceso (STA+AP).
Tensión de alimentación 1,7...3,6 V.
Consumo de corriente: hasta 215mA según modo de funcionamiento.
Número de GPIO: 16 (en realidad hasta 11). Disponible en módulos: ESP-01 - 4, ESP-03 - 7+1, incluido UART. Hay otras opciones de módulos.
Interfaces: 1 ADC, I2C. UART, SPI, PWM.
La memoria Flash externa se puede configurar entre 512 KB y 4 MB.
RAM de datos 80 kB, RAM de instrucciones - 64 kB.
Veamos en qué forma lo enviaron.


Pedí tres módulos a la vez. Uno no será suficiente para una casa inteligente.

Estos módulos son inusuales. Tienen la posibilidad de conectar una antena externa.


No hay información técnica completa en la página de la tienda.
Por tanto, nos centramos en lo que se encuentra en el tablero y en lo que hemos desenterrado.
El circuito del módulo consta de un número mínimo de piezas: el propio chip ESP8266,


Memoria flash 25Q41BT (Flash serie de 4 M bits, 512 K bytes, 256 bytes por página programable)

y cuarzo a 26 MHz.

No hay suficiente memoria para proyectos serios. El método de ampliación es sencillo. Basta soldar la memoria MS a una de mayor capacidad. No hace mucho hubo una reseña sobre Muska:

Para proyectos sencillos con el que cuesta es suficiente.
Para diseñar nuestras tareas, se decidió utilizar un modelo de placa de pruebas. Pero surgió un problema.


Las salidas para programar el módulo eran claramente “superfluas”. Tuve que rehacerlo un poco.

Las imágenes de la izquierda son originales, las imágenes de la derecha son modificaciones. No obligo a nadie a hacer esto. Es sólo mi decisión, es más conveniente para mí.
Ahora nada se interpone y la programación es cómoda.


Como escribí anteriormente, estos módulos pueden funcionar tanto con una antena interna (en el sello) como con una externa. Inicialmente, el módulo está "configurado" para funcionar con una antena externa. Para reconfigurar, tendrás que volver a soldar el puente de resistencia.


Decidí comprobar en qué medida difiere la ganancia de las antenas interna y externa. Para ello volví a soldar un puente en un módulo.
Pero surgió otra dificultad: dos de los tres módulos llegaron vacíos (sin flashear).
Al mismo tiempo entrenaba.
El cable convertidor (USB a RS232 TTL UART) de una de mis reseñas sobre el voltímetro-amperio-vatímetro con función de contador PZEM-004 me resultó útil.


Cable convertidor normal.

Tengo una opción más económica. Pero este es más conveniente (para mí).
Instalo el módulo en la placa e inserto un boceto de ejemplo para el ESP8266 usando el IDE de Arduino. Hay matices. Veamos el diagrama de conexión.

El módulo fue alimentado desde una fuente externa. En mi caso, la fuente de alimentación estaba incluida con la placa.
Al cargar el boceto, GPIO 00 se establece en Gnd. Para ejecutar el boceto (después de flashear), conecte GPIO 00 a +3.3V.
Lo conecté, todo funciona. Sólo queda comprobar qué antena tiene mayor ganancia.
Instalé tres módulos en la placa.
- ESP-201 con antena interna.
- ESP-201 con “cola” para antena externa (incluida).
- Y este es un módulo estándar basado en ESP8266, comprado en este enlace hace un año:

Usé PowerBank para obtener energía. Para garantizar la pureza del experimento, tuvimos que ir casi al campo. Sin embargo, todavía se detectó un enrutador no autorizado :) Se eliminó el nombre del gráfico. No interferirá.
Evaluaré la intensidad de la señal utilizando el programa Acrylic Wi-Fi. Hay muchos programas, incluso para teléfonos inteligentes. Pero éste puede rastrear todos los cambios en la dinámica.
Muy cerca de los módulos.


Wifi_int_ant - ESP-201 con antena interna.
Wifi_ext_ant - ESP-201 con una “cola” para antena externa.
WeatStat-ESP8266,
Se alejó 10 metros.


Se alejó otros 10 metros.


Más.


Y una cosa más.


Los errores de medición están naturalmente presentes. Pero el panorama general es claro.
Es hora de anunciar a los ganadores.
1er lugar: ESP-201 con antena interna.
2do lugar: módulo estándar basado en ESP8266.
3er lugar: ESP-201 con “cola” para antena externa.
Soldado a una lata de leche condensada.


El panorama realmente ha cambiado.


No era asunto de la mujer... :)
Con una antena remota la señal es mucho más fuerte. Incluso si la antena es una lata normal.
Básicamente eso es todo. Lo que escribí debería ser suficiente para una conclusión correcta. Si algo no está claro, haga preguntas. Quizás me perdí algunos puntos.
Espero que haya ayudado al menos a alguien.
¡Buena suerte!
Continuará…

El producto fue proporcionado por la tienda para escribir una reseña. La reseña se publicó de acuerdo con la cláusula 18 de las Reglas del sitio.

Estoy pensando en comprar +33 Añadir a favoritos Me gustó la reseña +29 +58

En el proceso de estudio y diseño de proyectos cada vez más complejos, llega el momento en el que surge la necesidad y el deseo de aprender a trabajar con un tipo de comunicación tan común como es el WiFi. Dado que este tipo de comunicación puede permitirle crear cómodamente una única red para sus dispositivos domésticos inteligentes y controlarlos, por ejemplo, desde un teléfono móvil, tableta o computadora, es decir, crear una verdadera casa inteligente que le costará usted decenas de veces menos que comprar soluciones preparadas en la tienda. El uso de WiFi, por supuesto, no se limita a esto y hay tantos ejemplos del uso de este tipo de comunicación que no tiene sentido enumerarlos, y si has llegado a esta página, significa que ya necesitas usa WiFi por alguna razón, solo necesita descubrir cómo trabajar con él correctamente.

Lo resolveremos basándonos en el módulo WiFi más barato y popular. ESP8266-01. Puedes comprar el módulo WiFi ESP8266-01 en nuestra web.

Una de las principales ventajas de dicho módulo es la presencia de memoria y su propio microcontrolador en la placa, lo que le permite funcionar de forma independiente cargando el boceto directamente en el módulo.

En realidad, existen bastantes modificaciones del módulo WiFi ESP8266 y no las enumeraremos aquí una vez que aprenda a trabajar con una, podrá comenzar a trabajar fácilmente con otras; Me gustaría señalar de inmediato que trabajar con WiFi puede parecer una tarea bastante difícil, y si tiene pocos proyectos completados en su equipaje, es mejor abandonar por ahora la comunicación WiFi y utilizar comunicaciones por radio en sus proyectos, trabajando con los cuales es mucho más fácil de entender. Se crean comunidades enteras y foros temáticos para trabajar con módulos WiFi, lo que demuestra una vez más lo difícil que es para la mayoría de las personas comprender de inmediato este tipo de comunicación, y después de releer toda la información, la mayoría simplemente se da por vencida. Lo más probable es que no pueda incluir toda la información importante solo en el marco de este artículo, y no tiene sentido hacerlo, de lo contrario habrá otro lío. Intentaré seguir el camino de una secuencia estricta de los puntos más importantes, para que puedas comenzar a comprender el principio de funcionamiento de este tipo de comunicación y luego simplemente desarrollar tus propias habilidades en esta dirección.

Entonces, comencemos y veamos primero los pines del módulo WiFi. ESP8266-01.

VCC- alimentación del módulo de 3V a 3,6V

Tierra- Tierra.

primero- Salida de reinicio responsable de reiniciar el módulo.

CH_PD- "apagado del chip" cuando se le suministra alimentación se activa el funcionamiento del módulo.

Texas- transferencia de datos (interfaz UART)

RX- recepción de datos (interfaz UART)

GPIO0

GPIO2- puerto de E/S de uso general

Los pines GPIO0 y GPIO2 son exactamente los mismos pines digitales con los que trabajamos en las placas Arduino para interconectar varios sensores, y se utilizan en el caso de implementar un funcionamiento independiente en el microcontrolador WiFi interno del módulo ESP8266-01.

Para alimentar de manera confiable el módulo ESP8266-01, use una fuente de alimentación externa estabilizada de 3.3V y mejor no intente tomar energía de su placa Arduino, ya que el módulo consume corriente hasta 215 mA y esto puede terminar mal para su placa de depuración. Dónde conseguir una fuente de alimentación estabilizada de 3,3 V. Espero que no sea un problema para usted; de lo contrario, es claramente demasiado pronto para que se ocupe de este módulo. Por ejemplo, me gusta usar este módulo de alimentación YWRobot de 3,3 V y 5,0 V para ensamblar rápidamente circuitos en placas de pruebas, lo que le permite obtener rápidamente un voltaje estabilizado de 3,3 V o 5 V en las rutas de alimentación correspondientes de la placa de pruebas.

Conectando el plus (+) desde nuestra fuente de alimentación de 3,3 V al pin VCC módulo ESP8266-01, y menos (-) llevar la fuente de alimentación a la salida Tierra. En este estado se encenderá el LED rojo del módulo indicándonos que la alimentación está conectada correctamente. Para que el módulo se active, también es necesario conectar el plus (+) fuente de alimentación con salida CH_PD módulo ESP8266-01 y es recomendable hacerlo directamente a través de una resistencia de 10 kOhm. Ahora, cuando encendamos la alimentación, el LED rojo del módulo debería encenderse y el LED azul debería parpadear rápidamente un par de veces. Si esto es lo que te sucede, entonces todo está bien, has conectado todo correctamente y tu módulo está funcionando. En caso contrario, vuelve a comprobar la conexión, o sustituye el módulo, ya que lo más probable es que no funcione.

Sigamos adelante. Para trabajar con el módulo WiFi ESP8266, necesitamos un adaptador USB-UART. Existen diferentes adaptadores, por ejemplo: FT232RL, CP2102, PL2303. Pero asumiremos que no tiene dichos adaptadores y usaremos una placa Arduino como adaptador USB-UART. Usaré una placa Arduino NANO para esto, pero puedes usar cualquier otra que tengas a tu disposición. La conexión en cualquier placa es idéntica. Realizamos la conexión según el siguiente diagrama.

Veamos lo que hemos hecho aquí. Tenga en cuenta inmediatamente que hemos conectado los pines de la placa Arduino con un puente. primero Y Tierra. Esta manipulación desactiva el microcontrolador y nos permite hacer un adaptador USB-UART real a partir de nuestra placa Arduino.

Dado que alimentamos el módulo WiFi ESP8266-01 desde una fuente de alimentación externa independiente, recordemos que siempre debemos conectar la tierra de todas las fuentes de alimentación de nuestros proyectos. Por lo tanto conectamos la salida. Tierra Placas Arduino con tierra. (-) nuestra fuente de alimentación externa de 3,3 V diseñada para alimentar el módulo ESP8266-01.

Conclusión Texas conecta tu placa Arduino al pin Texas Módulo ESP8266-01. Esta línea transmitirá datos desde el módulo WiFi a la placa Arduino. Cualquiera que esté familiarizado con la interfaz UART puede preguntarse: "¿Pero cómo puede ser esto? En todas partes enseñaron que TX debe conectarse a RX, TX transmite información y RX recibe". Y tendrás razón. Así es, TX siempre está conectado a RX, pero en el caso de que hagamos un adaptador UART desde Arduino, es necesario conectar los dispositivos directamente. Considere esto como la excepción a la regla.

Línea RX También conectamos tu placa Arduino directamente a la línea RX Módulo ESP8266-01. Esta línea transmitirá información desde la placa Arduino a la placa del módulo WiFi. Pero esta conexión la realizamos a través del llamado divisor de tensión, que consta de dos resistencias con valores nominales de 1 kOhm y 2 kOhm. Necesitamos reducir el voltaje en esta línea usando dos resistencias (divisor de voltaje), ya que la placa Arduino transmite una señal lógica con un voltaje de 5V y el módulo WiFi funciona con un voltaje de 3.3V. Para convertir la señal lógica, podríamos usar una tarjeta convertidora de nivel lógico especial, lo que por supuesto sería más correcto, pero nuevamente, supongamos que no tiene una, y tuvimos que tomar una ruta más simple y hacerlo usando un divisor de voltaje.

Ahora hemos conectado todo lo necesario para seguir trabajando, pero aún nos quedan 3 pines más sin usar ( GPIO0, GPIO2 Y primero) en Módulo WiFi ESP8266-01. Para un funcionamiento estable del módulo WiFi, debemos colocar estos pines restantes no utilizados en positivo. (+) líneas de alimentación del módulo a través de resistencias de 10 kOhm.

Esto nos salvará de diversas interferencias (interferencias) y estabilizará el funcionamiento del módulo. Es mejor hacerlo de inmediato. De lo contrario, no se sorprenda si su módulo está constantemente sobrecargado, produce información incomprensible o no quiere funcionar en absoluto. El uso de resistencias pull-up en pines no utilizados de un microcontrolador debería ser una regla general si desea un funcionamiento estable en sus proyectos.

Y nuevamente comprobamos la funcionalidad del módulo WiFi ESP8266-01. Encienda la alimentación y observe que el LED rojo se enciende y el LED azul parpadea un par de veces. Si todo pasa así, pues genial, sigamos adelante. En el caso contrario, comprobamos la corrección de las conexiones, así como la calidad de todos los contactos. Puede ser simplemente una situación trivial cuando revisaste todo diez veces y te aseguraste de que todo estuviera conectado correctamente, pero cuando enciendes el módulo, ves que el LED azul no se comporta adecuadamente, está constantemente encendido, parpadeando constantemente, o no responde a nada en absoluto. Esto puede deberse a un mal contacto en alguna línea. Por ejemplo, al ensamblar un circuito en una placa de pruebas, una de las resistencias no encaja firmemente en su lugar y esto provoca interferencias. Verifique la calidad de las conexiones. El módulo es muy sensible. No descuides esto. Ésta es una razón común de funcionamiento inestable.

En general, hemos terminado con la conexión. Ahora necesitamos preparar el programa Arduino IDE para que funcione con el módulo WiFi ESP8266-01. Para ello necesitamos descargar e instalar en el IDE de Arduino el archivo necesario con bibliotecas, ejemplos y placas ESP, que posteriormente nos permitirá subir bocetos directamente al microcontrolador del módulo ESP8266-01, cambiar el firmware, etc. Para los propósitos de este artículo, lo más probable es que no necesitemos estas configuraciones, pero me parece que una vez que hayamos descubierto cómo conectar el módulo, el procedimiento será correcto si descargamos inmediatamente todo lo necesario para trabajar con el IDE de Arduino. . Aquí todo es sencillo en principio.

Iniciar el programa IDE de Arduino y ve al menú "Archivo" - "Configuración"

En la ventana que aparece, en el campo superior escribimos “esp8266”. Como resultado, solo tendremos el firmware requerido en la ventana. Al hacer clic en el firmware, aparecerá un botón "Instalación". Haga clic en el botón "Instalación" y espera hasta que todo esté instalado. El archivo es bastante grande, unos 150 megabytes, por lo que tendrás que esperar.

Una vez completada la instalación. Reiniciamos el IDE de Arduino y vemos como han aparecido nuevas placas ESP en el menú “Herramientas” - “Placas”. Eso es todo. Hemos terminado con la configuración del IDE de Arduino. No necesitamos estas configuraciones por ahora, pero en trabajos futuros no podremos prescindir de ellas.

Ya tenemos todo conectado y preparado, ahora podemos empezar a entender los controles. De hecho, ahora continuaremos verificando y configurando el módulo usando comandos AT, y no hay forma de prescindir de él. Los módulos WiFi están implementados de tal manera que toda la comunicación con ellos se realiza mediante los llamados comandos AT, que están integrados en el firmware del módulo. No enumeraremos todos los comandos AT aquí, hay bastantes y si desea estudiar todo detenidamente, puede encontrarlos fácilmente en Internet. Y ahora usaremos sólo lo más necesario para empezar.

Y así, conectamos nuestra placa Arduino mediante un cable USB al ordenador. Y una fuente de energía externa que alimenta Módulo WiFi ESP8266-01 No es necesario encenderlo todavía. Lanzamos el programa Arduino IDE, seleccionamos nuestra placa Arduino en el menú “Herramientas”, en mi caso es Arduino NANO, y tú seleccionas la tuya. Además, no olvides seleccionar el puerto al que está conectado nuestro Arduino. Espero que entiendas todo esto y sepas cómo hacerlo.

Monitoreo de puertos abiertos "Herramientas" - "Monitor de puerto". Seleccionar la velocidad del puerto 74880 (a esta velocidad se inicia el módulo) y seleccione “NL & CR” en la lista de la izquierda

Ahora conectamos una fuente de alimentación externa que alimenta nuestro módulo WiFi. Después de lo cual debería ver aproximadamente la siguiente información en el monitor de puerto.

Aquí vemos información sobre nuestro módulo WiFi (velocidad, cantidad de memoria a bordo, etc.). La información recibida puede diferir según la versión de firmware del módulo WiFi. No nos centremos en esto. Algo más es importante. A continuación vemos un conjunto de caracteres sin significado, esto significa que la velocidad del puerto (74880 baudios) que configuramos solo es adecuada para la carga inicial del módulo para poder ver esta información normalmente, pero esta velocidad no es adecuada para la comunicación normal con el módulo WiFi.

Para seleccionar la velocidad del puerto correcta, simplemente cambiaremos la velocidad del puerto y enviaremos símbolos al puerto (el campo en la parte superior y el botón de enviar) EN hasta que obtengamos una respuesta DE ACUERDO. Si intentas enviar caracteres ahora mismo EN al puerto a una velocidad de 74880, recibirá uno o dos caracteres más sin sentido en respuesta.

Intente configurar inmediatamente la velocidad a 115200 baudios y enviar un comando AT. La mayoría de las veces, los módulos se actualizan a esta velocidad.

Esta es la imagen que deberías ver en el monitor de tu puerto. Si aún recibe un conjunto de caracteres incomprensibles como respuesta, reduzca la velocidad y vuelva a enviar EN Comandos hasta que llegue la respuesta. DE ACUERDO. Si probó todas las velocidades y no obtuvo la respuesta correcta, entonces no tiene suerte y el módulo se actualiza con firmware a una velocidad no estándar. Entonces solo queda actualizar el módulo con firmware normal, pero este es un tema para un artículo aparte.

Espero que todo esté bien y hayas seleccionado la velocidad correcta. Por cierto, si intenta apagar y encender el módulo WiFi nuevamente después de haber seleccionado la velocidad correcta, en lugar de la misma información inicial que se mostró correctamente a una velocidad de 74880 baudios, obtendrá, por el contrario, Verá un conjunto de caracteres desordenados, pero al final verá la palabra "listo" ". Pero tenemos la oportunidad de ver esta información inicial en forma normal a la velocidad correcta, para hacer esto, necesitamos reiniciar el módulo mediante programación usando el comando AT; A + PRIMERO.

Para conocer la versión de firmware de su módulo WiFi ESP8266-01, debe enviar un comando al monitor del puerto AT+GMR y en respuesta recibirá aproximadamente la siguiente información:

El módulo WiFi ESP8266-01 puede funcionar tanto en modo de punto de acceso como de cliente. Para permitir que el módulo funcione en todos los modos a la vez, envíe el comando al monitor de puerto EN+MODOCW=3 y en respuesta deberías recibir DE ACUERDO.

Equipo EN+CWLAP le permitirá ver todos los puntos de acceso WiFi que su módulo ve actualmente. Mi módulo, por ejemplo, actualmente sólo ve tres puntos de acceso WiFi en su área de cobertura. La respuesta debería ser algo como esto:

Por ejemplo, conocemos la contraseña del tercer punto de acceso y para conectarnos a él ejecutamos el comando AT+CWJAP="nombre","contraseña", en mi caso este comando se ve así AT+CWJAP="dsl_unlim_512_home","11111111", a lo que obtenemos una respuesta exitosa:

Los parámetros del comando se escriben en la memoria flash del módulo WiFi ESP8266-01, y si apagamos el módulo y lo volvemos a encender, automáticamente se conectará a este punto de acceso. Mira, por casualidad, no dejes un espacio en el comando, de lo contrario recibirás una respuesta. ERROR. Tenga en cuenta que en las últimas versiones de firmware se recomienda utilizar el comando AT+CWJAP_CUR, es decir, el comando se verá así AT+CWJAP_CUR="nombre","contraseña". Si de repente olvidamos a qué punto de acceso está conectado nuestro módulo, debemos enviar un comando ¿AT+CWJAP? o ¿AT+CWJAP_CUR? y como respuesta recibiremos el punto de acceso al que está conectado actualmente el módulo WiFi.

Con conexión y configuración inicial. Módulo WiFi ESP8266-01 lo descubrimos. El módulo funciona y está listo para la implementación de sus futuros proyectos. Simplemente no es posible analizar todos los ejemplos posibles de cómo trabajar con este módulo en el marco de un artículo, y nos ocuparemos de esto en los siguientes artículos. Y para aquellos que no están muy familiarizados con la programación, pero realmente quieren comenzar rápidamente a administrar sus proyectos usando WiFi, les recomiendo presentarles el diseñador de proyectos WiFi RemoteXY. Este sitio le ayudará a crear fácilmente una interfaz de control para su teléfono móvil o tableta y utilizarla para controlar su dispositivo al que conecta un módulo WiFi.

Las instrucciones y diagramas a continuación no son "correctos" desde el punto de vista del diseño de circuitos y no deben usarse en dispositivos finales reales. Estas son instrucciones simplificadas para un inicio rápido para que pueda ejecutar su módulo ESP8266 con un conjunto mínimo de componentes. Además, todos estos circuitos simplificados realmente funcionan y el autor los ha probado personalmente en varios módulos ESP8266. Cómo probar ESP8266

Para probar el ESP8266 que acaba de comprar, necesitará una fuente de voltaje estabilizado de 3,3 voltios.

¡Atención! El rango de tensión de alimentación permitido para el módulo ESP8266 es de 3,0 a 3,6 voltios. Se garantiza que suministrar un mayor voltaje de suministro al módulo provocará que el ESP8266 falle.

Para probar el ESP8266 ESP-01, simplemente conecte tres pines: VCC y CH_PD (habilitación de chip) a una fuente de alimentación de 3,3 voltios y GND a tierra. Si no tiene un ESP-01, pero tiene otro módulo y tiene salida GPIO15, deberá conectar adicionalmente GPIO15 a tierra.

Si el firmware de fábrica se inicia con éxito en el módulo ESP8266, el LED rojo se iluminará (el indicador de encendido, en algunas versiones del módulo, por ejemplo ESP-12, puede no estar presente) y el LED azul parpadeará un par de veces (este es un indicador de transferencia de datos desde el módulo al terminal a través de la línea TX-RX, puede tener un color diferente) y debería aparecer un nuevo punto de acceso con el nombre “ESP” en su red inalámbrica XXXX", que podrás ver desde cualquier dispositivo WiFi. El nombre del punto de acceso depende del fabricante del firmware y puede ser diferente, por ejemplo AI-THINKER AXXXXC. Si aparece el punto de acceso, puede continuar con los experimentos; si no, verifique la fuente de alimentación, CH_PD, GND nuevamente, y si todo está conectado correctamente, lo más probable es que tenga un módulo defectuoso, pero hay esperanza de que el El firmware del módulo tiene configuraciones no estándar y quizás actualizarlo le ayude. Cómo conectar rápidamente ESP8266

El kit mínimo para conectar y flashear el módulo ESP8266 incluye:

    Placa de pruebas sin soldadura

    Juego de cables macho-hembra para protoboard o cable DUPONT M-H

    Convertidor USB-TTL (busca uno con interruptor para 5 y 3,3 voltios, o una versión de 3,3 voltios) basado en FTDI, PL2303 o un chip similar. La opción ideal sería cuando DTR y RTS se emiten en el adaptador USB-TTL; esto le permitirá cargar rápidamente firmware desde Arduino IDE, UDK, Sming sin cambiar manualmente GPIO0 a tierra.

Si tiene un convertidor USB-TTL de 5 voltios, necesitará adicionalmente un estabilizador de potencia en un chip 1117 o similar (corriente de al menos 300 mA, preferiblemente con un circuito capacitor en forma de módulo listo para usar, pero solo un microcircuito servirá) y una fuente de energía (para 1117, la carga de cinco voltios desde un teléfono inteligente es perfecta). En general, es mejor no alimentar el ESP8266 desde un convertidor USB-TTL o Arduino, sino utilizar una fuente de alimentación separada; esto le evitará muchos problemas.

En el conjunto ampliado para un trabajo constante y cómodo con el módulo ESP8266, también necesitará conectores de alimentación, interruptores DIP, resistencias y LED. También utilizo un monitor USB económico (Charger Doctor: desplácese hacia abajo en la lista, busque uno en una caja blanca), que le permite ver la corriente consumida (con precisión china) y protege ligeramente el bus USB de un cortocircuito en el fuente de alimentación (si hay un cortocircuito, la pantalla del monitor comienza a parpadear)

    Hay muchos módulos ESP8266 y lo primero que necesita es identificar su módulo y determinar su distribución de pines. En nuestro sitio web hay una maravillosa tabla con fotografías de módulos y sus pinouts. Para el resto de esta guía rápida para principiantes, asumiremos que estamos trabajando con el módulo ESP8266 ESP-01 V090. Si tiene otro módulo (por ejemplo, ESP-07 o ESP-12) y en él está ubicado el pin GPIO15 (MTDO, HSPICS), entonces este pin debe conectarse a tierra tanto para el inicio normal del módulo como para el modo de firmware.

    Verifique que el voltaje de suministro del módulo sea de 3,3 voltios.

    ¡Atención! El rango de tensión de alimentación permitido para el módulo ESP8266 es de 3,0 a 3,6 voltios. Se garantiza que suministrar un mayor voltaje de suministro al módulo provocará que el ESP8266 falle. La tensión de alimentación puede ser significativamente inferior a los 3 voltios indicados en la documentación.

    Si es el feliz propietario de un convertidor USB-TTL de 3,3 voltios, conecte el módulo como se muestra en la siguiente figura (lado izquierdo). Si solo tiene un USB-TTL de cinco voltios, utilice el lado derecho de la figura como instrucciones.

A primera vista, el circuito de la derecha puede parecer "mejor" debido al uso de una fuente de alimentación separada, pero esto no es del todo cierto: cuando se utiliza un convertidor USB-TTL de 5 voltios, es recomendable agregar un divisor de resistencia. para igualar niveles lógicos de cinco y tres voltios o un módulo de conversión de nivel.

¡Atención! En la figura de la derecha, usted conecta el UTXD (TX) y el URXD (RX) del módulo ESP8266 a la lógica TTL de cinco voltios bajo su propia responsabilidad y riesgo. La documentación del SoC ESP8266 indica que el módulo solo tolera la lógica de 3,3 V. En la mayoría de los casos, conectar un ESP8266 a una lógica de cinco voltios NO provocará que el ESP8266 falle, pero su módulo puede tener mala suerte. Para eliminar el riesgo de que falle el módulo ESP8266, se recomienda utilizar un convertidor USB-TTL de 3,3 voltios, o convertidores TTL 5v-3,3v, o un divisor de resistencia (no se muestra en la figura). Puede leer más sobre la coordinación de niveles lógicos aquí. Los geeks arriesgados como yo conectan el ESP8266 a la lógica TTL de cinco voltios directamente y no se molestan.

¡Atención! La figura de la derecha muestra la conexión del estabilizador de potencia 1117 sin cableado adicional. Esto funciona, pero aun así recomendamos usar el diagrama de conexión 1117 con ajuste del capacitor; verifique el diagrama de conexión con la hoja de datos de su estabilizador o use un módulo ya preparado basado en 1117.

Rojo - fuente de alimentación 3.3V

Negro - Tierra

Amarillo - Lado ESP8266 - RX, Lado USB-TTL - TX

Verde - Lado ESP8266 - TX, Lado USB-TTL - RX

Naranja - CH_PD (CHIP ENABLE) - siempre debe estar conectado a la alimentación

Azul - GPIO0 - conectado mediante un interruptor a tierra para habilitar el modo intermitente del módulo. Para un inicio normal del módulo, GPIO0 se puede dejar sin conectar en ningún lugar.

Rosa en el diagrama de la derecha: fuente de alimentación no estabilizada de 5 a 8 voltios

4. Para iniciar el módulo, rompa el circuito GPIO0 - GND y podrá aplicar energía (y en este orden: primero nos aseguramos de que GPIO0 esté "suspendido en el aire", luego suministramos energía a VCC y CH_PD)

¡Atención! En los ejemplos anteriores, que realmente funcionan, de cómo conectar el ESP8266, los pines del ESP8266 están conectados "directamente" a tierra y energía, o "colgando en el aire", ya que no tenemos RESET conectado en ninguna parte, lo cual es absolutamente incorrecto y solo es Adecuado para los primeros experimentos, aunque funciona bastante bien en la gran mayoría de módulos. Sólo el pin VCC está conectado "directamente" a la fuente de alimentación; los pines restantes: CH_PD, RESET, GPIO0, GPIO2 deben conectarse (pullup) a la fuente de alimentación (VCC) a través de una resistencia de 4,7 a 50 kOhm. “Directamente”, conectamos solo GND al negativo (cable común) de la fuente de alimentación y extraemos GPIO0 (pulldown) también a través de una resistencia de hasta 10k a GND para poner el módulo en modo de descarga de firmware. Si planea continuar experimentando con el ESP8266, realice una conexión adecuada, como con cualquier otro microcontrolador. Una descripción detallada de pullup y pulldown está fuera del alcance de este artículo, pero puede buscar fácilmente en Google una descripción de la conexión correcta de los puertos de E/S. La conexión "correcta" le permitirá evitar muchos "milagros" y problemas y será inevitablemente necesaria si tiene dificultades para iniciar o actualizar el módulo ESP8266. Cómo conectar correctamente ESP8266

Si planeas usar el ESP8266 durante más de una noche, necesitarás una opción de conexión que ofrezca mayor estabilidad. A continuación se muestran dos diagramas de conexión: con soporte para firmware de carga automática desde Arduino IDE, UDK, Sming y sin él.

Diagrama de conexión para ESP8266 (sin cargar automáticamente el firmware, lo flasheamos instalando primero el puente BURN y reiniciando el módulo)

Diagrama de conexión con soporte para firmware de carga automática desde Arduino IDE, UDK, Sming. Es posible que sea necesario desactivar Flash Download Tool y XTCOM_UTIL para RTS/DTR. Si le resulta inconveniente desactivar RTS y DTR, puede agregar puentes al circuito

Estos diagramas no muestran la conexión de ADC y GPIO libres; su conexión dependerá de lo que desee implementar, pero si desea estabilidad, no olvide conectar todos los GPIO a la alimentación (pullup) y el ADC a tierra (pulldown). ) a través de resistencias pull-up .

Las resistencias de 10k se pueden reemplazar por otras de 4,7k a 50k, con la excepción de GPIO15: su valor debe ser de hasta 10k. El valor del condensador que suaviza las pulsaciones de alta frecuencia puede ser diferente.

Necesitará conectar RESET y GPIO16 a través de una resistencia de suspensión profunda de 470 ohmios si usa el modo de suspensión profunda: para salir del modo de suspensión profunda, el módulo se reinicia aplicando un nivel bajo a GPIO16. Sin esta conexión, el sueño profundo será eterno para tu módulo.

A primera vista, estos diagramas parecen sugerir que GPIO0, GPIO2, GPIO15, GPIO1 (TX), GPIO3 (RX) están ocupados y no puedes usarlos para tus propósitos, pero ese no es el caso. Se requiere un nivel alto en GPIO0 y GPIO2, un nivel bajo en GPIO15 solo para iniciar el módulo, y posteriormente puede usarlos a su discreción, solo recuerde asegurarse de los niveles requeridos antes de reiniciar el módulo.

Puede usar TX, RX como GPIO1 y GPIO3 respectivamente, sin olvidar que cuando se inicia el módulo, cualquier firmware extraerá TX y enviará información de depuración a UART0 a una velocidad de 74480, pero después de una carga exitosa puede usarlos no solo como UART0 para intercambiar datos con otro dispositivo, pero también como GPIO normales.

Para módulos con una cantidad menor de pines cableados, como ESP-01, no es necesario conectar pines deshechos, es decir. en el ESP-01 solo están conectados los siguientes: VCC, GND, GPIO0, GPIO2, CH_PD y RESET; eso es todo lo que debes ajustar. No es necesario soldar directamente al chip ESP8266EX y tirar de los pines no extraídos solo si realmente lo necesita.

Estos diagramas de conexión nacieron después de muchos experimentos realizados por los miembros de nuestro foro y recopilados poco a poco de documentación dispersa e inicialmente inaccesible por nuestra comunidad, simplemente intenté combinar este conocimiento en un solo lugar. Encontrará muchos consejos de conexión en nuestro foro. Allí podrá hacer preguntas o encontrar ayuda para resolver problemas. Si ve un error o inexactitud en este artículo o tiene algo que agregar, hágamelo saber en un tema especial en nuestro foro.

¡Atención! Incluso estos esquemas no pueden calificarse de “ideales”. La perfección no tiene límites: es conveniente conectar un segundo USB-TTL a UART1 (con ESP8266 solo puedes tomar GND y UTXD1, es decir, GPIO2) para conectar un terminal de depuración (necesitarás un segundo convertidor USB-TTL) - luego puede actualizar el módulo ESP8266 a través de UART0 sin deshabilitar el terminal de depuración en UART1. Sería una buena idea conectar pequeñas resistencias a los pines de ambos UART, colocar un diodo en la línea RTS, agregar un capacitor a la línea eléctrica para amortiguar los pulsos de baja frecuencia, etc. Es muy conveniente, por ejemplo, hacerlo en esta placa de depuración: los LED están conectados a todos los GPIO, un fotorresistor está conectado al ADC, pero es una pena que no haya un botón RESET y solo haya un puente en GPIO0.

Sería correcto decirle que no existe un diagrama de conexión ideal y al mismo tiempo universal para el ESP8266. El caso es que depende mucho del firmware que vayas a subir allí. Los diagramas anteriores están diseñados para principiantes que recién comienzan a dominar el ESP8266 para experimentar. Para proyectos reales, es posible que tengas que cambiar un poco el diagrama. Por ejemplo, para actualizar el firmware TCP2UART, debe conectar RTS a GPIO15 y CTS a GPIO13. También recomiendo prestar especial atención a la nutrición en proyectos reales.

Conexión de ESP8266 a través de Arduino

Si no tiene un convertidor USB-TTL de 3,3 V a mano, pero tiene un Arduino con un convertidor USB-TTL incorporado, puede utilizar este diagrama de conexión.

A qué prestar atención:

    Arduino Reset está conectado a GND (cable azul) para que el microcontrolador en Arduino no se inicie, de esta forma usamos Arduino como un convertidor USB-TTL transparente

    RX y TX no están conectados transversalmente, sino directamente - RX - RX (verde), TX - TX (amarillo)

    Todo lo demás está conectado de la misma forma que en ejemplos anteriores.

¡Atención! Este circuito también requiere hacer coincidir los niveles TTL de 5 voltios en el Arduino y 3,3 voltios en el ESP8266, pero funciona bien de esta manera.

¡Atención! Es posible que el Arduino tenga instalado un estabilizador de potencia que no soportará la corriente requerida por el ESP8266, por lo que antes de realizar la conexión, consulta la hoja de datos del estabilizador que tienes instalado. No conecte otros componentes que consuman energía al mismo tiempo que el ESP8266 debido al riesgo de dañar el regulador de potencia incorporado del Arduino.

Existe otro esquema para conectar Arduino y ESP8266 usando SoftSerial. Dado que para la biblioteca SoftSerial la velocidad del puerto 115200 es demasiado alta y no garantiza un funcionamiento estable, no recomendamos utilizar este método de conexión, aunque hay personas para quienes todo funciona de manera estable (aunque solo a una velocidad de 9600). Bosquejo de dicho diagrama de conexión (gracias nec3540A) Conexión de ESP8266 a través de RaspberryPi

Sí, puedes “matar a los gorriones” si no tienes ningún conversor USB-TTL a mano. La conexión a través de Raspberry es similar a Arduino, pero no tan conveniente, porque... Además, necesitará un estabilizador de potencia de 3,3 voltios. Conectamos RX, TX, GND de la frambuesa al ESP8266, tomamos VCC y GND de una fuente de alimentación estabilizada de 3,3 voltios. Tenga en cuenta que necesita conectar el GND de todos los dispositivos: Raspberry, estabilizador y ESP8266. Personalmente no he intentado tomar 3,3 voltios de potencia del Raspberry para el ESP8266, por lo que no te ofreceré esta opción. Si el estabilizador integrado en su versión del Raspberry soporta hasta 300 miliamperios de carga adicional, entonces es muy posible conectar el ESP8266. Si quieres correr el riesgo tú mismo, adelante.

Configurando ESP8266

Entonces, conectamos el módulo ESP8266 al puerto USB (a través de USB-TTL o Arduino), ahora debe asegurarse de que los controladores para su USB-TTL o Arduino estén instalados correctamente y que aparezca un nuevo puerto serie virtual en el sistema. Necesitará un programa: un terminal de puerto serie. Puede utilizar el que desee, pero debe cumplir el siguiente requisito: cada comando que envíe desde la computadora al puerto serie debe terminar con los caracteres CR+LF.

El programa CoolTerm es muy popular (existen versiones para Win/MAC/Linux).

Su humilde servidor es el autor del programa ESPlorer de código abierto, que ha recibido reconocimiento internacional. ESPlorer le permitirá no ingresar comandos AT manualmente y trabajar fácilmente con scripts lua en NodeMCU (más sobre eso en otro momento) y también podrá usarlo como una terminal normal. Discusión sobre ESPlorer en nuestro foro y en esp826.com

Conectarse al puerto serie requerirá un poco de magia: debido a la variedad de firmware para el ESP8266, la conexión se puede realizar a diferentes velocidades. La velocidad requerida se puede determinar simplemente buscando entre tres opciones: 9600, 57600 y 115200. ¿Cómo buscar? Conéctese a su puerto serie virtual en el programa terminal configurando los siguientes parámetros: 9600 8N1, luego reinicie el módulo deshabilitando CH PD (habilitación de chip) de la fuente de alimentación (USB-TTL permanece conectado al USB) y enciéndalo nuevamente (es decir, simplemente distorsione CH PD, ¿por qué no distorsionamos la alimentación? Lea aquí, también puede cortocircuitar RESET a tierra para reiniciar el módulo) y observar los datos en el terminal. Primero, los LED del ESP8266 deberían encenderse como se describe al principio del artículo en la sección Prueba del ESP8266. En segundo lugar, en la terminal deberías ver una “basura” de diferentes caracteres que terminan en la línea “listo”. Si no vemos “listo”, entonces nos reconectamos con el terminal a otra velocidad y reiniciamos el módulo nuevamente.

En una de las opciones de velocidad "listo", aún verá: felicidades, su módulo está listo para usar. Si no es así, bienvenido a nuestro foro; intentaremos ayudar, pero primero lea este tema.

Un poco más sobre “basura”. El hecho es que cuando se inicia el firmware, el UART del módulo ESP8266 cambia a una velocidad de baudios de 74,880 (esos chinos son muy divertidos), envía información de depuración al UART y luego cambia la velocidad del puerto a 115200 (o 9600 o 57600, dependiendo de la versión del firmware), por lo que esta información de depuración nos aparece como basura, porque Nos conectamos al módulo a una velocidad diferente. Puedes conectarte al ESP8266 a una velocidad de 74,880 (ESPlorer admite esta velocidad) y verás esta información de depuración, será algo como esto:

Wdt restablecer carga 0x40100000, len 25052, sala 16 cola 12 chksum 0x0b ho 0 cola 12 sala 4 carga 0x3ffe8000, len 3312, sala 12 cola 4 chksum 0x53 carga 0x3ffe8cf0, len 6576, sala 4 cola 12 chksum 0x0d c suma 0x0d

¡PERO! no verá "listo" y no podrá controlar el módulo hasta que vuelva a conectarse a la velocidad a la que se ejecuta el firmware.

¿Qué hacer a continuación?

Si tiene un módulo nuevo, lo más probable es que esté actualizado con uno de los antiguos firmwares AT personalizados. Lo más probable es que se trate de algún tipo de AI-THINKER AT v0.16 SDK v0.9.2. Puede verificar la versión del firmware usando el comando “AT+GMR”, es decir. directamente en el programa de terminal, escriba AT+GMR sin comillas y presione Enter. El módulo debe responder "OK" y mostrar la versión del firmware (por ejemplo, "0016000092"; el formato de salida de la versión es diferente en las diferentes versiones del firmware AT). Controlar el módulo ESP8266 con comandos AT merece un artículo aparte, pero puedes resolverlo fácilmente usando uno de nuestros libros de referencia sobre comandos AT:

Al momento de escribir este artículo, la versión de firmware actual para el ESP8266 es:

Comandos AT versión v0.21, versión SDK v0.9.5 Actualización de firmware ESP8266

El módulo ESP8266 destaca porque no requiere un programador especial: el firmware se actualiza en el mismo hardware en el que conecta el módulo ESP8266 a la computadora, es decir. también mediante un conversor USB-TTL (o Arduino o RPi). Para actualizar el firmware en el módulo ESP8266, haga lo siguiente:

    Descargue la nueva versión de firmware de nuestro sitio web desde la sección de firmware ESP8266 (aquí hay un enlace a la última versión de firmware AT 0.21 SDK 0.9.5 al momento de escribir este artículo)

    Descarga una de las utilidades para flashear el ESP8266 dependiendo de tu sistema operativo desde la sección Utilidades ESP8266 de nuestra web

    para sistemas Win, XTCOM UTIL es adecuado (es conveniente trabajar si el firmware consta de un archivo), esptool multiplataforma (se requiere Python, debe especificar los parámetros en la línea de comando), FLASH DOWNLOAD TOOL (muchas configuraciones, es Conveniente para actualizar el firmware que consta de varios archivos, permite "recopilar el firmware en un archivo a partir de varios). También encontrará otros programas para actualizar ESP8266: pruebe diferentes y utilice el que más le guste.

    Desconecte su programa terminal del puerto serie

    Deshabilitar canal PD desde la fuente de alimentación, conecte GPIO0 del módulo a GND, vuelva a conectar CH Módulo PD.

    Ejecute el programa de firmware del módulo y cargue el nuevo firmware en el módulo ESP8266.

La carga de firmware en el módulo generalmente se realiza a una velocidad de 115200, pero el modo de firmware del módulo admite la detección automática de velocidad y el firmware se puede cargar a una velocidad de 9600 y superior. La velocidad máxima depende de muchos factores (su convertidor USB-TTL, longitud del cable, etc.) y puede determinarse experimentalmente según la configuración de su equipo específico.

Todas las versiones de firmware más recientes se cargan desde la dirección cero (0x00000).

Discusión de este artículo en nuestro foro.

Discusión de problemas al conectar ESP8266 en nuestro foro

El artículo Actualización del firmware ESP8266 describe en detalle la carga del firmware en el módulo utilizando el programa XTCOM_UTIL.

Ha pasado muy poco tiempo desde que dominé los nuevos microcontroladores Arduino cuando encontré información sobre el módulo ESP8266 y decidí sumergirme en un mundo nuevo para mí: un nuevo microcontrolador y una red inalámbrica Wifi. La buena noticia es que puedes programar dichos módulos utilizando el programa Arduino IDE que ya dominas. Pero hay que comprobar cada paso.

ESP8266 EX-12E:


 tiene 11 entradas/salidas (GPIO), lo que amplía sus capacidades
 sólo esta versión tiene una entrada ADC
 posibilidad de montaje SMD Preparación para el funcionamiento

Para operar el módulo necesita:

 aplicar uno lógico a la entrada EN (CH_PD)
 para ingresar al modo de firmware, antes de encender el módulo, debe cortocircuitar GPIO0 a tierra
 enviar 3.3v en VCC

Para los primeros pasos me pareció un poco arriesgado empezar a trabajar con este módulo y pedí un kit. NodeMCU DevKit ESP8266 E-12 y una placa de desarrollo Escudo motor ESP 8266 E-12 No tenía la intención de controlar los motores, pero me atrajo la posibilidad de conectar directamente el módulo al USB y hacer coincidir la fuente de alimentación de todos los circuitos.


ARDUINO 1,6,6 instalado. Luego lo ingresé en la configuración del programa. http://arduino.esp8266.com/stable/package_esp8266com_index.json y en Herramientas Se exhibieron tableros, incluyendo NodeMCU 1.0 (módulo ESP-12E) Descargué el ejemplo de WiFiClient y al compilarlo recibo varios mensajes de error. Fui al foro ESP8266.ru, donde me recomendaron utilizar la versión anterior del programa Arduino: 1.6.5. Para estar seguro, reinstalé el sistema (restaurado desde una copia de seguridad) e instalé Arduino 1.6.5. Seguí los mismos procedimientos para incluir las bibliotecas necesarias. Lo compruebo, todo está bien, ¡no hay errores!

Basta ya de letras, ahora concretamente y con las imágenes que hice.

1. Ingrese la ruta a las bibliotecas (puede separarlas con comas. Solo hay una ruta en la imagen)


2. Seleccione Administrador de tableros en el menú.


3. Aparecerá un campo con la nueva biblioteca en la parte inferior de la lista que se abre. ESP8266. (Tuve que abrirlo dos veces porque el encargado aún no había recogido las bibliotecas). Debes seleccionar este campo con el mouse para que aparezca el botón. Instalar


4. Ir al menú nuevamente. Herramientas y selecciona el tablero NodeMCU 1.0 (módulo ESP-12E)

Si la placa está conectada a una computadora, debe instalar inmediatamente el puerto. Si la computadora no reconoce el nuevo dispositivo, lo cual se puede ver en el administrador de dispositivos de la computadora, entonces debe instalar el controlador necesario. Mi módulo requerido Controlador USB CP2102.

Es hora de contarte lo que planeo hacer. En casa hay un gran mapa del mundo colgado en la pared, en el que los lugares que he visitado están iluminados con LED de diferentes colores. Así, los LED azules iluminan puertos y puntos en el océano: trabajan en el Instituto de Oceanología; amarillo - ejército, etc. Los LED cambian su brillo y a veces parpadean. Todo esto está controlado por un Arduino Nano. Ahora quiero que todo esté controlado por el módulo ESP8266 y poder cambiar de modo desde un smartphone vía wifi. La tarea no es difícil cuando sabes cómo hacerlo, pero ¿cuándo es la primera vez?

Lo primero que necesitaba verificar era qué pines del ESP8266 podía usar para emitir señales PWM para controlar el brillo de los canales LED de color. Hay un total de cuatro canales de colores en el mapa mundial. Hay alrededor de 20 LED en cada canal. Habiendo buscado en vano en Internet, utilicé un método de fuerza bruta, cambiando la actividad de los pines GPIO en el programa e identifiqué 4 pines. Posteriormente encontré una mesa, un mapa de las patas, del módulo ESP8266, que se adaptaba a mi opción.

índice IO pasador ESP8266 índice IO pasador ESP8266
0 GPIO16 7 GPIO13
1 GPIO5 8 GPIO15
2 GPIO4 9 GPIO3
3 GPIO0 10 GPIO1
4 GPIO2 11 GPIO9
5 GPIO14 12 GPIO10
6 GPIO12

Entonces, la primera parte del programa funciona. Seleccioné los primeros cuatro pines 0-3, es decir, en el programa estos son GPIO16, GPIO5, GPIO4, GPIO0, respectivamente, y en el módulo DevKit ESP8266 E-12, estos son los pines D0-D3, respectivamente.

¿Cómo utilizar wifi?

En busca de una solución, fui al sitio web blynk.cc, desde donde descargué e instalé un programa para teléfono inteligente (BLYNK PARA ANDROID) y una biblioteca para Android IDE. El programa para el teléfono inteligente se instala automáticamente y sin problemas directamente desde el sitio web blynk.cc.
Además, descargué sin problemas la biblioteca Blynk_v0.3.1.zip (275 KB) y la instalé. Para hacer esto, inicie el programa Arduino, seleccione del menú AÑADIR Biblioteca .ZIP...


Las bibliotecas se instalaron directamente desde el archivo, lo cual resulta conveniente.

Como regla general, es mejor reiniciar el programa después de las innovaciones.

Muestra seleccionada Blynk>Tableros y escudos>ESP8266_Standalone y en base a ello escribí mi boceto:

Conecté 4 controles deslizantes grandes al teléfono inteligente, configuré el rango en 0-1023 y un botón que cambia los modos de retroiluminación del mapa mundial.

El módulo DevKit ESP8266 está ubicado en la esquina inferior derecha de la tarjeta.

El esquema es bastante simple. Lo único que tenía que hacer era arreglar los niveles de potencia y controlar la señal. La fuente de alimentación principal de 12 voltios alimenta los LED. En DevKit suministré 5 voltios a través de un convertidor


La figura muestra un grupo de LED. Hay cuatro grupos de este tipo en total y difieren en color. Cada grupo puede estar formado por un número diferente de líneas de LED conectadas en paralelo, pero cada línea no tiene más de 5 LED, esto está determinado por la tensión de alimentación de 12 V. Si se requiere una cantidad menor de LED, entonces se incluye una resistencia de amortiguación en el circuito o se logra el brillo requerido mediante el potenciómetro de canal.




Arriba