Tabla de contenido:

Un escudo WiFi ESP8266 más barato para Arduino y otros micros: 6 pasos (con imágenes)
Un escudo WiFi ESP8266 más barato para Arduino y otros micros: 6 pasos (con imágenes)

Video: Un escudo WiFi ESP8266 más barato para Arduino y otros micros: 6 pasos (con imágenes)

Video: Un escudo WiFi ESP8266 más barato para Arduino y otros micros: 6 pasos (con imágenes)
Video: Conexion WIFI |ESP8266 | IoT 2021 2024, Mes de julio
Anonim
Un escudo WiFi ESP8266 más barato para Arduino y otros micros
Un escudo WiFi ESP8266 más barato para Arduino y otros micros
Un escudo WiFi ESP8266 más barato para Arduino y otros micros
Un escudo WiFi ESP8266 más barato para Arduino y otros micros

Actualización: 29 de octubre de 2020

Probado con la biblioteca de placas ESP8266 V2.7.4 - funciona

Actualización: 23 de septiembre de 2016

No utilice la biblioteca de placas Arduino ESP V2.3.0 para este proyecto. V2.2.0 funciona

Actualización: 19 de mayo de 2016

La Rev 14 de este proyecto revisa las bibliotecas y el código para trabajar con el complemento IDE V2.2 de ESP8266.com

Actualización: 17 de diciembre de 2105

Rev 11 de este proyecto limpia otros intentos de conexión si ya está conectado. También usa el tiempo de espera establecido por la configuración web. Rev 10 ignoró la configuración del tiempo de espera.

Actualización: 11 de noviembre de 2015

Esta es la Rev 10 de este proyecto. Rev 10 utiliza una biblioteca WiFi sin bloqueo, pfodESP8266WiFi, que baja para un rendimiento más alto, especialmente para clientes de Windows. También permite la configuración de la página web de la velocidad en baudios serial.

Actualización: 23 de octubre de 2015

Esta es la Rev 8 de este proyecto. Rev 8 ha mejorado el código ESP8266 que es más confiable. NOTA: Cada paquete enviado detiene este código hasta que el receptor (cliente) reconoce el paquete. Esto puede tardar entre 10 mS y 200 mS. Durante ese tiempo, los datos seriales entrantes de la UART no se manejan. El búfer de serie entrante puede almacenar 256 bytes. A 9600 baudios, se necesitan aproximadamente 270 mS para llenar el búfer, por lo que siempre que mantenga la velocidad en baudios en serie en 9600 o menos, no debe perder ningún dato saliente mientras el ESP8266 envía el paquete anterior. Esto es siempre que tenga una buena conexión WiFi. Si la conexión WiFi es deficiente, un paquete se puede perder y el ESP826 debe volver a transmitirlo, entonces el búfer de entrada en serie puede llenarse si está tratando de enviar una gran cantidad de datos y algunos de sus datos se pueden perder.

Actualización: 20 de septiembre de 2015

Esta es la Rev 3 de este proyecto. Rev 3 agrega una configuración de tiempo de espera de conexión a la configuración de la página web. Si no hay envío o recepción de datos en ese tiempo el WiFi Shield cierra la conexión y espera una nueva. Esto asegura que WiFi Shield se recupere de las conexiones 'medio cerradas' que suceden cuando el cliente simplemente desaparece debido a una mala conexión wifi, pérdida de energía en el enrutador o apagado forzado del cliente. Consulte Detección de conexiones de socket TCP / IP semiabiertas (descartadas) para obtener más detalles.

Este tiempo de espera de conexión predeterminado es de 15 segundos. pero se puede cambiar según sea necesario. Establecerlo en 0 significa que nunca se agota el tiempo de espera. Cuando utilice pfodDesigner, configure una actualización del menú que sea menor que el tiempo de espera de la conexión.

Introducción

Esta es la Rev 11 de ESP8266-01 WiFi Shield y es una alternativa al Cheap / Simple Wifi Shield para Arduino y otros micros. Si solo está haciendo un escudo Wifi, entonces el escudo Wifi barato / simple para Arduino y otros micros es el proyecto que debe usar, ya que es el más simple de conectar. Sin embargo, si ya tiene un módulo ESP8266-01, puede usar estas instrucciones para hacer un escudo WiFi usándolo.

