probando ethernet

perdonar algun codigo para encender y apagar un LED a traves de internet , en red local me funciona bien uno que te envian al instalar en android una aplicacion que se llama "DomoMaster" pero cuando lo quiero ejecutar en internet no pita , quiza no le doy tiempo al navegador , pero con el mismo sistema y la libreria "webServer" va como un tiro , gracias.-

Tienes redireccionado el puerto en el router hacia la IP y el puerto del arduino?

Si redirecciono al puerto 80 la ip de aurdino 192.168.0.110 y luego entro desde el navegador en la que le asigna internet al router 14.34.56.158 :80 por ejemplo desde otra red, y con el código webserver cargado va bien indicándome en la página web los valores de los pines , el problema es cuando quiero hacerlo con el código de la aplicación domomaster de android , el caso es que sí lo hago en red local poniendo la ip local funciona bien. Por eso me gustaría un código similar para encender aunque sólo sea un led y luego ir ampliandolo con más funciones, gracias

Yo con android no te puedo ayudar :frowning:

Pero si pusieras algún enlace de esa aplicación (domomaster) algo más información, puede que alguien que haya echo algo de android si que pueda :wink:

Bueno lo de android , ya sabes esta en el AppStore de Google y luego te mandan el código por correo , pero no necesito que sea de android me serviría controlar los led desde una web con HTML , pero estoy atascado , le cargo el código de webserver y me muestra el estado de los pines , todo Okl , pero como sería el código si quisiese encender un led gracias y perdona mi ignorancia

He intentado usar este código pero da muchos errores y no lo he llegado a cargar

// unicarlos.dyndns.org:88 (ip de mi router que se actualiza automaticamente
// y funciona con la configuracion del router de abrir puerto e ip
// y se puedan encender y apagar leds (Pines digitales del 2 al 9).
// Pines 10,11,12 y 13 los usa para comunicarse con la ethernet

#include <SPI.h>
#include <WString.h>
#include <Ethernet.h>

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFF, 0xEE}; // direccion MAC de tu Ethernet
byte ip[] = {192, 168, 10, 15}; // ip que le pones dentro de tu red como fija y configurada en tu router
Server server(88); // 88 puerto por el accedemos al servidor. Normalmente seria la 80

int dig[] = {2,3,4,5,6,7,8,9}; // pines digitales a usar. No uso 0 y 1 que son de transmisin serie
// Tampoco uso el 10,11,12 y 13 ya que los uso para la ethernet
int digTotal = 8; // Numero de pines a usar
int vdig[] = {0,0,0,0,0,0,0,0}; // valores iniciales (Tantos como pines usemos)
int pin;
int nivel;
String cad = String(100);

void setup()
{
Ethernet.begin(mac, ip); // inicio la Ethernet
server.begin(); // inicio el servidor
Serial.begin(9600); // inicio el serial monitor
for (int i=0; i < digTotal; i++)
{
pinMode(dig*, OUTPUT); // inicializo los pines digitales como salida*
digitalWrite(dig_,vdig*); // los pongo a nivel bajo LOW=0*
* }
}
void loop()
{
cad = ""; // inicializo la cad donde almaceno los datos recibidos*
* Client cliente = server.available();
if (cliente)
{
while(cliente.connected())
{
if(cliente.available())
{
char c = cliente.read();
cad = cad + c;
Serial.print(c);
if(c == '\n')
{
if (cad.lastIndexOf("dig") > -1) // si la variable cad contiene 'dig' hacer ...
{
pin = pinElegido(cad);
int posicionPin;
for (int i=0; i <digTotal; i++)
{
if (dig == pin)
{
posicionPin = i;
break;
}
}
nivel = nivelElegido(cad);
vdig[posicionPin] = nivel;*_

* Serial.print(pin); // comprobamos que el pin elegido es el correcto*
* Serial.println(" pin. -- ");*
* Serial.print(nivel); // comprobamos su nivel 0=LOW y 1=HIGH*
* Serial.println(" nivel ");*

* digitalWrite(pin, nivel); // activamos o desactivamos el pin elegido*

* } // ... hasta aqui 'dig'*

* if (cad.lastIndexOf("apaga") > -1) // si la variable cad contiene 'apaga' ejecuta*
* { // la funcion apagaTodos()*
* apagaTodos();*
* }*

* if (cad.lastIndexOf("encender") > -1) // si cad contiene 'encender' ejecuta*
* { // la funcion enciendeTodos()*
* enciendeTodos();*
* }*
* // Comienza la transmision de datos desde el servidor al cliente*
* cliente.println("HTTP/1.1 200 OK");*
* cliente.println("Content-Type: text/html");*
* cliente.println();*
* for (int i=0; i < digTotal; i++)*
* {*
* cliente.print("Digital ");*
_ cliente.print(dig*);
cliente.print(" ");*_

_ if (vdig*==1)
{
cliente.println("ON");
cliente.print("<input type=hidden name=dig");
cliente.print(dig);
cliente.print(" value=0>");
}
if (vdig==0)
{
cliente.println("OFF");
// cliente.println("");
cliente.print("");
cliente.print("<input type=hidden name=dig");
cliente.print(dig);
cliente.print(" value=1>");
cliente.print("");
cliente.print("");
}
}
cliente.print("<input type=hidden name=apaga");_

cliente.println(" value=1>");*

* cliente.println("<input type=hidden name=encender");*
* cliente.println(" value=1>");*

* cliente.stop();*
* }*
* }*
* }*
* }*
}
////////////// FUNCIONES /////////////////7
// Funcion: Extrae el pin del array cad (contiene la lectura de lo que el cliente devuelve)
int pinElegido(String cad)
{
* int pos_dig = cad.lastIndexOf("dig");
int pos_igual = cad.lastIndexOf("=");
String vpin1 = cad.charAt(pos_dig+3);
String vpin2 = cad.charAt(pos_dig+4);
_ if (vpin2 != '=')
{
vpin1 += vpin2;
}*_

* int pinElegido = vpin1.toInt();*
* return pinElegido;*
}
// Funcion: Extrae en nivel de la cadena cad
int nivelElegido(String cad)
{
* int pos_igual = cad.lastIndexOf("=");
String v = cad.charAt(pos_igual+1);
_ if (v == 0) return 0;
if (v == 1) return 1;
}
// Funcion para apagar todos los leds al tiempo*

void apagaTodos()
{
* for (int i=0; i < digTotal; i ++)
{
vdig = 0;
digitalWrite(dig, vdig);
}
}
// Funcion para encender todos los leds al tiempo*

void enciendeTodos()
{
* for (int i=0; i < digTotal; i ++)
{
vdig = 1;
digitalWrite(dig, vdig);
}
}*_

hola, es el mismo que estoy intentando cargar yo, he resuelto casi todos los errores, pero me he atrancado en uno:

String vpin2 = cad.charAt(pos_dig+4);

me dice invalid conversion from char a constante char

es una pena dos lineas mas y acab y lo cargo, pero no encuentro la solucion, charAt, no me lo pone en naranja.
ayudita?