ESP8266 no se conecta usando GET

Buenas Expertos,
He estado haciendo algunas pruebas con Arduino UNO + ESP8266 y he tenido muchos problemas para enviar datos a una web de prueba usando método GET (y AT commands).
Este es mi código:

#include <SoftwareSerial.h>
//#include <DHT.h>;
SoftwareSerial ESP8266(2, 3); // Rx,  Tx
/* DHT SENSOR SETUP */

//#define DHTTYPE DHT11
//#define DHTPIN  A0

//DHT dht(DHTPIN, DHTTYPE,11);
float humidity=0, temp_f=0;  
long writingTimer = 17; 
long startTime = 0;
long waitTime = 0;


boolean relay1_st = false; 
boolean relay2_st = false; 
unsigned char check_connection=0;
unsigned char times_check=0;
boolean error;

void setup()
{
  Serial.begin(9600); 
  ESP8266.begin(9600); 
  //dht.begin();
  startTime = millis(); 
  ESP8266.println("AT+RST");
  delay(2000);
  Serial.println("Connecting to Wifi");
   while(check_connection==0)
  {
    Serial.print(".");
  ESP8266.print("AT+CWJAP=\"DDONETCH_2PISO\",\"donetchpropiedades\"\r\n"); //Cambié los datos obviamente.
  ESP8266.setTimeout(5000);
 if(ESP8266.find("WIFI CONNECTED\r\n")==1)
 {
 Serial.println("WIFI CONNECTED");
 break;
 }
 times_check++;
 if(times_check>3) 
 {
  times_check=0;
   Serial.println("Trying to Reconnect..");
  }
  }
}

void loop()
{
  waitTime = millis()-startTime;   
  if (waitTime > (writingTimer*1000)) 
  {
    readSensors();
    writePHP();
    startTime = millis();   
  }
}


void readSensors(void)
{
  temp_f = temp_f+0.5;
  humidity = humidity+0.5;
}


void writePHP(void)
{
  startConection();
  // preparacao da string GET
  String getStr = "GET /update.php?";
  getStr +="&field1=";
  getStr += String(temp_f);
  getStr +="&field2=";
  getStr += String(humidity);
  getStr += "\r\n\r\n";
  GetResponse(getStr); 
}

void startConection(void)
{
  ESP8266.flush();
  String cmd = "AT+CIPSTART=\"TCP\",\"";
  cmd += "roborta.000webhostapp.com"; //ACÁ CREO QUE ESTÁ EL PROBLEMA, DEBERÍA DE SER UN IP DEDICADO ¿O NO?
  cmd += "\",80";
  ESP8266.println(cmd);
  Serial.print("Start Commands: ");
  Serial.println(cmd);

  if(ESP8266.find("Error"))
  {
    Serial.println("AT+CIPSTART error");
    return;
  }
}

String GetResponse(String getStr)
{
  String cmd = "AT+CIPSEND=";
  cmd += String(getStr.length());
  ESP8266.println(cmd);
  Serial.println(cmd);

  if(ESP8266.find(">"))
  {
    ESP8266.print(getStr);
    Serial.println(getStr);
    delay(500);
    String messageBody = "";
    while (ESP8266.available()) 
    {
      String line = ESP8266.readStringUntil('\n');
      if (line.length() == 1) 
      { 
        messageBody = ESP8266.readStringUntil('\n');
      }
    }
    Serial.print("MessageBody received: ");
    Serial.println(messageBody);
    return messageBody;
  }
  else
  {
    ESP8266.println("AT+CIPCLOSE");     
    Serial.println("AT+CIPCLOSE"); 
  } 
}

Finalmente, viendo un video de Arduino + ThingSpeak me di cuenta que el problema estaba en que estaba usando una web gratis sin IP dedicado. ¿Estoy en lo correcto? ¿Es posible usar método GET sin IP dedicado?

Si efectivamente se necesita un IP dedicado ¿existe algún hosting que dé IP dedicdo gratis?
(EDITADO) el Arduino UNO +ESP8266 está ubicado en una red local, pero el sitio al que me quiero comunicar esta en 000webhostapp.

Saludos,

sketch_feb24a_cambios.ino (2.64 KB)

Si con IP dedicada te refieres a tener una IP publica eso te lo da tu proveedor de internet, algunos proveedores solo ofrecen CG-NAT para abaratar, otros pueden sacarte de el solicitandolo y otros dan IP publica directamente.

No nos has aclarado si el servidor esta en tu propia red o en internet, en el caso de estar en internet se deben abrir los puertos en el router remoto para que acepte la conexión.

krnlpanic, El Arduino UNO + ESP8266 está en una red local y está enviando información a una página alojada en 000webhostapp usando método GET.
Uso midominio.000webhostapp.com en vez de la IP, pero no consigo conectarme. Sin embargo cuando trato de hacerlo a ThingSpeak no tengo problema.

Por favor lee las Normas del foro y edita tu post inicial de modo que se pueda leer tu código usando etiquetas.
Por otro lado cada vez que respondas evita repetir lo que algún forero te dice, ya que también se considera una falta a las normas.

Abriendo la web por navegador si funciona, pero añadiendo los campos que salen en el código aparece un error por lo que debes revisar la dirección exacta para enviar los datos.

Esto es lo que intenta cargar

http://roborta.000webhostapp.com/update.php?&field1=xx&field2=xx