Esp8266 PWM y Blynk

Hola empece hace poco con arduino y estoy queriendo automatizar y controlar algunas cosas de mi casa con un modulo Nodemcu 8266 y blynk hasta ahora todo va bien pero me surgen dos problemas que no se como resolver.
El primero es que tengo una tira led conectada a un modulo de transistores mosfet para controlar la intensidad de la tira pero lo que noto es que con el código que tengo cuando la tira esta prendida me hace un destello al mismo ritmo que me destella el led que esta en el modulo 8266 alguien tiene idea como puedo resolverlo?
En segundo lugar tengo un modulo de reles que controlo perfectamente pero necesitaba un modulo de 2 reles por lo que lo compre y lo instale el problema es que el nuevo modulo la activación es por gnd y no se como cambiar la forma en la que le mando la señal ya que si le mando el voltaje por algún gpio el modulo no se activa.

dejo el codigo que uso para que puedan ver si hay algun error en el.

#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
#include <SPI.h>;
#include <ESP8266WiFi.h>;
#include <BlynkSimpleEsp8266.h>;
#include <SimpleTimer.h>;
#include <DHT.h>;

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "1acad6bbb7a04f0291880811bf7e423a";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "ColgateDeEsta";
char pass[] = "30653444";

const int LEDPin = 13;        // pin para el LED
const int PIRPin = 12;         // pin de entrada (for PIR sensor)
const int RELEC = 4;        // pin para el 

int pirState = LOW;           // de inicio no hay movimiento
int val = 0;                  // estado del pin

#define DHTPIN 2 // What digital pin we're connected to

// Uncomment whatever type you're using!
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22, AM2302, AM2321
//#define DHTTYPE DHT21 // DHT 21, AM2301

DHT dht(DHTPIN, DHTTYPE);
SimpleTimer timer;

// This function sends Arduino's up time every second to Virtual Pin (5, 6, 7 &amp;amp;amp;amp;amp;amp; 8).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void sendSensor()
{
float h = dht.readHumidity();
float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit

if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// You can send any value at any time.
// Please don't send more that 10 values per second.
Blynk.virtualWrite(V5, h); // Humidity for gauge
Blynk.virtualWrite(V6, t); // Temperature for gauge
Blynk.virtualWrite(V7, h); // Humidity for graph
Blynk.virtualWrite(V8, t); // Temperature for graph
}

void setup()
{
Serial.begin(115200); // See the connection status in Serial Monitor
Blynk.begin(auth, ssid, pass);

dht.begin();

// Setup a function to be called every second
timer.setInterval(1000L, sendSensor);
pinMode(LEDPin, OUTPUT); 
pinMode(PIRPin, INPUT);
}

void loop()
{
Blynk.run(); // Initiates Blynk
timer.run(); // Initiates SimpleTimer
float h = dht.readHumidity();
 float t = dht.readTemperature();
{
val = digitalRead(PIRPin);
if (val == HIGH)   //si está activado
{ 
digitalWrite(LEDPin, HIGH);  //LED ON
if (pirState == LOW)  //si previamente estaba apagado
{
  Serial.println("Sensor activado");
  pirState = HIGH;
}
} 
else   //si esta desactivado
{
digitalWrite(LEDPin, LOW); // LED OFF
if (pirState == HIGH)  //si previamente estaba encendido
{
  Serial.println("Sensor parado");
  pirState = LOW;
}
if (t < 25.00)
   {
         digitalWrite(RELEC, HIGH);
               
   }
   else digitalWrite(RELEC, LOW);
}
}
}

Muchas gracias.

Cuantas veces inicializas esto

 float h = dht.readHumidity();
  float t = dht.readTemperature();

lo vi en sendSensor y en el loop.
Elimina el del loop.

Asi debería ser el código desde el loop

  void loop() {
  Blynk.run(); // Initiates Blynk
  timer.run(); // Initiates SimpleTimer
  
  val = digitalRead(PIRPin);
  if (val == HIGH)  { //si está activado
      digitalWrite(LEDPin, HIGH);  //LED ON
      if (pirState == LOW)  { //si previamente estaba apagado
        Serial.println("Sensor activado");
        pirState = HIGH;
      }
  } 
  else { //si esta desactivado
      digitalWrite(LEDPin, LOW); // LED OFF
      if (pirState == HIGH)  { //si previamente estaba encendido
          Serial.println("Sensor parado");
          pirState = LOW;
      }
  }

  if (t < 25.00) 
      digitalWrite(RELEC, HIGH);
  else 
      digitalWrite(RELEC, LOW);
  
}

Hola muchas gracias por tus consejos.

lo declaro ahi por que si lo hago como me decis me tira error al compilarlo

Temperatura_y_relay:109: error: ‘t’ was not declared in this scope

if (t < 25.00)