Progetto camera albergo problemi configurazione dht11

Salve a tutti, Sto simulando una camera di albergo con controllo accessi tramite lettore di card rfid, che fa accendere una luce quando la luminosità e bassa grazie alla fotoresistenza che ho integrato. Vado al dunque ho inserito un sensore dht 11, ho preso lo sketch dal kit 37 sensori elegoo; il mio problema è che non riesco a fare visualizzare la temperatura sul monitor seriale. Posto lo sketch, se c'è qualche anima pia che mi può aiutare grazie...

Sketch

digita o incolla il codice qui

#include <MFRC522.h>
#include <string.h>
#include <dht_nonblocking.h>
#define GREEN_LED_PIN 2
#define RED_LED_PIN 3
#define RELAY_PIN 8
#define DHTPIN 7
#define DHT_SENSOR_TYPE DHT_TYPE_11

MFRC522 rfid(10, 9);

static const int DHT_SENSOR_PIN = 7;
DHT_nonblocking dht_sensor( DHT_SENSOR_PIN, DHT_SENSOR_TYPE );

String users[] = {"f3e11e15"};
int usersSize = sizeof(users)/sizeof(String);
int relay = 8;
int val = 0;                    // variable for reading the pin status
int inputPin = 6;               // choose the input pin (for PIR sensor)
int pirState = LOW;             // we start, assuming no motion detected
int fotoresistenzaPin = A0;
int soglia = 500;               //fotoresistors

void setup(){
 Serial.begin(115200); 
 SPI.begin();
 rfid.PCD_Init();
 pinMode(GREEN_LED_PIN, OUTPUT);
 pinMode(RED_LED_PIN, OUTPUT);
 pinMode(RELAY_PIN, OUTPUT);
 pinMode(inputPin, INPUT);     // declare sensor as input
 pinMode(DHT_SENSOR_PIN, INPUT);
}


void loop(){
 if(rfid.PICC_IsNewCardPresent() && rfid.PICC_ReadCardSerial()){
   char a = uid = getUID();
   if(checkUID(uid)){
     blinkLed(GREEN_LED_PIN, 2000, 1);
     digitalWrite(RELAY_PIN, HIGH);
   }else{
     blinkLed(RED_LED_PIN, 400, 2);
     digitalWrite(RELAY_PIN, LOW);
   }
   }else if{
     float temperature;
     float humidity;

 if(dht_sensor.measure(&temperature, &humidity)){
   Serial.print( "T = " );
   Serial.print( temperature, 1 );
   Serial.print( " deg. C, H = " );
   Serial.print( humidity, 1 );
   Serial.println( "%" );
 }
}
   }
 }
 delay(100);
 
  val = digitalRead(inputPin);  // read input value
 if (val == HIGH) {            // check if the input is HIGH
   digitalWrite(relay, HIGH);  // turn LED ON
   if (pirState == LOW) {
     // we have just turned on
     Serial.println("Motion detected!");
     // We only want to print on the output change, not state
     pirState = HIGH;
     delay(10000);
   }
 } else {
   digitalWrite(relay, LOW); // turn LED OFF
   if (pirState == HIGH){
     // we have just turned of
     Serial.println("Motion ended!");
     // We only want to print on the output change, not state
     pirState = LOW;
   }
 }
 
 
  int luminosita = analogRead(fotoresistenzaPin);
 Serial.print("Luminosita: ");
 Serial.println(luminosita);
 delay(100);
 
}

String getUID(){
 String uid = "";
 for(int i = 0; i < rfid.uid.size; i++){
   uid += rfid.uid.uidByte[i] < 0x10 ? "0" : "";
   uid += String(rfid.uid.uidByte[i], HEX);
 }
 rfid.PICC_HaltA();
 return uid;
}

bool checkUID(String uid){
 for(int i = 0; i < usersSize; i++){
   if(users[i] == uid){
     return true;
   }
 }
 return false;
}

void blinkLed(int led, int duration, int repeat){
 for(int i = 0; i < repeat; i++){
   digitalWrite(led, HIGH);
   delay(duration/2);
   digitalWrite(led, LOW);
   delay(duration/2);
   }
  
}
  

@francescoesp32 : in conformità al REGOLAMENTO , punto 7, cortesemente edita il tuo post qui sopra (quindi NON scrivendo un nuovo post, ma utilizzando il bottone a forma di piccola matita :pencil2: che si trova in basso del tuo post), seleziona TUTTA la parte di codice e premi l'icona </> nella barra degli strumenti per contrassegnarla come codice. Inoltre, così com'è non è molto leggibile ... assicurati di averlo correttamente indentato nell'IDE prima di inserirlo (questo lo si fa premendo ctrlT su un PC o cmd T su un Mac all'intero del IDE). Per maggiori informazioni ... punto 17.2 del succitato regolamento. Grazie.

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà sistemato il codice, nel rispetto del suddetto regolamento nessuno ti risponderà, quindi ti consiglio di fare il tutto al più presto. :wink:

Cosa ti restituisce il serial monitor?

In questo modo visualizzi solo il primo numero :face_with_raised_eyebrow:

An optional second parameter specifies the base (format) to use; permitted values are BIN(binary, or base 2) , OCT(octal, or base 8) , DEC(decimal, or base 10) , HEX(hexadecimal, or base 16) . For floating point numbers, this parameter specifies the number of decimal places to use.<