Módulo WiFi ESP8266 para Dummies

Descripción general del módulo WiFi ESP8266

El ESP8266 es un módulo WiFi realmente útil y barato para controlar dispositivos a través de Internet. Puede funcionar con un microcontrolador como el Arduino o puede programarse para funcionar por sí solo.

¡El Internet de las cosas (IoT) acaba de hacerse mucho más barato y fácil!

El ESP8266 viene con firmware instalado de fábrica que le permite controlarlo con "comandos AT" estándar. También puede crear y cargar fácilmente su propio código y esto lo hace enormemente potente y flexible.

El ESP8266 se lanzó en 2014 y está creciendo rápidamente en popularidad. Solo hay un procesador ESP8266, pero se encuentra en muchas placas de conexión diferentes. Todo esto difiere en términos de qué pines están expuestos y el tamaño de la memoria flash, etc. Estos paneles de conexión han evolucionado rápidamente a lo largo de los años y hay mucha información en la web. Esto es tanto una bendición como una maldición, ya que algunos de los consejos están desactualizados o simplemente están equivocados.

¡Como resultado, me tomó 3 días antes de que pudiera hacer algo! Algunas personas tienen suerte, pero para mí fue una batalla hacer que algo funcionara. ¡A veces pensé que lo había roto pero con algo de perseverancia siempre volvió a la vida!

¡Finalmente lo tengo cantando y bailando y resulta ser más fácil de lo que pensaba!

Consolidé toda la información útil que encontré en un solo lugar y pensé en compartirla en un instructable. Con suerte, esto lo pondrá en funcionamiento rápidamente con todas las funciones básicas que necesitará.

En este instructable estábamos mirando el tablero de conexiones ESP-01.

Sin embargo, este mismo enfoque debería aplicarse a la mayoría (si no a todas) de las variantes de ESP.

Paso 1: el ESP-01 en pocas palabras

  1. Es compatible con el protocolo 802.11 b / g / n
  2. ¡Se puede conectar a su enrutador y funcionar como cliente o puede ser un punto de acceso en sí mismo o ambos!
  3. Es IP direccionable y puede ser un servidor web
  4. La versión "estándar" tiene 2 pines digitales que se pueden usar para entrada o salida. Por ejemplo: para conducir LED o relés. Estos pines también se pueden usar para PWM. Otras versiones tienen más pines expuestos. Por ejemplo, el ESP-12, que es una buena opción si necesita más pines. De cualquier manera, la programación sigue siendo la misma.
  5. La entrada analógica también está disponible en el chip ESP8266 (ADC / TOUT) pero no está conectado en el ESP-01.
  6. Se puede combinar con un Arduino o se puede programar para que funcione solo
  7. Existen diversas herramientas y entornos de desarrollo (IDE) para programarlo.
  8. Y tiene mucho más ...

En esta demostración, el ESP8266 actúa como un servidor web que aloja una página web con la que puede interactuar a través de WiFi.

¡Con esta demostración puedes comenzar tu propio proyecto de domótica y controlarlo desde la web!

Paso 2: lo que necesitarás

En primer lugar, veamos si podemos ponerlo en funcionamiento.

Muchos sitios recomiendan volver a actualizar el firmware y usar varias herramientas. No necesitas hacer eso todavía.

Reemplazaremos el firmware con nuestro propio código. En otro instructable: La guía simple para actualizar su firmware ESP8266 Le muestro cómo volverlo a una versión actualizada de fábrica. Si solo va a programar el ESP8266 con su propio código, como haremos en esta demostración, no necesitará el firmware de fábrica. Tu código es el firmware.

Usaremos el IDE de Arduino como herramienta de programación, pero no necesitamos un Arduino en sí. El ESP8266 tiene toda la funcionalidad que necesitamos.

Nota: después de cargar su propio código, su ESP8266 ya no responderá a los comandos AT. Su código ha reemplazado el firmware. Usando su código y la biblioteca ESP8266 en el IDE de Arduino, tendrá acceso a un conjunto más rico de comandos. Consulte la documentación aquí: //www.arduino.cc/en/Reference/WiFi

