Tabla de contenido:

¿Cómo hacer su propia puerta de enlace WIFI para conectar su Arduino a la red IP?: 11 pasos (con imágenes)
¿Cómo hacer su propia puerta de enlace WIFI para conectar su Arduino a la red IP?: 11 pasos (con imágenes)

Video: ¿Cómo hacer su propia puerta de enlace WIFI para conectar su Arduino a la red IP?: 11 pasos (con imágenes)

Video: ¿Cómo hacer su propia puerta de enlace WIFI para conectar su Arduino a la red IP?: 11 pasos (con imágenes)
Video: ✅ WIFI Modulo ESP8266 Conectarse y enviar datos por Internet ❗Comandos AT❗ 2024, Mes de julio
Anonim
¿Cómo hacer su propia puerta de enlace WIFI para conectar su Arduino a la red IP?
¿Cómo hacer su propia puerta de enlace WIFI para conectar su Arduino a la red IP?

¡Como mucha gente, crees que Arduino es una muy buena solución para hacer domótica y robótica

Pero en términos de comunicación, los Arduinos solo vienen con enlaces seriales.

Estoy trabajando en un robot que necesita estar conectado permanentemente con un servidor que ejecuta código de inteligencia artificial. Traté de usar la red de RF como estoy acostumbrado a hacer para domótica pero no es lo suficientemente eficiente. A medida que el robot se mueve, no puedo usar Ethernet Arduino Shield. Arduino Wifi Shield es caro y me parece que tiene un diseño antiguo.

Necesitaba algo que pudiera intercambiar datos de una manera muy simple y eficiente con un servidor.

Es por eso que decidí diseñar un Gateway basado en el microcontrolador ESP8266 muy económico y de bajo consumo

Aquí puede encontrar cómo construir el componente electrónico y descargar el software.

Usé esta puerta de enlace para domótica y robótica.

Esto forma parte de una infraestructura de automatización del hogar global que puede ver aquí.

Hice otro instructable que usa un escudo ESP8266 y evita soldar

Suministros

Escribí otro instructivo sobre este tema

Paso 1: ¿Cómo funciona?

Como funciona ?
Como funciona ?

El Gateway se basa en un módulo ESP8266

Este módulo está conectado por un lado con el enlace serial del otro lado a la red IP con el Wifi.

Actúa como una caja negra. Los paquetes de datos que provienen del enlace serie se envían a un puerto IP / Udp y viceversa.

Solo tienes que configurar tu propia configuración (IP, WIFI…) una vez que enciendas el Gateway por primera vez.

Puede transferir datos ASCII y binarios sin procesar (sin HTTP, JSON …)

Está diseñado para conectar objetos con software de servidor hecho en casa que necesitan transferencias rápidas y frecuentes de paquetes cortos de datos.

Es más fácil de usar con Arduino Mega que tiene más de un UART (Arduino Mega, por ejemplo) pero también se puede ejecutar con UNO.

Paso 2: ¿Cuáles son las funciones principales?

En su mayoría, es una caja negra que convierte y envía datos en serie a paquetes UDP en ambos sentidos.

Tiene 3 LED que indican el estado y tráfico del Gateway.

Proporciona un GPIO que Arduino puede usar para esperar a que la puerta de enlace esté conectada a WIFI e IP.

Se ejecuta en 3 modos diferentes que se configuran con interruptores:

  • Modo de puerta de enlace que es el modo normal
  • Modo de configuración utilizado para establecer los parámetros
  • Modo de depuración que es para el modo de depuración

La mayoría de los parámetros se pueden modificar para adaptarse a sus necesidades.

Paso 3: construcción del material

Construcción de material
Construcción de material

En la parte superior de su Arduino necesitará

  • 1 x módulo ESP8266 - Elijo el MOD-WIFI-ESP8266-DEV de Olimex que cuesta alrededor de 5 euros que es bastante fácil de usar.
  • Fuente de alimentación de 1 x 5v
  • 1 regulador de potencia de 3.3v - yo uso LM1086
  • 1 x condensador de 100 microfaradios
  • 1 x módulo APG ULN2803 (se puede reemplazar por 3 x transistores)
  • 8 x resistencias (3 x 1K, 1 x 2K, 1 x 2.7k, 1x 3.3K, 1x 27K, 1x 33k)
  • 3 x LED (rojo, verde, azul)
  • 1 x placa de circuito impreso
  • algunos cables y conectores