Si tiene uno de los otros módulos básicos ESP8266, siempre que el módulo tenga GPIO0 y GPIO2 disponibles, puede usar estas instrucciones. Si el módulo hace que GPIO15 sea accesible, DEBE conectarlo a GND a través de una resistencia con un valor entre 3K3 y 10K

Rev 10 no necesita ninguna E / S adicional en la placa Arduino, aparte de TX / RX y 5V de potencia y GND. Rev 10 usa GPIO0 y GPIO2 como ConfigLink, como se describe en esta página, ESP8266-01 Pin Magic. Además, los bocetos de código utilizados en Rev10 ahora son exactamente los mismos que los utilizados en Cheap / Simple Wifi Shield para Arduino y otros micros. También reemplaza la placa secundaria de la fuente de alimentación de 5 V a 3 V con 3 componentes discretos y utiliza una red de resistencias para las cinco resistencias 3K3. La primera versión Rev 1 está aquí.

Estas instrucciones también están disponibles en www.pfod.com.au.

Características

  • Utiliza el módulo ESP8266-01 económico y fácilmente disponible: - También se pueden utilizar otros módulos ESP8266
  • Fácil de usar: - El escudo compatible de 5V y 3.3V actúa como puente UART a WiFi. Configura un servidor en la IP y el puerto que configura y, una vez conectado, simplemente pasa datos hacia y desde la conexión en serie. No se necesitan bibliotecas en el micro de conexión, solo una conexión en serie (UART), por lo que se puede usar para cualquier microprocesador que tenga un puerto en serie. También se puede modificar para configurarlo para realizar una conexión de cliente (con inicio de sesión opcional) a un servidor remoto.
  • Fácil de configurar: - Cortar un enlace y encender el escudo, lo pone en modo de configuración. En este modo, crea un punto de acceso seguro al que puede conectarse a través de su teléfono móvil o computadora. Luego, abrir https://10.1.1.1 presenta una página web donde puede configurar el nombre y la contraseña de su red y la IP y el número de puerto que el escudo debe escuchar para las conexiones. La página web de configuración utiliza validación HTML5 para verificar la configuración del usuario.

Paso 1: Lista de piezas

Este escudo WiFi ESP8266-01 necesita las siguientes piezas, o similar. Los precios que se muestran aquí son a 30 de agosto de 2015 y excluyen los gastos de envío: -

  • Módulo WiFi ESP8266-01 - ~ US $ 2.50 en línea (aproveche sus posibilidades) O para un producto confiable SparkFun o Adafruit ESP8266-01 - US $ 6.95
  • Uno Protoshield - US $ 1.88 (o ProtoShield Basic para Arduino de Jaycar AU $ 4.95)
  • Cabezal de 36 pines Element14 - US $ 0,95 (o 4 de descuento en los cabezales sin soldadura - 10 pines directamente de SparkFun US $ 1,50 o regleta de terminales de cabecera de 40 pines de Jaycar AU $ 0,95)
  • LD1117V33 Regulador de 3.3V Element14 - US $ 0.67
  • 1 de 1N5819 Elemento de diodo Schottky14 - US $ 0.16 (o Jaycar AU $ 0.80) (Cualquier diodo Schottky servirá)
  • BOURNS 4606X-101-332LF RESISTOR NETWORK, 3K3 - US $ 0.27 (Estas resistencias pull-up pueden tener cualquier valor en el rango de 3K3 a 10K) también puede usar 5 x resistencias discretas 3K3 en su lugar como en Rev 1, p. Resistencias 3K3 - Digikey - US $ 0.52 (o 3K3ohm 1/2 Watt 1% Resistencias de película metálica - Pk.8 de Jaycar AU $ 0.55)
  • 1 de descuento en la resistencia 330R Element14 US $ 0.05 O Resistencia Sparkfun 330 Ohm 1/6 Watt PTH - paquete de 20 US $ 0.95 (o 330ohm 1/2 Watt 1% Resistencias de película metálica - Pk.8 de Jaycar AU $ 0.55)
  • 1 condensador de 0.1uF Element14 - US $ 0.21 O Sparkfun US $ 0.25
  • 1 condensador de 10uF Element14 - US $ 0.11 O Sparkfun US $ 0.45

