PROGRAMAR C

¿Te acuerdas de lo que te dijeron de las funciones? Sobre todo muy a tener en cuenta cuando veas que el código se repite:

  LDR=mapeanalogico(A0);
  hSuelo=mapeanalogico(A1);
  sensorPozo = mapeanalogico(A2);
  sensorBidon=mapeanalogico(A3);

Definiendo la función correspondiente:

int mapeanalogico(int pin){
  int a=analogRead(pin);
  a=map(a,0,1024,0,100);
  return (a);
}

Sin embargo, cuando un código no se repite, no es conveniente crear una función, pues el resultado será más grande (mismo código más la llamada a la función). Por ello yo no pondría las funciones imprimeSerial e imprimeSerial2. Eso sí, te puedes aprovechar también de sprintf:

        char dataString[20]; // Con 20 bytes habrá suficiente buffer
        sprintf(dataString,"%02d/%02d/%02d %02d:%02d:%02d",
              monthDay, month, year, hour, minute, second);
        Serial.println(dataString);
        char dataString[100]; // buffer 
        sprintf(dataString,"Humedad: %d\tTemp: %d *C\tHsuelo: %d  Lumenes: %d sPozo: %d sBidon: %d Riego: %d Motor: %d", h, t, hSuelo, LDR, sensorPozo, sensorBidon, salRiego, salMotor);
          Serial.println(dataString);