Puede restaurar el firmware en el ESP8266 para volver a los comandos AT si lo desea. Vea mi otro instructable: La guía simple para actualizar su firmware ESP8266.

NB : es un módulo de 3.3V y no 5V. El ESP-01 es más robusto de lo que pensaba, pero debe configurarlo correctamente, especialmente si lo está utilizando con un USB 5V a programador en serie o un microcontrolador, de lo contrario, puede freírlo.

Lo que necesitarás:

  1. Un ESP8266, por supuesto (use la variante ESP-01 o adapte su cableado en consecuencia)
  2. Tablero de circuitos
  3. Programador USB a serie de 3.3V como FTDI Basic (a veces conocido como UART: Universal Asynchronous Receiver / Transmitter). Algunos vienen con un puente para cambiar entre 5V y 3.3V.
  4. Cables de puente de tablero
  5. Una fuente de alimentación separada de 3.3V. Necesita uno, ya que el ESP8266 puede masticar muchos mA (> 250mA a veces). La salida de 3.3V del programador en serie o del Arduino no es suficiente. Sin una fuente de alimentación separada, su ESP puede ser errático y perderá tiempo intentando cargar el código.
  6. Led, botón, resistencia de 330 ohmios, resistencia de 10k ohmios, condensador de .1 µF a través de su fuente de alimentación (como práctica estándar).
  7. Agregue un convertidor de nivel lógico al circuito si está utilizando un microcontrolador o un programador FTDI a 5V

Si tiene un ESP8266 con un puerto USB incorporado, no necesita pasar por esta molestia. El Wemos D1 Mini es una buena alternativa. Vea esto: //www.wemos.cc/product/d1-mini.html

Paso 3: los componentes con más detalle

ESP-01

Obtuve mi ESP-01 de: //netram.co.za/2720-wifi-serial-transceiver-module-esp8266.html

Puede echar un vistazo a las diferentes versiones aquí: //www.esp8266.com/wiki/doku.php?id=esp8266-module-family


Fuente de alimentación de tablero

Una buena fuente de alimentación parece ser un aspecto crucial para el ESP8266. Una fuente de alimentación de placa es realmente útil, especialmente cuando se trata de voltajes mixtos. El que se muestra aquí suministra 3.3V y 5.5V y se conecta directamente a su placa de pruebas. ¡Debería haber conseguido uno hace mucho tiempo! El ESP8266 puede masticar muchos mA (> 300mA a veces). Si su ESP se reinicia o parece poco confiable, entonces necesita una fuente de alimentación separada para el ESP (sin embargo, mantenga un terreno común). También conecte un condensador a través de 3.3V y tierra para minimizar picos y proporcionar un pequeño depósito de energía.

//netram.co.za/938-breadboard-power-supply-5v33v.html


Programador USB a serie

Obtenga uno que admita 3.3V o que tenga un puente de 3.3V / 5V; de lo contrario, si solo tiene 5V, debe usar un convertidor de nivel lógico bidireccional entre el programador y el ESP8266. El FTDI Basic tiene un puente de 3.3V / 5V en la parte posterior:

//netram.co.za/2842-ftdi-basic-usb-to-ttl-programmer.html

//netram.co.za/2679-logic-level-converter-bi-directional.html


Conversor de nivel lógico

Bidireccional 5V y 3.3V. Esto solo es necesario si está utilizando un programador en serie de 5V.


Puentes de tablero

Incluya algunos puentes JST, ya que son útiles para enchufarlos en módulos con pines y luego unirlos a la placa de pruebas. Incluya algunos cables macho a hembra para este propósito. El ESP-01 no es compatible con la placa de pruebas, por lo que los necesitará.

Paso 4: el diseño del tablero de pruebas

Mirando el tablero, el programador FTDI es el tablero rojo en la parte superior y el ESP8266-01 en la parte inferior. El programador FTDI solo necesita 3 cables conectados: el cable a tierra y el RX a TX y TX a RX en el ESP. A la izquierda está la fuente de alimentación de la placa de pruebas (normalmente se conectaría a la placa de pruebas).

NB: La calidad de la fuente de alimentación del ESP es uno de los factores más importantes. Hay un pequeño condensador (.1uF) a través de 3.3V y tierra para minimizar los picos. Si tiene problemas con la programación de su ESP, bien puede ser su fuente de alimentación. Lo que ayudará es agregar otro condensador más grande a través de 3.3V y tierra. Por ejemplo: 10uF.

Paso 5: los pinouts ESP-01

La imagen de arriba de los pinouts ESP8266 se encuentra en toda la red. Creo que puede haberse originado de Neil "El libro de Kolban en ESP8266". Este es un recurso fantástico y está disponible como descarga en pdf desde: //leanpub.com/ESP8266_ESP32. Tiene 400 páginas, se actualizó en noviembre de 2016, y si te interesa el desarrollo de ESP8266, entonces este es el libro que debes obtener. Es gratis pero haz una donación si puedes.

Notas de cableado del tablero de pruebas:

  • Los cables se muestran conectados al frente del ESP-01 para mayor claridad. Adjuntarlos a los mismos pines desde atrás. El ESP-01 no es compatible con la placa de pruebas y los puentes JST macho-hembra son útiles para conectarlo.
  • GPIO 0 debe mantenerse bajo para la programación. Esto debe eliminarse si retira el FTDI y opera el ESP8266 con su propia fuente de alimentación.
  • CH_PD debe mantenerse alto en todo momento.
  • El pin RESET se mantiene alto con una resistencia de 10k ohmios y se pone a tierra mediante el botón RESET que reiniciará el chip. Presione RESET cada vez que cargue el código y cada vez que conecte o desconecte GPIO 0. El botón de reinicio le ahorrará muchas molestias.

Cuando enciende el circuito, el LED rojo del ESP-01 debería encenderse y el LED azul debería parpadear brevemente. Más tarde, cuando cargue el código en el ESP, el LED azul debería parpadear continuamente durante el proceso. Cualquier otra combinación de LED sugiere que hay un problema.

NB : si desea eliminar el programador en serie y ejecutar el ESP por sí mismo, asegúrese de desconectar GPIO 0 del suelo y presionar el botón RESET; de lo contrario, el ESP podría no funcionar correctamente.

Paso 6: Esquema

Paso 7: Uso del Arduino en lugar de un programador en serie

También puede usar un Arduino en lugar de su programador USB a serie.

Algunas cosas a tener en cuenta:

  1. En un Arduino de 5V, la salida digital será de 5V y esto podría freír su ESP2866. Así que use un Arduino 3.3V o un chip Logic Converter
  2. El 3.3V Vout en el Arduino es insuficiente para conducir su ESP8266 y podría obtener resultados poco confiables. Preferiblemente use otro suministro de 3.3V.
  3. Como práctica recomendada, siempre suba un boceto en blanco a su Arduino antes de conectar cualquier otro dispositivo para evitar resultados impredecibles. Un boceto en blanco tiene funciones vacías de configuración () y bucle ().
  4. Si está utilizando un Arduino Uno, solo tiene un par de hardware TX&RX. Para comunicarse con el ESP8266 y el Monitor de serie al mismo tiempo, también deberá usar el archivo de inclusión SoftwareSerial. Solía ​​tener una limitación en la velocidad en baudios, pero ahora en teoría puede soportar una velocidad en baudios de hasta 115200. Un Mega 2560 tiene más pines TX y RX de hardware, por lo que podría ser una mejor manera de hacerlo.
  5. Y finalmente y lo más importante : mira de cerca los pines TX y RX en el Arduino. Notarás que tienen flechas a su lado. El pin TX tiene una flecha apuntando hacia afuera. Lo que esto dice es TX IN! ¡Lo que esto realmente significa es que el pin TX es en realidad el pin RX! ¡Y del mismo modo, el pin RX es en realidad el pin TX! Entonces, cuando use el Arduino como un adaptador en serie con otro dispositivo, debe conectar RX a RX y TX a TX. ¡Solo descubrí este matiz después de varias horas de dolor! ¿Por qué, oh, por qué lo etiquetaron así?

Mientras hago preguntas: ¡ por qué el ESP-01 fue producido con tan pocos pinouts útiles expuestos también me desconcierta! Sigue siendo un excelente punto de partida, pero si necesita algo más, elija el ESP-12.

Para simplificar las cosas, pruebe un ESP-12 con un USB incorporado como:

//www.wemos.cc/product/d1-mini.html

Paso 8: Programación usando el IDE de Arduino

Hay varias herramientas para programar el ESP8266, pero Arduino IDE (Integrated Development Environment) es, con mucho, el más fácil para la mayoría de las personas.

Para programar el ESP8266 con el IDE de Arduino, deberá descargar la última versión si aún no la tiene y luego instalar el soporte ESP8266. Tenga en cuenta que solo está utilizando el entorno de programación Arduino, no necesita ningún hardware Arduino.

Para descargar el IDE de Arduino, vaya a: //www.arduino.cc/en/Main/Software

Inicie el IDE de Arduino y seleccione el Administrador de placas ...

Paso 9: Configurar el administrador de la placa ESP2866

Inicie el IDE de Arduino y seleccione el Administrador de tableros en Herramientas / Tablero.

Paso 10: Instale el administrador de la placa ESP2866

Encuentre el esp8266, selecciónelo y haga clic en Instalar.

Paso 11: Configuración de preferencias de Arduino

Ir a Archivo / Preferencias

Paso 12: URL de Boards Manager

En el campo URL de Boards Manager adicionales ingrese la URL para el paquete ESP8266 que es:

//arduino.esp8266.com/stable/package_esp8266com_index.json

Paso 13: Configuración ESP8266 en IDE

Seleccione el "Módulo ESP8266 genérico" y vuelva al Administrador de placas nuevamente

Paso 14: Opciones ESP8266

Configura tus opciones de ESP-01. Seleccione el puerto COM apropiado según su PC.

Paso 15: Hablando con ESP8266

Si todavía tiene el firmware original en su ESP8266, puede intentar hablar con él con el monitor serie.

  1. Abra el monitor serie Arduino:
  2. Seleccione la velocidad de transmisión adecuada, que generalmente es de 115200, pero podría ser de hasta 9600, dependiendo del firmware en el ESP.
  3. También seleccione "Ambos NL y CR". Es decir: Nueva línea y caracteres de retorno de carro después de cada "Enviar".
  4. Escriba AT y presione enter. El ESP debería volver con OK. Si no, presione el botón RESET o intente desconectar el cable USB y comenzar de nuevo. Asegúrese también de que tiene seleccionado el puerto COM correcto. Además, si no tiene el firmware "estándar" en su ESP, es posible que no comprenda el conjunto de comandos AT. Esto no es necesariamente un problema todavía, ya que lo sobrescribirá con el código Arduino más adelante en este instructable.
  5. Escriba AT + GMR. Esto debería volver con los números de versión del firmware en su ESP. En otro instructable, le muestro cómo puede restaurar la última versión del firmware "de fábrica" ​​(si lo desea).

Paso 16: Código ESP8266 Arduino

Descargue el archivo de código (ESP8266_LED_Control.zip), descomprímalo y ábralo en el IDE de Arduino.

Cambie la configuración del enrutador a la suya. es decir: cambiar los campos SSID y CONTRASEÑA.

Asegúrese de que su placa de prueba esté configurada correctamente y conecte su cable USB al programador en serie.

NB: Al direccionar los pines GPIO en su código, debe usar el número GPIO. por ejemplo: 2 para GPIO 2 y no el número de pin físico que será diferente.

Archivos adjuntos

  • ESP8266_LED_Control.zip Descargar

Paso 17: Carga tu código al ESP8266

Asegúrese de haber cerrado TODOS los monitores de puerto serie en el mismo puerto, si los está utilizando. Por ejemplo: herramientas como CoolTerm. Abra el Monitor serie Arduino nuevamente, ya que necesitará ver la dirección IP del ESP después de que se cargue.

NB : para cargar su código debe tener GPIO 0 conectado a tierra. Puede dejarlo allí mientras ejecuta su código en el navegador. Presione el botón RESET antes de cada carga. Si la carga falla, verifique su configuración e intente desconectar y volver a conectar el cable USB. Prueba Ctrl y U un par de veces. Si todo lo demás falla, intente reiniciar su PC. A veces, los puertos COM se complican un poco.

El LED azul en el ESP debería parpadear si el código se está cargando correctamente. El progreso de la carga debe verse como las imágenes de arriba.

NB : si desea eliminar el programador en serie y ejecutar el ESP por sí solo, asegúrese de desconectar GPIO 0 del suelo y presionar el botón RESET; de lo contrario, el ESP podría no funcionar correctamente.

Si sus cargas ESP8266 se comportan de manera irregular, mejore su fuente de alimentación.

Paso 18: deja ver lo que está haciendo

Cambie al monitor serie Arduino y debería ver la dirección IP del ESP. También puede iniciar sesión en su enrutador y verificar qué está conectado allí. El dispositivo aparecerá en la lista de IP conectadas con un nombre como: ESP_1A6C4A.

Mientras está en su enrutador, siempre puede reservar la dirección IP del ESP y configurar algún reenvío de puertos para que pueda conectarse al ESP desde fuera de su red, como la oficina.

Deberías ver algo como lo anterior. Use esa dirección IP en su navegador.

Paso 19: Probémoslo

Después de hacer clic en algunos enlaces, ¡verás que el LED se enciende y se apaga!

También ve que puede hacer PWM y atenuar el LED.

El ESP8266 también puede manejar interrupciones en los pines digitales y también tiene entrada analógica. Sin embargo, el pin de entrada analógica no está expuesto en el ESP-01,

Internet Explorer funciona bien, pero por alguna razón FireFox parece muy lento con el ESP. Esto puede tener algo que ver con la configuración del encabezado HTTP.

Nota: después de cargar su propio código, su ESP8266 ya no responderá a los comandos AT. Su código ha reemplazado el firmware. Usando su código y la biblioteca ESP8266 en el IDE de Arduino, tendrá acceso a un conjunto más rico de comandos. Consulte la documentación aquí: //www.arduino.cc/en/Reference/WiFi.

Puede restaurar el firmware en el ESP8266 para volver a los comandos AT si lo desea. Vea mi otro instructable: La guía simple para actualizar su firmware ESP8266.

Paso 20: Recursos ESP

El "Libro de Kolban sobre ESP8266" actualizado en noviembre de 2016 es para entusiastas serios.

Tiene más de 470 páginas y tiene una increíble cantidad de detalles. Puedes obtenerlo gratis pero haz una donación si puedes.

//leanpub.com/ESP8266_ESP32

Ahora ha separado el ESP32 y ha publicado un nuevo libro:

//leanpub.com/kolban-ESP32

ESP32

"Al igual que el ESP8266, el ESP32 es un microcontrolador compatible con WiFi, además agrega soporte para Bluetooth de baja energía (es decir, BLE, BT4.0, Bluetooth Smart) y casi 30 pines de E / S".

Ver: //www.sparkfun.com/products/13907

Sitios ESP

//www.esp8266.com/wiki/doku.php?id=esp8266-module-family

//www.esp8266.com/

//iotbytes.wordpress.com/esp8266-pinouts/

//espressif.com/en/products/hardware/esp8266ex/resources


Comandos AT

//www.itead.cc/wiki/ESP8266_Serial_WIFI_Module#AT_Commands

//espressif.com/sites/default/files/documentation/4a-esp8266_at_instruction_set_en.pdf


Gerente de Juntas Arduino

//randomnerdtutorials.com/how-to-install-esp8266-board-arduino-ide/

//github.com/esp8266/Arduino


Notas sobre la actualización del firmware:

He publicado un instructivo que le muestra cómo actualizar el firmware de fábrica en su ESP8266.

Ver: //www.instructables.com/id/The-Simple-Guide-to-Flashing-Your-ESP8266-Firmware/

Artículos Relacionados