Costo total ~ $ 6.80 + envío (a partir de agosto de 2015) O ~ US $ 11.25 usando el módulo Sparkfun o Adafruit ESP8266-01

Para programar el escudo con la configuración del botón pulsador y el programa de puente UART a WiFi, también necesita un cable USB a serie. Aquí se usa un cable serial USB a TTL de SparkFun (US $ 9.95) porque tiene extremos bien etiquetados y tiene soporte de controlador para una amplia gama de sistemas operativos, pero también puede usar el cable serial USB a TTL de Adafruit - Cable de depuración / consola para Raspberry Pi que es el mismo precio.

Incluyendo el cable de programación, el costo de un solo escudo WiFi es de ~ US $ 16.75. Una búsqueda rápida encuentra Arduino WiFi Shields que cuestan un mínimo de US $ 30 hasta más de US $ 70. Entonces, incluso incluyendo el costo único del cable de programación, este blindaje es más económico que los otros blindajes disponibles, además de ser mucho más fácil de configurar y usar.

Paso 2: construcción

Construcción
Construcción
Construcción
Construcción
Construcción
Construcción

El esquema anterior (ESP8266_01_WiFi_Shield_R2.pdf) muestra la disposición de las piezas necesarias para este escudo. Solo hay seis componentes, además del módulo ESP8266-01.

El diodo 1N5819 protege la entrada RX ESP8266-01 de las salidas de 5V del microprocesador. La resistencia de 330 ohmios (R6) proporciona protección contra cortocircuitos en la salida TX del ESP8266-01, si el D1 del microprocesador se convierte accidentalmente en una salida. Se necesita algún tipo de suministro 3V3. El pin 3V3 de Arduino UNO no es lo suficientemente fuerte para alimentar el módulo ESP2866. Aquí se utiliza un regulador LD1117V33 de tres terminales de 5V a 3.3V. El condensador de 10uF es necesario para estabilizar el regulador LD1117V33, por lo que se monta lo más cerca posible de la salida del regulador.

Aquí están las vistas superior e inferior del tablero completo.

La parte superior del tablero se ve limpia. La parte inferior del tablero parece un nido de ratas.

Asegúrese de revisar cuidadosamente el cableado cuando haya terminado, particularmente el cableado a los pines del ESP8266-01 y el regulador de tres terminales LD1117V33. Es fácil conectar el pin incorrecto cuando se da la vuelta y se conecta desde la parte inferior. El regulador está montado al revés para mantener la pestaña de metal, que está conectada eléctricamente al pin de salida, alejada de los pines de la placa.

Paso 3: Programación del escudo WiFi

Programación del escudo WiFi
Programación del escudo WiFi
Programación del escudo WiFi
Programación del escudo WiFi
Programación del escudo WiFi
Programación del escudo WiFi

El WiFi Shield debe programarse una vez, solo y nunca más, con la configuración de la página web y el código del puente de serie a WiFi.

Para programar el escudo, siga los pasos dados en https://github.com/esp8266/arduino en Instalación con Boards Manager. Al abrir el Administrador de tableros desde el menú Herramientas → Tablero, seleccione Tipo Contribuido e instale la plataforma esp8266. Este proyecto se compiló utilizando ESP8266 versión 1.6.4-673-g8cd3697. Las versiones posteriores serán mejores, pero pueden tener sus propios errores, ya que la plataforma está evolucionando rápidamente.

Cierre y vuelva a abrir el IDE de Arduino y ahora puede seleccionar “Módulo ESP8266 genérico” en el menú Herramientas → Placa.

También debe instalar la última versión de pfodESP2866BufferedClient.zip. Esta biblioteca funciona con el complemento IDE de ESP8266.com V2.2. Si ha instalado previamente la biblioteca pfodESP2866WiFi, elimine ese directorio de biblioteca por completo.

  1. Descargue este archivo pfodESP2866BufferedClient.zip en su computadora, muévalo a su escritorio o alguna otra carpeta que pueda encontrar fácilmente
  2. Luego use la opción de menú Arduino 1.6.5 IDE Sketch → Import Library → Add Library para instalarlo. (Si Arduino no le permite instalarlo porque la biblioteca ya existe, busque y elimine la carpeta pfodESP8266BufferedClient anterior y luego importe esta)
  3. Detenga y reinicie el IDE de Arduino y en Archivo-> Ejemplos ahora debería ver pfodESP8266BufferedClient.

