Buenas! Tengo un pequeño problema, estoy queriendo visualizar los valores de los sensores CCS811 y DHT22, en un display LCD. Los valores del CCS811 los puedo visualizar, pero los del DHT22, que me mide temperatura y humedad me aparecen como Nan. Creo yo que puede ser algún problema del código, y quisiera dejarles para que lo puedan visualizar y me puedan ayudar.
#include "Adafruit_CCS811.h"
#include <LiquidCrystal_I2C.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
#define DHTPIN 2 //
#define DHTTYPE DHT22
Adafruit_CCS811 ccs;
DHT_Unified dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27,16, 2); // LCD address = 0x27, y 16 carcateres x 2 lineas
void setup()
{ Serial.begin(115200);
if(!ccs.begin())
{ Serial.println("Failed to start sensor! Please check your wiring.");
while(1);
}
while(!ccs.available());
lcd.init(); // initialize the lcd
lcd.backlight();
}
void loop()
{ if(ccs.available())
{ if(!ccs.readData())
{ Serial.print("CO2: ");
Serial.print(ccs.geteCO2());
Serial.print("ppm, TVOC: ");
Serial.print(",");
Serial.println(ccs.getTVOC());
writeLCD();
}
else
{ Serial.println("ERROR!");
while(1);
}
}
delay(1000);
}
void writeLCD()
{ lcd.setCursor(0,0); // pos, linea
lcd.print("CO2: ");
lcd.print(ccs.geteCO2());lcd.print(" ");
lcd.setCursor(0,1);
lcd.print("TVOC: ");
lcd.print(ccs.getTVOC());lcd.print(" ");
sensors_event_t event;
dht.temperature().getEvent(&event);
lcd.setCursor(11,0);
lcd.print(event.temperature, 1); // Con un solo decimal
lcd.print("C");
dht.humidity().getEvent(&event);
lcd.setCursor(11,1);
lcd.print(event.relative_humidity,1);
lcd.println("%");
}
Aquí les dejo una imagen de como aparece en pantalla: