Problemas al enviar datos desde BME280 a través de ESP-01

Hola, buen día a todos,

estos días he estado haciendo pruebas con arduino r3 para obtener datos del módulo BME280 y enviarlos a través del módulo ESP-01 a mi página web.

Resulta que antes hacia las pruebas con DHT11 y me enviaba los datos sin problemas, pero al intentar usar BME280+ESP-01 los datos no se pueden enviar por que los comandos no responden.

Se que las conexiones están mal hechas debido a que están conectados los cables VCC y GND directo a la placa Arduino.

En la imagen no pude encontrar el BME280 de cuatro pines

El código que utilizo es el siguiente:

#include <Seeed_BME280.h>
//#include <Wire.h>
#include <SoftwareSerial.h>

#define RX 10
#define TX 11
//#define DHPIN 8



String AP = "WIFI";       // CHANGE ME
String PASS = "PASS123"; // CHANGE ME
String HOST = "meteo.tal.cl";
String PORT = "80";
String URI = "/update/meteobridge.php";
String pass = "********";
String data;

//NUEVOS
int LG = 2;
int LR = 3;
int LY = 4;
float temperatura;
int humedad;
float presion;

//MODULOS
 // PIN, TIPO
 // DHT dht(DHPIN,11);
 //RX, TX
  SoftwareSerial esp(RX,TX); 
 //INICIA BME280: Temperatura, Humedad y Presion
  BME280 bme280;

void setup() {
  // put your setup code here, to run once:
  esp.begin(115200);
  Serial.begin(9600);

  pinMode(LG, OUTPUT);
  pinMode(LR, OUTPUT);
  pinMode(LY, OUTPUT);

  //reset();
  //connectWifi();
  if(!bme280.init()){
    Serial.println("Device error!");
    activaLED("R");
    delay(1000);
    activaLED("none");
    delay(1000);
    activaLED("R");
    delay(1000);
    activaLED("none");
    delay(1000);
    activaLED("R");
    delay(1000);
    activaLED("none");
    delay(1000);
  }
  sendAT();
}

void reset() {
  esp.println("AT+RST");
  delay(1000);
  if(esp.find("OK")){
    Serial.println("Module Reset");
  }else{
    Serial.println("Modulo No-Reset");
  }
}

void sendAT() {
  esp.println("AT");
  delay(500);
  if(esp.find("OK")){
    Serial.println("AT OK");
    digitalWrite(LG, HIGH);
    digitalWrite(LR, LOW);
    digitalWrite(LY, LOW);
  }else{
    Serial.println("AT FAIL");
    digitalWrite(LG, LOW);
    digitalWrite(LR, HIGH);
    digitalWrite(LY, LOW);
  }
}

//connect to your wifi network
void connectWifi() {
  String cmd = "AT+CWJAP=\"" +AP+"\",\"" + PASS + "\"";
  esp.println(cmd);
  delay(4000);
}

void activaLED(String nled){
  if(nled == "G"){
    digitalWrite(LY, LOW);
    digitalWrite(LR, LOW);
    digitalWrite(LG, HIGH);
  }
  if(nled == "R"){
    digitalWrite(LY, LOW);
    digitalWrite(LR, HIGH);
    digitalWrite(LG, LOW);
  }
  if(nled == "Y"){
    digitalWrite(LY, HIGH);
    digitalWrite(LR, LOW);
    digitalWrite(LG, LOW);
  }
  if(nled == "none"){
    digitalWrite(LY, LOW);
    digitalWrite(LR, LOW);
    digitalWrite(LG, LOW);
  }
  if(nled == "all"){
    digitalWrite(LY, LOW);
    digitalWrite(LR, LOW);
    digitalWrite(LG, LOW);
  }
}

void loop() {
  Serial.println("Enviando datos");
  data = "pass="+pass+"&t="+String(bme280.getTemperature()-2.55)+"&tmax="+String(bme280.getTemperature()-2.55)+"&tmin="+String(bme280.getTemperature()-2.55)+"&h="+String(bme280.getHumidity()+29)+"&d=0&w=0&g=0&b=0&p="+String((bme280.getPressure()/100)+2.17)+"&r=0&rr=0"; // data sent must be under this form //name1=value1&name2=value2.
  Serial.println(data);
  //data = "api_key="+ API +"field1="+String(temperatura)+"&field2="+String(humedad);
  httppost();
  delay(90000);
}

void httppost () {
  activaLED("Y");
  
  esp.println("AT+CIPSTART=\"TCP\",\"" + HOST + "\",80");//start a TCP connection.

  if( esp.find("OK")) {
    Serial.println("TCP connection ready");
    activaLED("G");
  }
  delay(100);

  String postRequest =
"POST " + URI + " HTTP/1.0\r\n" +
"Host: " + HOST + "\r\n" +
"Accept: *" + "/" + "*\r\n" +
"Content-Length: " + data.length() + "\r\n" +
"Content-Type: application/x-www-form-urlencoded\r\n" +
"\r\n" + data;

  String sendCmd = "AT+CIPSEND=";//determine the number of caracters to be sent.
  esp.print(sendCmd);
  esp.println(postRequest.length());

  delay(500);

  if(esp.find(">")) {
    Serial.println("Sending..");
    activaLED("Y");
    esp.print(postRequest);
    
    if( esp.find("SEND OK")) {
      Serial.println("Packet sent");
      activaLED("Y");
      //while (esp.available()) {
      //String tmpResp = esp.readString();
      //Serial.println(tmpResp);
      //}

      // close the connection
      esp.println("AT+CIPCLOSE");
    }else{
      Serial.println("NO");
      activaLED("R");
    }
  }
}

Tu código esta lleno de delay() y luego preguntas porque no funciona.
A los dispositivos I2C estas cosas no le sirven y en general a todo tu programa no le sirve.

Ve a Documentación => Indice de temas tutoriales => millis() y también lee máquina de estados.