Me esta volviendo loco

Buenas buenas, tengo una situacion.
Lo que pasa es que tengo un modulo NodeMCU LoLin ESP8266 Development Board (CP2102 USB Driver)
Y lo quiero conectar con firebase y mandar datos, ya utilice un sensor de gota de lluvia y funciona bien y todo, pero el problema es al utilizar el dth11 ya puse el codigo y llame librerias pero al imprimir a pantalla me sale "nan" en los valores me prodrian ayudar?

Mi codigo es el siguiente:
#include <ESP8266WiFi.h>
#include <FirebaseArduino.h>

// Incluimos librería
#include "DHT.h"

// Definimos el pin digital donde se conecta el sensor
#define DHTPIN 4
// Dependiendo del tipo de sensor
#define DHTTYPE DHT11

// Inicializamos el sensor DHT11
DHT dht(DHTPIN, DHTTYPE);

// Variables
#define FIREBASE_HOST "iotutng.firebaseio.com"
#define FIREBASE_AUTH "yYpokIYUzvMNKCt81C3bzVgpw1pslxNxhWBEdKC5"
#define WIFI_SSID "NASA_5.2"
#define WIFI_PASSWORD "4488567UT"

int agua = 0;
void setup() {
Serial.begin(115200);

dht.begin();

// connect to wifi.
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("connecting");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println();
Serial.print("connected: ");
Serial.println(WiFi.localIP());

Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);

pinMode(2, INPUT);
}

int n = 0;

void loop() {
// set value
agua = digitalRead(2);
Firebase.setInt("lluvia", agua);
// handle error
if (Firebase.failed()) {
Serial.print("setting /number failed:");
Serial.println(Firebase.error());
return;
}

// Leemos la humedad relativa
float h = dht.readHumidity();
// Leemos la temperatura en grados centígrados (por defecto)
float t = dht.readTemperature();

Serial.println("Humedad: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(t);
delay(1000);
}

Por favor edita tu post usando etiquetas de código.
Tambien cambia el título: Me esta volviendo loco no es una referencia a tu consulta.
Quedas advertido!!
Lee las Normas del foro