Buenas, estoy intentando acceder a mi arduino a traves de internet, tengo mi ethernet shield con su ip y tal puesta perfectamente, en local funciona, pero al meter la direccion ip publica me conecta al router de mi casa, he intentado hacer un redireccionamiento de puertos, pero sigue saliendome el router de mi casa al introducir la ip publica, tambien he intentado a poner otros puertos en el servidor web de arduino y nada. Aqui os dejo mi código, espero que me podáis ayudar, gracias y un saludo a todos.
#include <SPI.h>
#include <Client.h>
#include <Ethernet.h>
#include <Server.h>
#include <Udp.h>
// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1,6);
byte gateway[] = {192,168,1,1};
byte subnet[] = {255,255,255,0};
// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(5300);
int PinLed13= 7;
String readString = String(30);
int tones[] = {261, 277, 294, 311, 330, 349, 370, 392, 415, 440};
void setup()
{
// start the Ethernet connection and the server:
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
pinMode(PinLed13,OUTPUT);
}
void loop()
{
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (readString.length()<30) //leer peticion HTTP caracter por caracter
{
readString += c;
}
if (c=='\n') //Si la peticion HTTP ha finalizado
{
int encendido;
if(readString.indexOf("altavoz=On")>0){
tone(7, tones[0]);
delay(800);
encendido = 1;
}
if(readString.indexOf("altavoz=Off")>0){
noTone(7);
encendido = 0;
}
readString=""; //Vaciar el string que se uso para la lectura
//Enviar cabecera HTTP estandar
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
//Crear pagina web HTML
client.println("<html>");
client.println("<head>");
client.println("<title>Pruebas</title>");
client.println("</head>");
client.println("<body>");
client.println("<h1>Centro taleguero de control domestico</h1>");
client.println("<hr>
");
client.println("<h3>Encendido/Apagado de cosas</h3>");
client.println("<hr>
");
client.println("<table>");
client.println("<tr><td>Altavoz</td></tr>");
client.println("<tr><td><form method=get><input type=submit name=altavoz value=On></form></td></tr>");
client.println("<tr><td><form method=get><input type=submit name=altavoz value=Off></form></td></tr>");
client.println("</table>");
client.println("<hr>
");
if(encendido == 1)
client.println("ENCENDIDO");
else
client.println("APAGADO");
client.println("</body>");
client.println("</html>");
client.stop();
}
}
}
}
}