Solo durante los pasos de construcción, necesitará

  • 1 x FTDI 3.3v para la configuración
  • Soldador y estaño

Antes de soldar, es importante configurar todos los componentes en la placa y verificar que todo esté bien.

Paso 4: ¡Comencemos con la electrónica en la placa de pruebas

¡Comencemos con la electrónica en la placa de pruebas!
¡Comencemos con la electrónica en la placa de pruebas!

El diseño electrónico está disponible en formato Fritzing

Puedes descargarlo aquí el paso 1:

github.com/cuillerj/Esp8266IPSerialGateway/blob/master/GatewayElectronicStep1.fzz

Simplemente haga como esquema teniendo cuidado con el voltaje.

Recuerde que el ESP8266 no admite voltaje superior a 3.3v. El FTDI debe establecerse en 3.3v.

Paso 5: ¡Vayamos al software

¡Vayamos al software!
¡Vayamos al software!

Empecemos por el lado de Gateway

Escribí el código con Arduino IDE. Por lo tanto, es necesario que el IDE lo conozca como placa ESP8266. Seleccione el tablero apropiado con el menú Herramientas / tableros.

Si no ve ningún ESP266 en la lista, eso significa que puede que tenga que instalar ESP8266 Arduino Addon (puede encontrar aquí el procedimiento).

Todo el código que necesita está disponible en GitHub. ¡Es hora de descargarlo!

El código principal del Gateway está ahí:

Además del estándar Arduino y ESP8266 incluye el código principal, estos 2 incluyen: LookFoString que se usa para manipular cadenas y está ahí:

ManageParamEeprom que se utiliza para leer y almacenar parámetros en Eeprom y está ahí:

Una vez que obtenga todo el código, es hora de cargarlo en el ESP8266. Primero conecte el FTDI a un puerto USB de su computadora.

Le sugiero que compruebe la conexión antes de intentar cargar.

  • Configure el monitor serial Arduino en el nuevo puerto USB.
  • Establezca la velocidad en 115200 tanto cr nl (velocidad predeterminada para Olimex)
  • Encienda la placa de pruebas (ESP8266 viene con software que se ocupa de los comandos AT)
  • Envíe "AT" con la herramienta de serie.
  • Debe obtener "OK" a cambio.

Si no es así, verifique su conexión y observe las especificaciones de su ESP8266.

Si obtuvo "OK", está listo para cargar el código

  • Apague la placa de pruebas, espere unos segundos,
  • presione el microinterruptor negro del ESP8266. Es normal que haya algo de basura en el monitor de serie.
  • Presione en el IDE de carga como para un Arduino.
  • Una vez completada la carga, establezca la velocidad de serie en 38400.

Verá algo como en la imagen.

¡Enhorabuena, subió el código correctamente!

Paso 6: ¡Hagamos la configuración

¡Hagamos la configuración!
¡Hagamos la configuración!

El configGPIO debe establecerse en 1 para ingresar al modo de configuración

Primero escanee el WIFI ingresando el comando: ScanWifi. Verá una lista de la red detectada.

  • Luego, configure su SSID ingresando "SSID1 = su red"
  • Luego configure su contraseña ingresando "PSW1 = su contraseña"
  • Luego ingrese "SSID = 1" para definir la red actual
  • Ingrese "Reiniciar" para conectar el Gateway a su WIFI.
  • Puede verificar que obtuvo una IP ingresando "ShowWifi".
  • El LED azul estará encendido y el LED rojo parpadeando.

Es hora de definir la dirección de su servidor IP ingresando las 4 subdirecciones (servidor que ejecutará el código de prueba de Java). Por ejemplo:

  • "IP1 = 192"
  • "IP2 = 168"
  • "IP3 = 1"
  • "IP4 = 10"

