#include <SPI.h>
#include <DHT.h>
#include <Wire.h>
#include <U8g2lib.h>
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
static const unsigned char image_moon_and_stars_bits[] U8X8_PROGMEM = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x00,0x00,0xfc,0x01,0x00,0x00,0xfe,0x01,0x00,0x80,0xff,0x00,0x00,0xc0,0x7f,0x00,0x00,0xe0,0x7f,0x00,0x00,0xe0,0x3f,0x00,0x00,0xf0,0x3f,0x08,0x00,0xf8,0x3f,0x0c,0x00,0xf8,0x1f,0x00,0x00,0xf8,0x1f,0x00,0x00,0xf8,0x1f,0x00,0x00,0xfc,0x3f,0x00,0x03,0xfc,0x3f,0x80,0x07,0xfc,0x3f,0xc0,0x0f,0xfc,0x3f,0xe0,0x1f,0xf8,0x7f,0xf0,0x3f,0xf8,0xff,0xe0,0x1f,0xf8,0xff,0x80,0x07,0xf8,0xff,0x03,0x03,0xf0,0xff,0x07,0x03,0xf0,0xff,0x1f,0x00,0xe0,0xff,0x7f,0x00,0xc0,0xff,0xff,0x00,0x80,0xff,0xff,0x01,0x00,0xff,0x7f,0x00,0x00,0xfc,0x3f,0x00,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
#define DHTPIN 2 // Digital pin connected to the DHT sensor
//#define DHTTYPE DHT11
//#define DHTTYPE DHT21
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup(void) {
Serial.begin(9600);
dht.begin();
u8g2.begin();
u8g2.clearBuffer();
}
void loop(void) {
u8g2.clearBuffer();
u8g2.drawLine(61, 6, 61, 56);
u8g2.drawCircle(61, 4, 2);
u8g2.drawCircle(61, 59, 2);
u8g2.drawXBMP( 11, 3, 32, 32, image_moon_and_stars_bits);
u8g2.setFont(u8g2_font_4x6_tr);
u8g2.drawStr(32, 54, "15C°");
u8g2.setFont(u8g2_font_4x6_tr);
u8g2.drawStr(10, 61, "humi:");
u8g2.setFont(u8g2_font_4x6_tr);
u8g2.drawStr(74, 63, "2023/01/01");
u8g2.setFont(u8g2_font_4x6_tr);
u8g2.drawStr(33, 61, "20%");
u8g2.setFont(u8g2_font_6x10_tr);
u8g2.drawStr(12, 46, "Rainy");
u8g2.setFont(u8g2_font_4x6_tr);
u8g2.drawStr(9, 54, "temp:");
u8g2.drawCircle(93, 23, 22);
u8g2.drawDisc(93, 23, 2);
u8g2.setFont(u8g2_font_6x10_tr);
u8g2.drawStr(72, 55, "22:56");
u8g2.setFont(u8g2_font_4x6_tr);
u8g2.drawStr(104, 55, "Mon");
u8g2.sendBuffer();
delay(1000); // Wait a few seconds between measurements.
float h = dht.readHumidity();
float t = dht.readTemperature();
float f = dht.readTemperature(true);
}