Tabla de contenido:

Puerta de enlace serial UDP / IP para Arduino basada en ESP8266 Shield: 8 pasos
Puerta de enlace serial UDP / IP para Arduino basada en ESP8266 Shield: 8 pasos

Video: Puerta de enlace serial UDP / IP para Arduino basada en ESP8266 Shield: 8 pasos

Video: Puerta de enlace serial UDP / IP para Arduino basada en ESP8266 Shield: 8 pasos
Video: Conexion WIFI |ESP8266 | IoT 2021 2024, Noviembre
Anonim
Puerta de enlace serial UDP / IP para Arduino basada en ESP8266 Shield
Puerta de enlace serial UDP / IP para Arduino basada en ESP8266 Shield

Ya publiqué en 2016 este instructivo "Cómo hacer tu propia puerta de enlace Wifi para conectar tu Arduino a la red IP". Desde que hice algunas mejoras en el código y todavía estoy usando esta solución.

Sin embargo, ahora hay algunos escudos ESP8266 que permiten hacer lo mismo sin soldar siempre que no esté utilizando placas Micro o Nano.

Este instructivo explicará cómo usar estos escudos ESP82 como puerta de enlace serial UDP / IP.

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

Más información sobre el escudo con este instructable

Suministros

1 Arduino Mega (lo mejor es tener al menos 1 Mega para desarrollo y 1 Uno para fase de ejecución)

1 convertidor Rokoo ESP8266 ESP-12E UART WIFI

1 FTDI de 3,3 v

2 alambres para tablero

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.

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

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

Pero la puerta de enlace también puede actuar por sí misma enviando información interna al servidor y recibiendo algunos comandos del servidor.

Arduino puede enviar y recibir mensajes hacia / desde un servidor conectado a Internet simplemente imprimiendo / leyendo un enlace en serie. No es necesario que el desarrollador de Arduino se preocupe por el protocolo IP.

Además de eso, proporciona un GPIO que puede ser utilizado por Arduino para verificar que la puerta de enlace está conectada correctamente al WIFI y la puerta de enlace puede cambiar automáticamente entre 2 SSID diferentes en caso de falla.

La puerta de enlace tiene 2 modos de ejecución diferentes que se seleccionan configurando un GPIO

Poniendo GPIO a tierra y la puerta de enlace entra en modo de configuración.

Si se libera GPIO y la puerta de enlace entra en modo de ejecución de puerta de enlace.

Además de eso, la configuración de la puerta de enlace UDP / IP se puede modificar de forma remota

Paso 3: construcción del material

Construcción de material
Construcción de material

Se requieren muy pocas cosas

1 Escudo ESP8266 - Encontré este Módulo de placa extensible de escudo WiFi serie UNO R3 ESP8266 por menos de 9 €

1 UNO que es el objetivo de Arduino

1 Mega que es la herramienta de desarrollo de arduino (puedes prescindir pero es bastante difícil de depurar)

1 FTDI 3.3 / 5v para desarrollo

Algunos cables

Paso 4: descargue el código de la puerta de enlace

Descarga el código de la puerta de enlace
Descarga el código de la puerta de enlace

Durante este paso, el Arduino solo se usa para alimentar (con USB u otra fuente de energía) en el escudo ESP8266

Conecte el ESP8266 GPIO4 a tierra (para ingresar al modo de configuración)

Tenga cuidado de configurar el FTDI a 3.3v como lo requiere el escudo

Conecte el FTDI al blindaje (RX a TX)

Coloque el interruptor de protección en 1: apagado 2: apagado 3: encendido 4: encendido

Conecte el lado USB del FTDI a su computadora

Reinicie el escudo con el botón ESP-RST

Descargue el código de Gateway allí en GitHub

Abra el IDE de Arduino

  • Seleccione el puerto del monitor FTDI
  • Abra el monitor serie IDE: establezca la velocidad en 38400
  • Seleccione la placa del módulo genérico ES8266
  • Actualice el firmware del escudo con el código de la puerta de enlace