El último paso requerido es configurar el puerto de escucha del servidor UDP ingresando "listenPort = xxxx".

Ingrese "ShowEeprom" para verificar lo que acaba de almacenar en Eeprom

Ahora conecte el GPIO2 a tierra para salir del modo de configuración

¡Tu Gateway está listo para trabajar

Hay algunos otros comandos que puede encontrar en la documentación.

Paso 7: ¡Hagamos el lado de Arduino

¡Hagamos el lado de Arduino!
¡Hagamos el lado de Arduino!
¡Hagamos el lado de Arduino!
¡Hagamos el lado de Arduino!

Primero conecte el Arduino

Si tienes un Mega, será más fácil empezar. Sin embargo, puedes usar un Uno.

Para comprobar su trabajo, lo mejor es utilizar el ejemplo.

Puede descargarlo allí:

Incluye el código SerialNetwork que está aquí:

Simplemente cargue el código dentro de su Arduino.

El LED verde parpadea cada vez que Arduino envía datos.

Paso 8: ¡Hagamos el lado del servidor

¡Hagamos el lado del servidor!
¡Hagamos el lado del servidor!
¡Hagamos el lado del servidor!
¡Hagamos el lado del servidor!

El ejemplo del servidor es un programa Java que puede descargar aquí:

Solo ejecútalo

Mira la consola de Java.

Mira el monitor Arduino.

Arduino envía 2 paquetes diferentes.

  • El primero contiene el estado de los pines digitales 2 a 6.
  • El segundo contiene 2 valores aleatorios, el nivel de voltaje de A0 en mV y el recuento incremental.

El programa Java

  • imprimir los datos recibidos en formato hexadecimal
  • Responda al primer tipo de datos con un valor de encendido / apagado aleatorio para encender / apagar el LED Arduino
  • responda al segundo tipo de datos con el recuento recibido y un valor aleatorio.

Paso 9: ¡Es hora de soldar

¡Es hora de soldar!
¡Es hora de soldar!
¡Es hora de soldar!
¡Es hora de soldar!
¡Es hora de soldar!
¡Es hora de soldar!

¡Funciona en la placa de pruebas!

Es hora de hacerlo más robusto soldando piezas en una PCB

Además de lo que hizo con la placa de pruebas, debe agregar 3 conectores.

  • C1 1 x pin uno que se utilizará para entrar en el modo de rastreo de red.
  • C2 3 x pines uno que se utilizará para cambiar entre el modo de ejecución y el de configuración.
  • C3 6 x pines uno que se utilizará para conectar la puerta de enlace a un Arduino o un FTDI.

C1 conectado a GPIO2 debe conectarse a tierra manualmente si desea activar los seguimientos de red.

C2 conectado a GPIO 4 se puede configurar en 2 posiciones diferentes. Uno que se establece a tierra para el modo de funcionamiento normal y otro que se establece en 3.3v para ingresar al modo de configuración.

Coloque todos los componentes en la PCB de acuerdo con el diagrama y luego comience a soldar para obtener el producto final.

Paso 10: ¡Hagamos la prueba final

Image
Image

Inicie el programa de prueba de Java.

Conecta el Arduino.

Encienda el Gateway.

Y mire la consola Java, el monitor Arduino, el LED Arduino y los LED Gateway.

Paso 11: ¡Puede adaptar este diseño a sus propios requisitos

Respecto al hardware

  • Si elige algún otro ESP8266 tendrá que ajustarse a las especificaciones.
  • Si elige otro regulador de 3.3v, debe entregar más de 500mA y tendrá que adaptar el condensador.
  • Puede modificar las resistencias LED para ajustar el brillo.
  • Puede suprimir todos los LED, pero recomiendo mantener al menos el rojo encendido.
  • Puede reemplazar el ULN2803 por 3 transistores (o menos si elige no mantener los 3 LED).
  • Lo probé, pero debe funcionar con placas Arduino de 3.3v. Simplemente conecte Tx Rx al conector de 3.3v.

Respecto a la configuración

  • Puede almacenar 2 SSID diferentes y cambiar
  • Puede modificar el GPIO utilizado

Respecto al software

Recomendado: