Hi,
I am using this code and it is working well, but the problem is that the sensor doesn’t measure the real temperature and humidity. Also on SD Card are written just one time.
Why is happening this ?
#include “DHTesp.h”
#ifdef ESP32
#pragma message(THIS EXAMPLE IS FOR ESP8266 ONLY!)
#error Select ESP8266 board.
#endif
DHTesp dht;
#include <SPI.h>
#include <SD.h>
File myFile;
void setup() {
float humidity = dht.getHumidity();
float temperature = dht.getTemperature();
// Open serial communications and wait for port to open:
Serial.begin(115200);
dht.setup(16, DHTesp::DHT11);
Serial.print(“Initializing SD card…”);
if (!SD.begin(4)) {
Serial.println(“initialization failed!”);
return;
}
Serial.println(“initialization done.”);
myFile = SD.open(“test.txt”, FILE_WRITE);
if (myFile) {
Serial.print(“Writing to test.txt…”);
myFile.print(dht.getStatusString());
myFile.println(“Lageshtia e ajrit:”);
//myFile.println(“\t”);
myFile.println(humidity, 1);
myFile.println(“\t\t”);
myFile.println(“Temperatura:”);
// myFile.println(“\t”);
myFile.println(temperature, 1);
delay (2000);
myFile.close();
Serial.println("done.");
} else {
Serial.println("error opening test.txt");
}
myFile = SD.open(“test.txt”);
if (myFile) {
Serial.println(“test.txt:”);
while (myFile.available()) {
Serial.write(myFile.read());
}
myFile.close();
} else {
Serial.println("error opening test.txt");
}
}
void loop() {
delay(2000);
float humidity = dht.getHumidity();
float temperature = dht.getTemperature();
Serial.print(dht.getStatusString());
Serial.print(“\t”);
Serial.print(“Lageshtia e ajrit:”);
Serial.print(“\t”);
Serial.print(humidity, 1);
Serial.print(“\t\t”);
Serial.print(“Temperatura:”);
Serial.print(“\t”);
Serial.println(temperature, 1);
}