Establecer interruptor 3: apagado 4: apagado

Abra el monitor serial IDE

Reinicie el escudo con el botón ESP-RST

Debe ver mensajes en el monitor comenzando con "Inicialización EEPROM" "Inicialización completada"….

Es hora de hacer la configuración

Paso 5: Hagamos la configuración de la puerta de enlace

Al descargar el código de la puerta de enlace por primera vez, la Eeprom ESP8266 se inicializará con los valores predeterminados. Verá este tipo de mensajes "establecer parámetro: x tamaño: yy"

Puede encontrar estos valores dentro de la definición de código de paramValue. Por supuesto, puede cambiar estos valores predeterminados antes de descargar el código, pero también puede establecer su configuración por comando más adelante. Esto es mejor si planea tener una puerta de enlace múltiple y mantener solo una versión del código.

Utilice el puerto serie del monitor para enviar el comando (configurado en NL y CR).

Como el SSID no está definido actualmente, espere "No se pudo conectar a su segundo intento de id: 5"

Entonces se iniciará automáticamente un escaneo de WIFI

Es hora de configurar sus SSID con los siguientes comandos:

  • SSID1 = yourchoice1
  • PSW1 = yourpsw1
  • SSID2 = yourchoice2
  • PSW2 = yourpsw2
  • SSID = 1 (para elegir con qué SSID comenzar)
  • ReiniciarWifi

Después de unos segundos puede verificar la conexión con el comando "ShowWifi". Debe ver la dirección IP que la puerta de enlace obtuvo de su servidor DNS. Si es el caso es hora de ir más lejos

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"

Al enviar un comando vacío, verá todos los comandos admitidos que puede usar más adelante para adaptarse a sus requisitos. Todos los valores de los parámetros se almacenan en Eeprom y necesitan un reinicio para ser tenidos en cuenta.

Retire el cable de configuración

El escudo ahora funciona como una puerta de entrada.

Paso 6: descargue el ejemplo de código de Arduino

Descargue el ejemplo de código Arduino
Descargue el ejemplo de código Arduino

Primero descargue el código principal de Arduino allí en GitHub

Luego descargue el código Arduino, esta definición de comandos y este código de enlace serial en sus bibliotecas

Luego abra el código principal con un nuevo IDE de Arduino

Apague el Shield Switch 1 y 2 para liberar el enlace serial Arduino 0 para la conexión USB

Restablecer el escudo

Conecte los cables FTDI al Mega Serial 2 (TX FTDI a RX Mega y así sucesivamente)

Inicie un nuevo Arduino IDE (o una herramienta TTY), conecte el FTDI Usb y comience a monitorear el enlace serial

Sube el código Arduino dentro de Mega

Active el interruptor de protección 1 y 2 para conectar el enlace serie Arduino 0

Restablecer el escudo

Debe ver este mensaje "iniciar impresión USB" en el monitor

Paso 7: ¡Hagamos el lado del servidor

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

Simplemente ejecútelo y mire la consola de Java y mire el monitor FTDI

Verá intercambios de datos entre el servidor y Arduino

Paso 8: para ir más lejos

Para llegar más lejos
Para llegar más lejos
Para llegar más lejos
Para llegar más lejos

Este ejemplo de código de Arduino se basa en un marco que forma parte de mi infraestructura de automatización del hogar.

Si está interesado en esta infraestructura, hágamelo saber. Publicaré fuentes.

Si solo desea usar la puerta de enlace, puede simplificar el código Arduino.

Después de haber desarrollado y probado su código en un Arduino Mega, ¡puede reemplazarlo fácilmente por un Uno!

Además de eso, puede conectar un cable entre Arduino GPIO 7 y ESP8266 GPIO 5 si desea que su Arduino verifique la conexión Wifi

Recomendado: