#include <U8g2lib.h>
#include <U8glib.h>
#include "SdFat.h"
#include <dht.h>
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0 | U8G_I2C_OPT_NO_ACK | U8G_I2C_OPT_FAST); // Fast I2C / TWI
#define SPI_SPEED SD_SCK_MHZ(4)
#define CS_PIN 10 // Chip select
#define DHT22_PIN 7 // Digital data pin setting
SdFat sd;
dht DHT;
float getTemperature() { // Temperatur auslesen
return DHT.temperature;
}
void setup() {
Serial.begin(115200);
if (!sd.begin(CS_PIN, SPI_SPEED)) {
if (sd.card()->errorCode()) {
Serial.println("SD initialization failed.");
} else if (sd.vol()->fatType() == 0) {
Serial.println("Can't find a valid FAT16/FAT32 partition.");
} else {
Serial.println("Can't determine error type");
}
return;
}
Serial.println("Files on card:");
Serial.println(" Size Name");
sd.ls(LS_R | LS_SIZE);
pinMode(DHT22_PIN, INPUT); // Temperatursensor umstellen
u8g.setFont(u8g_font_tpssb); //display-setup
u8g.setColorIndex(1);
}
void loop() { // put your main code here, to run repeatedly:
DHT.read22(DHT22_PIN);
float Temp = getTemperature(); //Aktuelle temperatur erfassen
String Temp_out = String(Temp, 2);
Serial.println(Temp_out); //Aktuelle temperatur anzeigen
u8g.firstPage();
do {
u8g.drawStr(10, 10, "Temperatur");
//u8g.print(10,20, Temp);
} while ( u8g.nextPage() );
delay(100);
}