El tema, ahora que pusiste el código completo, es que la URL se inicia otra vez con un payload vacío. Proba así, definiendo todas las variables de manera global a ver si anda. while(1) tampoco va porque ya tenes el void loop() que hace eso.
#include <WiFi.h>
#include <HTTPClient.h>
const char* ssid = "WIFI";
const char* password = "pass";
int mediaI = 0; // definimos la variable intensidad
int mediaV2 = 0; // definimos la variable intensidad
String payload;
String URL="http://www.web.org/monitor.php?valor1="+ String(mediaI)+"&valor2="+ payload+"&valor3="+ String(mediaV2);
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.println("Connecting to WiFi..");
}
Serial.println("Connected to the WiFi network");
}
void loop() {
mediaI = mediaI + 1;
if (WiFi.status() == WL_CONNECTED) { //Check WiFi connection status
HTTPClient http; //Declare an object of class HTTPClient
http.begin(URL);
int httpCode = http.GET(); //Send the request
if (httpCode > 0) { //Check the returning code
payload = http.getString(); //Get the request response payload
URL="http://www.web.org/monitor.php?valor1="+ String(mediaI)+"&valor2="+
payload+"&valor3="+ String(mediaV2);
Serial.println(payload); //Print the response payload
Serial.println(URL);
}
http.end(); //Close connection
delay(5000); //Send a request every 1 seconds
}
}