Ayuda comunicación Dyndns y hacer funcionar módulo de reles

Hola soy nuevo en Arduino y voy muy muy perdido, de manera autodidacta he conseguido hacer funcionar las salidas digitales y que activen un módulo de reles Arduino de 8 salidas, y que me funcione en casa a través de la WIFI y una APP.

Ahora lo que pretendo hacer es lo mismo es decir activar los reles pero desde el exterior (En la calle, en el trabajo etc...), a través de la APP .

Creo que el problema lo tengo primero que no se crear un código de trabajo para decirle al arduino que esos reles se activen desde el exterior, pero a la vez también quiero que sí estoy en casa se me activen con el code que sí que me funciona con la WIFI.

O si es posible respetar la config de los reles y crear un code en el que se añadan los valores Ethernet para Dyndns.

Gracias y espero que podáis ayudarme

Por lo que entiendo en tu post, no, no tienes que modificar nada de arduino para conseguir lo mismo desde la calle.

Si accedes a el desde la intranet de tu casa el camino para hacer lo mismo desde la calle no es tarea de arduino es de configurar tu router para hacer lo que en red se llama NAT network adress translator y redireccionar las llamadas que hagas por el puerto (por ejemplo que hayas configurado el 8086 para tu acceso) de tu arduino a la IP de tu arduino.

Pero esto se hace en el router, busca el apartado de redireccionamiento y dile ( a modo de ejemplo, tu cambia los valores a tu gusto) :

Que vas a amplear el puerto 8086 para arduino, que lo vas a redireccionar a la IP del arduino (p.ej: 192.168.0.3)

Luego te hace falta un apuntador de DNS porque lo mas seguro tengas una IP dinamica (que cambia cuando quiere el provedor) y no fija, por lo tanto te hace falta un servicio y un dominio (hay algunos gratuitos) que le llames www.pagina_mia_para_arduino.com:8086 y que apunte a la IP de tu casa que cambiara cuando quiera.

Esto lo consigue un software que comprueba la IP que te ha asignado telefonica (p.ej) y le dice al servidor de nombres DNS que cuando alguien ponga en el navegador www.pagina_mia_para_arduino.com:8086 vaya a la ip de tu casa y ya en tu casa, lo primero que se encuentra es el router con una ip 212.43.222.12 (p.ej) y este redirecciona la llamada al arduino (p.ej: 192.168.0.3)

Gracias por contestarme a esta duda que planteo.

Te cuento.... Lo de abrir puertos en el Router lo tenía claro, además de redireccionar a la Ip que le haya puesto al arduino.

Luego también tengo claro lo del dyndns, la cual he creado un dirección para el direcciónamiento ya que tengo IP DINÁMICA.

Que es lo que veo que hago mal ?, me habían dicho que tenía que crear un código en el cual tenga que meter algún tipo de parámetro valor etc... Para qué el arduino sepa que se conecta desde fuera, ya que en la aplicación APP, pongo la dirección del dominio Ej.: arduinodecasa.dyndns.org y el puerto el cual he abierto y asignado pero no me conecta.

El caso es que me interesaría que funcionase el arduino más desee fuera que con la WIFI de casa.

La verdad es que todo esto de Arduino, me ha gustado desde que lo he conocido, y me plantee a que podría darle aplicación en mi trabajo, yo me dedico a instalar sistemas de seguridad, y me gustaría combinar el arduino con sistemas de alarmas y cctv, para que....? Pues por ejemplo desconectar o conectar la alarma desde la app, o encender dispositivos, reset de equipos, encendidos de luces etc....

Espero que me puedas ayudar, ya que sí por mi trabajo más o menos controló el tema de redes,puertos, Router etc....., pero de arduino no tengo ni idea.

Gracias

Coincido con Heke.
Si tu aplicación funciona desde red interna, lo único que necesitas cambiar en tu programa para que funcione desde el exterior es la dirección de llamada. Desde red interna, normalmente será del tipo 192.168.1.x, y desde la externa bien una ip pública (si tu proveedor te proporciona una ip fija) o un nombre de dominio dynDNS.
Lo demás es problema de puertos, bien en la configuración de tu router, o en los posibles filtros en el equipo (firewall) o de la propia la red. Si no tienes otro server en tu red, te aconsejaría direccionar al Arduino el puerto http (80) que es el que menos problemas te va a dar. Creo que en ese caso no hace falta indicar en la dirección el nombre de puerto.
Saludos.

cierto lo que te dice Noter, si no tienes otro servidor puedes emplear el puerto 80 que es el que se emplea por defecto para http y no necesitas especificarlo en la direccion.

Muchas gracias a todos por contestar tan rápido, ok volveré a repasar la apertura de puertos, porque direcciónado está en el Router, y en principio los puertos están abiertos, le haré un scaner de puertos para verificar el estado y ya os cuento.

Mil gracias.