Configuración de la contraseña del punto de acceso a la configuración

Después de haber instalado la biblioteca pfodESP8266BufferedClient, abra el IDE de Arduino y copie este boceto, ESP8266_WifiShield.ino, en el IDE. Antes de programar el escudo, debe establecer su propia contraseña para el punto de acceso de configuración.

En el modo de configuración, WiFi Shield configura un punto de acceso seguro llamado pfodWifiWebConfig con una contraseña contenida en un código QR adjunto al escudo. Esta conexión segura evita que alguien escuche su conexión mientras configura el ssid y la contraseña de su red real. Debe generar su propia contraseña para sus escudos. Un programa Java SecretKeyGenerator está disponible aquí que genera claves aleatorias de 128 bits y escribe archivos QR.png. Otra alternativa es utilizar QR Droid Private (de Google Play) para crear un código QR para su propia contraseña elegida.

En cualquier caso, debe actualizar #define cerca de la parte superior del boceto con su propia contraseña.

// =============== inicio de la configuración de pfodWifiWebConfig ==============

// actualice esta definición con la contraseña de su código QR //https://www.forward.com.au/pfod/secureChallengeResponse/keyGenerator/index.html #define pfodWifiWebConfigPASSWORD "b0Ux9akSiwKkwCtcnjTnpWp"

También puede establecer su propio nombre de punto de acceso de configuración, si lo desea.

Programando el escudo

Para programar el escudo, retírelo de la placa Arduino, cortocircuite el FLASH_LINK (que se muestra aquí con un enlace de cortocircuito azul en el medio de la placa) y conecte el cable USB a serie como se muestra en la foto. Verifique la foto y su cableado.

El cable RX se conecta a D0 y el cable TX se conecta a D1. El VCC (+ 5V) se conecta al pin de 5V y GND se conecta al pin GND en el blindaje. Corta el FLASH_LINK como se muestra arriba. La foto de arriba es para el cable SparkFun USB a serial. Si está utilizando el cable Adafruit, no tiene los terminales marcados pero está codificado por colores, rojo es alimentación, negro es tierra, verde es TX y blanco es RX.

Verifique cuidadosamente las conexiones VCC y GND, ya que es fácil cortar la fuente de alimentación USB si está a un pin de distancia

Luego, conecte el cable USB a su computadora para encender el ESP8266-01 en modo de programación. Seleccione su puerto COM en el menú Herramientas → Puerto. Deje la frecuencia de la CPU, el tamaño del flash y la velocidad de carga en su configuración predeterminada

Luego seleccione Archivo → Cargar o use el botón de flecha derecha para compilar y cargar el programa. Se cargan dos archivos. Si recibe un mensaje de error al cargar, verifique que las conexiones de sus cables estén enchufados en los pines correctos e intente nuevamente. Una vez que se complete la programación, elimine el enlace de cortocircuito de FLASH_LINK.

Adjuntar el código QR de configuración

Necesitará su contraseña de punto de acceso de configuración única cada vez que necesite configurar el escudo, por lo que es conveniente adjuntarlo como un código QR al escudo (o su estuche). Aquí está el archivo de presentación de Open Office que se utilizó para imprimir el código QR y los detalles de conexión para este proyecto. Reemplace el código QR y el texto de la contraseña con uno único para completar el escudo.

Paso 4: configurar el escudo WiFi

Configuración de WiFi Shield
Configuración de WiFi Shield
Configuración de WiFi Shield
Configuración de WiFi Shield
Configuración de WiFi Shield
Configuración de WiFi Shield

Cualquier escudo WiFi debe configurarse con el nombre de red y la contraseña de la red local. También debe recibir una IP y un número de puerto para escuchar las conexiones. Todos los demás protectores WiFi tienen la IP y el puerto no codificados en el boceto y codifican el nombre y la contraseña de la red o usan un método propietario con aplicaciones propietarias para conectarse a la red local. Esto es muy restrictivo cuando tiene varios dispositivos en un entorno en evolución. Este WiFi Shield utiliza un método de página web de código abierto para configurar tanto el nombre y la contraseña de la red, como la dirección IP y el número de puerto.

