Problemi interfacciamento i2c con modulo WI-fi

Salve, vi premetto che sono nuovo e tramite l'università sto cominciando ad imparare le basi di Arduino. Ho un problema riguardo un progetto le cui specifiche mi chiedono di calcolare il dew point, accendere un led quando si supera il valore di soglia e visualizzare su lcd. In syncro devo anche visualizzare sul terminale blynk, storico degl'allarmi, data e allarme con led. Ora fin quando utilizziamo LCD senza interfaccia, il codice gira a meraviglia. Nel momento in cui inseriamo l'interfaccia i2c il codice non ne vuole sapere e m'interrompe anche la connessione. Qualcuno di buon cuore può darmi una mano, ci sto da una settimana ma non riesco a capire cosa modificare.

#include 
#define BLYNK_PRINT Serial
#include 
#include
#include 
#include 
#include
#include
#include 
#include 
#include 

char auth[]= "YsdiaFIARah-YNcHuNfqu2QFl3DpolMy";
char ssid[]= "Optolab_12ng";
char pass[]= "optolab11";

ESP8266 wifi(&Serial);
#define ESP8266_BAUD 115200

BlynkTimer timer;

LiquidCrystal_I2C lcd(0x27, 16, 2); 
WidgetLED led1(V4);
WidgetRTC rtc;

DHT dht(8, DHT11);
  
 #define DPalarm 14
 #define tmin 24
 #define tmax 46
  
 float T;
 double gamma, DP;
 float adc = 0;
 float v = 0;
 float RH = 0;
 int h = A0;
 int count = 0;
  
 String clockDisplay() {                                                                        
 String Time = String(hour()) + ":" + String(minute()) + ":" + String(second()) + " ";
 String Date = String(day()) + "/" + String(month()) + "/" + String(year()) + "\n\n";
  
 return Time + Date;
 }

  
 void sendSensor() {
    
    T = dht.readTemperature();
   
  if ( T  > tmin &&  T < tmax)
  {  
     adc = analogRead(h);
     v = adc * 0.0049; // Convert adc to voltage (5V circuit)
     RH = (v - 0.7633) / 0.037 ;
     gamma = log(RH/ 100) + ((17.62 * T) / (243.5 + T));
     DP = 243.5 * gamma / (17.62 - gamma);
     
     Blynk.virtualWrite(V5, DP );
     
     lcd.clear();
     lcd.setCursor(0,0);
     lcd.print("T:" + String(T, 1) + "C");
     lcd.setCursor(8,0);
     lcd.print("Rh:" + String(RH, 1) + "%");
     lcd.setCursor(3,1);
     lcd.print("DP: " +String(DP, 1) + char(0xDF) + "C" );
     
     Serial.print("T: ");
     Serial.println(T);

     Serial.print("RH: ");
     Serial.println(RH);

     Serial.print("Dew Point: ");
     Serial.println(DP);
  
     Serial.println(" ");
        
        
    if (DP > DPalarm) {
       
       led1.on();
       digitalWrite(7, HIGH);
       count = count+1;
       String alert = String(count) + String(". DP: ") + String(DP, 1) + String(" C ") + clockDisplay();
       Blynk.virtualWrite(V7, alert); 
       }
  else{
       led1.off(); 
       digitalWrite(7, LOW);
           }
  } else {
       lcd.setCursor(0,0);
       lcd.print("Sup.Range.T");
       Serial.print("Sup.Range.T");
        }
}

BLYNK_CONNECTED() {
   rtc.begin();
  }
  
void setup() {  
  Serial.begin(9600);
  dht.begin();
  pinMode(7, OUTPUT); /* i piedini connessi ai led sono uscite(output)*/
  lcd.init();
  lcd.backlight();
  Blynk.begin(auth, wifi, ssid, pass);
  timer.setInterval(9000L, sendSensor); // impostazione del timer di Blynk con periodo 1 s in riferimento alla funzione sensorDataSend  

}  
  
  
void loop() {  
  Blynk.run();
  timer.run();
}

Buongiorno e benvenuto, :) essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD ([u]spiegando bene quali conoscenze hai di elettronica e di programmazione[/u] ... possibilmente [u]evitando[/u] di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il su citato REGOLAMENTO ... Grazie. :)

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread, nessuno ti potrà rispondere, quindi ti consiglio di farla al più presto. ;)