Probando "Web Server" con CONTROLLINO MEGA

Buenas tardes,

Estoy tratando de probar el programa de ejemplo Web Server para poder enviar datos a través de la conexión Ethernet con mi CONTROLLINO MEGA, el cual dispone del chip EthernetW5100.
El programa es el siguiente (es el que carga IDE por defecto, solo he cambiado detalles super pequeños):

> #include <Controllino.h>
> #include <SPI.h>
> #include <Ethernet.h>
> /*
>  Web Server
> 
>  A simple web server that shows the value of the analog input pins.
>  using an Arduino WIZnet Ethernet shield.
> 
>  Circuit:
>  * Ethernet shield attached to pins 10, 11, 12, 13
>  * Analog inputs attached to pins A0 through A5 (optional)
> 
>  created 18 Dec 2009
>  by David A. Mellis
>  modified 9 Apr 2012
>  by Tom Igoe
>  modified 02 Sept 2015
>  by Arturo Guadalupi
>  
>  */
> 
> 
> 
> // 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, 0xF2, 0xE2
> };
> IPAddress ip(192, 168, 1, 95);
> 
> // Initialize the Ethernet server library
> // with the IP address and port you want to use
> // (port 80 is default for HTTP):
> EthernetServer server(80);
> 
> void setup() {
>  pinMode(CONTROLLINO_D3,OUTPUT);
> 
>   // Open serial communications and wait for port to open:
>   Serial.begin(9600);
>   while (!Serial) {
>     ; // wait for serial port to connect. Needed for native USB port only
>   }
>   Serial.println("Ethernet WebServer Example");
> 
>   // start the Ethernet connection and the server:
>   Ethernet.begin(mac, ip);
> 
>   // Check for Ethernet hardware present
>   if (Ethernet.hardwareStatus() == EthernetNoHardware) {
>     Serial.println("Ethernet shield was not found.  Sorry, can't run without hardware. :(");
>     while (true) {
>       delay(1); // do nothing, no point running without Ethernet hardware
>     }
>   }
>   if (Ethernet.linkStatus() == LinkOFF) {
>     Serial.println("Ethernet cable is not connected.");
>   }
> 
>   // start the server
>   server.begin();
>   Serial.print("server is at ");
>   Serial.println(Ethernet.localIP());
> 
> }
> 
> void loop() {
>   // listen for incoming clients
>   EthernetClient client = server.available();
>   if (client) {
>     Serial.println("new client");
>     // an HTTP request ends with a blank line
>     bool currentLineIsBlank = true;
>     while (client.connected()) {
>       if (client.available()) {
>         char c = client.read();
>         Serial.write(c);
>         // if you've gotten to the end of the line (received a newline
>         // character) and the line is blank, the HTTP request has ended,
>         // so you can send a reply
>         if (c == '\n' && currentLineIsBlank) {
>           // send a standard HTTP response header
>           client.println("HTTP/1.1 200 OK");
>           client.println("Content-Type: text/html");
>           client.println("Connection: close");  // the connection will be closed after completion of the response
>           client.println("Refresh: 5");  // refresh the page automatically every 5 sec
>           client.println();
>           client.println("<!DOCTYPE HTML>");
>           client.println("<html>");
>           // output the value of analog input pin 4
>          
>             int sensorReading = analogRead(CONTROLLINO_A4);
>             client.print("analog input ");
>             client.print("a4");
>             client.print(" is ");
>             client.print(sensorReading);
>             client.println("<br />");
>   
>           client.println("</html>");
>           break;
>         }
>         if (c == '\n') {
>           // you're starting a new line
>           currentLineIsBlank = true;
>         } else if (c != '\r') {
>           // you've gotten a character on the current line
>           currentLineIsBlank = false;
>         }
>       }
>     }
>     // give the web browser time to receive the data
>     delay(1);
>     // close the connection:
>     client.stop();
>     Serial.println("client disconnected");
>   }
> }

La dirección IP que le asigno al Controllino es una a la que he hecho PING para comprobar que no está siendo ocupada por otro dispositivo.
Cuando lo ejecuto todo parece ir bien, el monitor serie muestra la siguiente salida:

image

Llegado a este punto, entiendo que si cargo la dirección 192.168.1.95 en mi navegador (CHROME), debería abrirse verse la lectura del codigo (en este caso, la lectura del pin analog. 4).

Lo que sucede es que la página no carga y al final acabo obteniendo el siguiente mensaje por parte del navegador:

Sé que no soy el primero al que le ocurre este problema, pero ninguna de las soluciones que he podido ver me sirve de ayuda.

UN DETALLE IMPORTANTE: La red a la que estoy conectado es la de la empresa donde trabajo, ¿es posible que por temas de seguridad/firewall de la configuración de la empresa no pueda acceder a la página?

Muchas gracias por adelantado

Esa pregunta es para el administrador de red de tu empresa, pero intenta con otro dispositivo, si las MAC de cada dispositivo están registradas en lista blanca es muy seguro que no puedas ver la pagina por esa razón.

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.