El ESP8266-01 tiene un número muy limitado de salidas disponibles, solo GPIO0 y GPIO2. En este diseño, después de encenderlo, el código en el ESP2866-01 verifica si GPIO2 está conectado a tierra y, si es así, configura el ESP8266-01 en modo de configuración. Sin embargo, la conexión a tierra de la entrada GPIO2 debe retrasarse hasta que el ESP8266-01 haya terminado de encenderse. Si GPIO2 está conectado a tierra durante el encendido, el módulo ESP8266-01 no se inicia normalmente. Este retraso en la conexión a tierra de GPIO2 se logra utilizando GPIO0 como tierra. Después de que se inicia el ESP8266-01, el código de configuración () convierte a GPIO0 en una salida y lo establece en BAJO. Esto luego conectará a tierra GPIO2 si el CONFIG_LINK se ha cortocircuitado.

La primera versión de este proyecto (Rev 1), usó una E / S digital adicional de Arduino para hacer esta conexión a tierra, lo que requirió código adicional en el boceto de Arduino. Rev 2+, elimina la necesidad de cualquier código adicional en el boceto de Arduino, aparte de un breve retraso en la parte superior de la configuración () para ignorar la salida de depuración del ESP8266.

Para probar la configuración del escudo WiFi ESP8266-01, simplemente conéctelo a una placa Arduino, cortocircuite CONFIG_LINK (enlace de cortocircuito azul a la izquierda de la imagen) y aplique energía a la placa Arduino.

En este modo de configuración, el módulo ESP8266 configura un punto de acceso seguro con el nombre pfodWifiWebConfig. Este punto de acceso aparecerá en su móvil y en su computadora. Para conectarse a este punto de acceso, deberá ingresar la contraseña única para su escudo. Puede escribir la contraseña a mano, pero es más fácil y más confiable escanear el código QR que adjuntó anteriormente a su escudo, utilizando una aplicación de escáner QR, como QR Droid Private.

Luego copie y pegue la contraseña en la pantalla de configuración de WiFi de su móvil para conectar su móvil al punto de acceso de configuración.

Luego abra un navegador web y escriba la URL https://10.1.1.1 Esto devolverá la página web de configuración.

WiFi Shield llena automáticamente el SSID de red con la red local con la mejor intensidad de señal. Cuál será normalmente el que quieras. Si no, simplemente sobrescriba esa entrada. Debe ingresar un SSID de red, una contraseña y un número de puerto. El campo de la dirección IP es opcional. Si lo deja en blanco, WiFi Shield usará DHCP para obtener su dirección IP en su red local. A menudo es más fácil especificar una dirección IP específica para que pueda conectarse fácilmente a este escudo.

Rev 10 también le permite configurar la velocidad en baudios serial para este escudo. El valor predeterminado es 19200, pero los ejemplos aquí usan 9600, así que cambie la velocidad en baudios a 9600

Si su navegador es compatible con HTML5, la página web validará la entrada antes de enviarla.

Al hacer clic en el botón Configurar, WiFi Shield procesará los resultados y los almacenará en EEPROM y luego mostrará una página de respuesta, como la de arriba, indicándole que apague y encienda para conectarse a su red.

Paso 5: uso de WiFi Shield

Usando el escudo WiFi
Usando el escudo WiFi
Usando el escudo WiFi
Usando el escudo WiFi
Usando el escudo WiFi
Usando el escudo WiFi

En un proyecto completo, montaría un botón pulsador momentáneo en el exterior de la caja de su proyecto conectado a CONFIG_LINK, y le indicaría al usuario que presione el botón pulsador y luego encienda el dispositivo para entrar en el modo de configuración. El código que cargó en el ESP8266-01 también impulsa el pin GPIO0 BAJO del ESP8266 cuando el módulo está en modo de configuración, por lo que puede conectar una resistencia de 270 ohmios y un LED entre el riel de 3.3V y GPIO0 y montar el LED en el exterior de la caja, para indicarle al usuario que está en modo de configuración.

Rev 10 también le permite configurar la velocidad en baudios serial para este escudo. El valor predeterminado es 19200, pero los ejemplos aquí usan 9600, así que cambie la velocidad en baudios a 9600 en la página web de configuración, arriba

Como se mencionó anteriormente, cualquier boceto que cargue en su Arduino u otro microprocesador necesita un breve retraso para omitir la salida de depuración del módulo ESP8266. Aparte de eso, para recibir y enviar datos a través de WiFi, desde su boceto, simplemente lea y escriba en su puerto serie (conectado a D0, D1) a 9600 baudios. Entonces, para ignorar la salida de depuración del ESP8266, agregue un breve retraso en la parte superior del método setup ()

configuración vacía () {

retraso (1000); // espere aquí un segundo deje que ESP8266 complete el encendido // esto también omite la salida de depuración de WiFi Shield al encender // antes de iniciar la conexión serial. …. otro código de configuración aquí

El ejemplo aquí usa un Arduino UNO pero puede usar cualquier microprocesador, ya sea de 5V o 3.3V que tenga un UART. Si utiliza un microprocesador de 3,3 V, deberá suministrar 5 V a la fuente de alimentación de WiFi Shield. Este 5V también se conectará al pin de 5V del blindaje, por lo que debe verificar que sea aceptable para el micro al que está conectando el blindaje.

Como prueba de este escudo, se utilizó pfodApp para encender y apagar el LED del Uno a través de WiFi. Primero se utilizó pfodDesigner para diseñar un menú simple.

NOTA: La última versión de pfodApp envía mensajes keepAlive para que el escudo wifi no se agote

Luego, se generó el código para la conexión en serie a 9600 baudios y se transfirió el archivo a la PC mediante transferencia de archivos wifi.

La configuración del boceto () no necesitaba tener el retraso (1000) agregado porque el analizador pfod ignora cualquier carácter fuera de {}, pero se incluyó porque se recomienda para esta placa WiFi.

El boceto completo, ESP8266_UnoLedControl.ino está aquí. Tenga en cuenta que no hay un código WiFi especial, el boceto solo se lee y escribe en la salida serial.

Retire el escudo WiFi, seleccione Herramientas → Tablero → Uno en el IDE de Arduino y programe este boceto en el UNO. NOTA: debe quitar el protector WiFi para programar el UNO porque el USB está conectado a los pines TX / RX del UNO.

Vuelva a conectar WiFi Shield, se conectará automáticamente a su red local e iniciará un servidor en el puerto que configuró. En pfodApp puede configurar una conexión para este dispositivo. Consulte pfodAppForAndroidGettingStarted.pdf para obtener más detalles.

Luego conéctese para encender y apagar el LED del Uno desde su móvil Android a través de wifi.

¡¡Eso se acabó !!

Paso 6: Extensiones para WiFi Shield y conclusiones

Adición de soporte al cliente

Como se presenta aquí, el escudo WiFi puede configurarse para ejecutarse como un servidor que escucha en una IP y número de puerto específicos. Sin embargo, pfodWifiConfig también brinda soporte para almacenar y recuperar configuraciones del Cliente, así como configuraciones del Servidor. Entonces, al agregar estos campos a la página web de configuración y guardar / cargar los valores del Cliente, también puede usar este Escudo WiFi para conectarse a un servidor remoto, con un nombre de usuario y contraseña de cliente, y cargar datos allí.

Adición de LED y botón pulsador de configuración externos

Como se mencionó anteriormente, en una aplicación real, montaría un botón pulsador momentáneo en el exterior de la caja de su proyecto conectado a CONFIG_LINK, y le indicaría al usuario que presione el botón pulsador y luego encienda el dispositivo para entrar en el modo de configuración. El código que cargó en el ESP8266-01 impulsa el pin GPIO0 BAJO cuando el módulo está en modo de configuración, por lo que puede conectar una resistencia de 270ohm y un LED entre el riel de 3.3V y GPIO0 y montar el LED en el exterior de la caja, para indicar al usuario que está en modo de configuración.

Conclusión

Esta Rev 2 del ESP8266-01 WiFi Shield utiliza el módulo ESP8266-01 económico y fácilmente disponible. También se pueden utilizar otros módulos ESP8266.

Una vez programado, no es necesario volver a programarlo para establecer o cambiar la configuración de red. Todos se pueden configurar a través de una página web en una red WiFi temporal segura.

Es fácil de conectar con cualquier micro que tenga un UART y funcione con microprocesadores de 5V o 3.3V.

No se requieren bibliotecas para conectarse a este escudo. Funciona como un simple puente serial a WiFi.

Recomendado: