Estación Meteorológica Arduino. (Solucionado)

Hola , estoy construyendo una estación meteorológica con varios sensores para tener en un principio datos de humedad, temperatura, presión y radiación solar.

Hasta aquí bien. saca los datos por el serial sin problemas, pero al meter la librería ethernet no funciona. He configurado el router y si da salida al exterior de la Lan local.

Os pongo el código a ver si me podéis ayudar:

#include <SPI.h>
#include <Wire.h>  // libreria I2C
#include <dht.h>   // Libreria Sensor Temp/Humedad
#include <Ethernet.h>

#define ADDRESS_SENSOR 0x77      // Sensor address
#define DHT22_PIN 6             // Pin del sensor DHT22
#define pin_sensorUV 2          // Pin A2 Analogico del sensor UV

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
IPAddress ip(192,168,1,177);       
//IPAddress gateway(192, 168, 1, 1);
//IPAddress subnet(255, 255, 255, 0);
EthernetServer server(83);       // puerto de salida

dht DHT;

int16_t  ac1, ac2, ac3, b1, b2, mb, mc, md; // Store sensor PROM values from BMP180
uint16_t ac4, ac5, ac6;                     // Store sensor PROM values from BMP180
// Ultra Low Power       OSS = 0, OSD =  5ms
// Standard              OSS = 1, OSD =  8ms
// High                  OSS = 2, OSD = 14ms
// Ultra High Resolution OSS = 3, OSD = 26ms
const uint8_t oss = 3;                      // Set oversampling setting
const uint8_t osd = 26;                     // with corresponding oversampling delay 

float T, P;       // Set global variables for temperature and pressure 
char c;

int uvIndice;
int *ptr_uv= &uvIndice;

void setup()
{
 Wire.begin();                             // Activate I2C
 Serial.begin(9600);                       // Set up serial port
 
 // Comienzo de la conexión
  Ethernet.begin(mac, ip);
  server.begin();

 init_SENSOR();                            // Initialize baro sensor variables
 delay(100);
}

void loop()
{
 int32_t b5;
 
 int chk = DHT.read22(DHT22_PIN);

 b5 = temperature();                       // Read and calculate temperature (T) 

 Serial.print("Temperature: ");
 Serial.print(T, 2);
 Serial.print(" C, ");
 
 P = pressure(b5);                         // Read and calculate pressure (P) 

 Serial.print("Pressure: ");
 Serial.print(P, 2);
 Serial.println(" mbar, ");

  float Temp =(DHT.temperature);
  Serial.print(Temp);
  Serial.print(" C temp ,");
  float Hum =(DHT.humidity);
  Serial.print(Hum);
  Serial.println("% Humedad");
  
 
  float TempRoc= pow((Hum/100), 0.125)*(110+Temp)-110; // calcula la temp de Rocio
  Serial.print(TempRoc);                    // combierte el float a solo dos decimales
  Serial.println(" C Temperatura de Rocio");
  
  CalculoUV();
  Serial.print(" Indice UV: ");
  Serial.print(*ptr_uv);    // puntero que contiene el valor UV
  Serial.println();
  
  float metros= 125*(Temp-TempRoc);   // Formula para calcula base de los Cumulus
  Serial.print("Altura Base Cumulus: ");
  Serial.print(metros);
  Serial.println(" m");
  Serial.println();
  Serial.println();
  
  /* Salida HTML por ethernet  */
  
  EthernetClient client = server.available();
  if (client) {
    // una petición http termina con una línea en blanco
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);
        //Si se llega al final de la línea se recive un nuevo carácter de
        //línea y si se trata de una línea en blanco la petición http ha terminado
        //así que se envía la respuesta 
        if (c == '\n' && currentLineIsBlank) {
          // cabezera típica http
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connection: close");  // se cierra la conexión una vez se ha respondido a la petición
	  client.println("Refresh: 5");  // se refresca la página automáticamente cada 5 segundos
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");
          
          int32_t b5;
 
           int chk = DHT.read22(DHT22_PIN);

           b5 = temperature();                       // Read and calculate temperature (T)
           P = pressure(b5); 
           float Temp =(DHT.temperature);
           float Hum =(DHT.humidity);
           float TempRoc= pow((Hum/100), 0.125)*(110+Temp)-110;
           float metros= 125*(Temp-TempRoc);
           
           

          client.println("<head><title>Mi estacion Meteorologica</title></head>”");
          client.println();
          client.println("Temperatura");
          client.print(Temp);
          client.println(" C");
          client.print("Humedad");
          client.print(Hum);
          client.println(" %");
          client.print("Punto de Rocio");
          client.print(TempRoc);
          client.println(" C");
          client.print("Pesion");
          client.print(P ,2);
          client.println(" mbar");
          client.print(" Indice UV: ");
          client.println(*ptr_uv);
          client.print("Altura Base Cumulus: ");
          client.print(metros);
          client.println(" m");
           }
          client.println("</html>");
          break;
        }
        if (c == '\n') {
          // se comienza una nueva línea
          currentLineIsBlank = true;
        } 
        else if (c != '\r') {
          // se ha obtenido un carácter en la línea actual
          currentLineIsBlank = false;
        }
      }
    }
    delay(10);
    // se cierra la conexión
    client.stop();
    //Serial.println("client disonnected");
    
    
    delay(5000);
 }
  
                  Aqui despues estarian las funciones, no las pongo por espacio maximo permitido

He revisado la parte ethernet con el código de ejemplo del servidor de la librería y esta bien. Y he vuelto a poner la variables a imprimir por la web por no tener visión a dichas variables desde otro bloque.

Al meter la dirección y el puerto solo imprime

no lo entiendo.

Gracias de antemano.

Ya esta solucionado. Hay que poner todo el código después del corchete final del if (c == '\n' && currentLineIsBlank) {.

Y no hace falta volver a declarar todas la varibles dentro