#define ENABLE_GxEPD2_GFX 0
const unsigned char epd_bitmap_broken_clouds [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc0, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xfc, 0x00, 0x00,
0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0x3f, 0x80, 0x00,
0x00, 0x00, 0x00, 0x3f, 0x00, 0x0f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x03, 0xe0, 0x00,
0x00, 0x00, 0x00, 0xfc, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x00, 0x0f, 0xff, 0x00, 0x01, 0xf0, 0x00,
0x00, 0x00, 0x3f, 0xff, 0xc0, 0x00, 0xff, 0x80, 0x00, 0x00, 0x7f, 0xff, 0xe0, 0x00, 0x7f, 0xe0,
0x00, 0x00, 0xfe, 0x07, 0xf0, 0x00, 0x7f, 0xf0, 0x00, 0x01, 0xf8, 0x01, 0xf8, 0x00, 0x3f, 0xf8,
0x00, 0x03, 0xe0, 0x00, 0x7c, 0x00, 0x00, 0x7c, 0x00, 0x07, 0xc0, 0x00, 0x3e, 0x00, 0x00, 0x3e,
0x00, 0x07, 0x80, 0x00, 0x1f, 0x00, 0x00, 0x1e, 0x00, 0x7f, 0x00, 0x00, 0x0f, 0xe0, 0x00, 0x1e,
0x03, 0xff, 0x00, 0x00, 0x0f, 0xfc, 0x00, 0x0f, 0x0f, 0xfe, 0x00, 0x00, 0x07, 0xff, 0x00, 0x0f,
0x1f, 0xfe, 0x00, 0x00, 0x07, 0xff, 0x80, 0x0f, 0x3f, 0x80, 0x00, 0x00, 0x00, 0x0f, 0xc0, 0x0f,
0x3e, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0x0f, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x0f,
0x78, 0x00, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x1e, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3e,
0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7c, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0xfc,
0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xe0,
0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xc0, 0x78, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfc, 0x00,
0x78, 0x00, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00,
0x3f, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xc0, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00,
0x00, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap_clear_sky [] PROGMEM = {
0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x03, 0xc0, 0x00, 0x1e, 0x00,
0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00,
0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x3f, 0x80, 0x00, 0x00, 0x01, 0xfc, 0x00,
0x00, 0x1f, 0x80, 0x00, 0x00, 0x01, 0xf8, 0x00, 0x00, 0x0f, 0x80, 0x0f, 0xf0, 0x01, 0xf0, 0x00,
0x00, 0x07, 0x80, 0x7f, 0xfe, 0x01, 0xe0, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00,
0x00, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x7f, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x0f, 0xe0, 0x07, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x80, 0x01, 0xf8, 0x00, 0x00,
0x00, 0x00, 0x3f, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x7e, 0x00, 0x00,
0x00, 0x00, 0x7c, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x1f, 0x00, 0x00,
0x00, 0x00, 0xf8, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x0f, 0x00, 0x00,
0x00, 0x01, 0xf0, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0x01, 0xf0, 0x00, 0x00, 0x0f, 0x80, 0x00,
0x7f, 0xc1, 0xf0, 0x00, 0x00, 0x0f, 0x83, 0xfe, 0xff, 0xc1, 0xe0, 0x00, 0x00, 0x07, 0x83, 0xff,
0xff, 0xc1, 0xe0, 0x00, 0x00, 0x07, 0x83, 0xff, 0x7f, 0xc1, 0xf0, 0x00, 0x00, 0x0f, 0x83, 0xfe,
0x00, 0x01, 0xf0, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0x01, 0xf0, 0x00, 0x00, 0x0f, 0x80, 0x00,
0x00, 0x00, 0xf0, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x1f, 0x00, 0x00,
0x00, 0x00, 0xf8, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x3e, 0x00, 0x00,
0x00, 0x00, 0x7e, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0xfc, 0x00, 0x00,
0x00, 0x00, 0x1f, 0x80, 0x01, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xe0, 0x07, 0xf0, 0x00, 0x00,
0x00, 0x00, 0x07, 0xfe, 0x7f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x07, 0x80, 0x7f, 0xfe, 0x01, 0xe0, 0x00,
0x00, 0x0f, 0x80, 0x0f, 0xf0, 0x01, 0xf0, 0x00, 0x00, 0x1f, 0x80, 0x00, 0x00, 0x01, 0xf8, 0x00,
0x00, 0x3f, 0x80, 0x00, 0x00, 0x01, 0xfc, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00,
0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00,
0x00, 0x78, 0x00, 0x03, 0xc0, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap_few_clouds [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0xff, 0xfc, 0x00, 0x3c, 0x00, 0x00,
0xfc, 0x03, 0xff, 0xff, 0x00, 0x7c, 0x00, 0x00, 0xfe, 0x07, 0xff, 0xff, 0x81, 0xfc, 0x00, 0x00,
0x3e, 0x0f, 0xe0, 0x0f, 0xc1, 0xf8, 0x00, 0x00, 0x1e, 0x1f, 0x80, 0x07, 0xe0, 0xe0, 0x00, 0x00,
0x00, 0x1f, 0x00, 0x01, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00,
0x00, 0x7c, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00,
0x00, 0x78, 0x00, 0x03, 0xff, 0xf0, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x0f, 0xff, 0xf8, 0x00, 0x00,
0x00, 0xf0, 0x00, 0x1f, 0xf3, 0xfc, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x3f, 0x00, 0x7e, 0x00, 0x00,
0x00, 0xf0, 0x00, 0x7e, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x78, 0x00, 0x0f, 0x80, 0x00,
0x00, 0xf0, 0x00, 0xf8, 0x00, 0x07, 0x80, 0x00, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0x03, 0xf8, 0x00,
0x00, 0x78, 0x01, 0xe0, 0x00, 0x03, 0xff, 0x00, 0x00, 0x78, 0x01, 0xe0, 0x00, 0x01, 0xff, 0xc0,
0x00, 0x78, 0x01, 0xe0, 0x00, 0x01, 0xff, 0xe0, 0x00, 0x3c, 0x01, 0xe0, 0x00, 0x00, 0x07, 0xf0,
0x00, 0x3e, 0x03, 0xe0, 0x00, 0x00, 0x00, 0xf8, 0x0c, 0x1f, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x7c,
0x3e, 0x0f, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x3c, 0x7e, 0x07, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x1e,
0xfc, 0x03, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xf8, 0x01, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f,
0x60, 0x03, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x0f,
0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0f,
0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0f,
0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x1e,
0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x7c,
0x00, 0x01, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x07, 0xf0,
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xc0,
0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xf0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap_mist [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x7f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00,
0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00,
0x07, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap_rain [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x01, 0x00, 0x03, 0x80,
0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x0f, 0x80,
0x00, 0x00, 0x01, 0xf0, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x80, 0x1e, 0x00,
0x00, 0x00, 0x00, 0x70, 0x3f, 0xf8, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf8, 0x3f, 0x80, 0x00,
0x00, 0x00, 0x00, 0x07, 0xe0, 0x0f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x80, 0x03, 0xe0, 0x00,
0x00, 0x00, 0x00, 0x0f, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x00, 0x01, 0xff, 0x00, 0x01, 0xf0, 0x00,
0x00, 0x00, 0x07, 0xff, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xc0, 0x00, 0xf0, 0x00,
0x00, 0x00, 0x3f, 0xff, 0xe0, 0x00, 0x70, 0x00, 0x00, 0x07, 0xfe, 0x03, 0xe0, 0x00, 0x78, 0x7f,
0x00, 0x1f, 0xf8, 0x01, 0xf0, 0x00, 0x78, 0xff, 0x00, 0x3f, 0xf8, 0x00, 0xf8, 0x00, 0x78, 0x7f,
0x00, 0x7f, 0x20, 0x00, 0x78, 0x00, 0x70, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x78, 0x00, 0xf0, 0x00,
0x00, 0xf8, 0x00, 0x00, 0x38, 0x00, 0xf0, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x3c, 0x01, 0xf0, 0x00,
0x01, 0xf0, 0x00, 0x00, 0x3c, 0x01, 0xe0, 0x00, 0x07, 0xe0, 0x00, 0x00, 0x3f, 0x83, 0xe0, 0x00,
0x1f, 0xe0, 0x00, 0x00, 0x3f, 0xcf, 0xc0, 0x00, 0x3f, 0xe0, 0x00, 0x00, 0x1f, 0xff, 0x80, 0x00,
0x7e, 0x00, 0x00, 0x00, 0x03, 0xff, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00,
0x78, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1c, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x78, 0x1e, 0x00,
0xf0, 0x00, 0x00, 0x00, 0x00, 0x78, 0x1f, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0f, 0x80,
0xf0, 0x00, 0x00, 0x00, 0x00, 0x78, 0x07, 0x80, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x78, 0x03, 0x80,
0x78, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00,
0x3e, 0x00, 0x00, 0x00, 0x03, 0xf0, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00,
0x1f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00,
0x03, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x03, 0xc3, 0xc7, 0x87, 0x80, 0x00, 0x00, 0x00,
0x03, 0xc7, 0x87, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x03, 0x87, 0x87, 0x0f, 0x00, 0x00, 0x00, 0x00,
0x01, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x10, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x38, 0x78, 0x70, 0x00, 0x00, 0x00, 0x00,
0x3c, 0x78, 0x78, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00,
0x78, 0xf0, 0xf1, 0xe0, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf1, 0xe1, 0xe0, 0x00, 0x00, 0x00, 0x00,
0xf0, 0xe1, 0xe1, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x60, 0xe0, 0xc1, 0xc0, 0x00, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap_scattered_clouds [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xc0, 0x00, 0x00,
0x00, 0x00, 0x00, 0x0f, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xfc, 0x00, 0x00,
0x00, 0x00, 0x00, 0x7f, 0xc1, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x3f, 0x00, 0x00,
0x00, 0x00, 0x01, 0xf0, 0x00, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x07, 0xc0, 0x00,
0x00, 0x00, 0x07, 0xc0, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x01, 0xe0, 0x00,
0x00, 0x00, 0x0f, 0x00, 0x00, 0x01, 0xf0, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xf0, 0x00,
0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x78, 0x00,
0x00, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x78, 0x00, 0x01, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x38, 0x00,
0x07, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x38, 0x00, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
0x1f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x80, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc0,
0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf8,
0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c,
0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e,
0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e,
0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f,
0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f,
0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f,
0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e,
0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c,
0x0f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf8, 0x07, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0,
0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap_shower_rain [] PROGMEM = {
0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xe0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x1f, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xfe, 0x00, 0x00, 0x00,
0x00, 0x00, 0xff, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf8, 0x00, 0x1f, 0x80, 0x00, 0x00,
0x00, 0x03, 0xf0, 0x00, 0x07, 0xc0, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x03, 0xe0, 0x00, 0x00,
0x00, 0x07, 0xc0, 0x00, 0x01, 0xf0, 0x00, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0xf0, 0x00, 0x00,
0x00, 0x0f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00,
0x00, 0x7e, 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x01, 0xfe, 0x00, 0x00, 0x00, 0xff, 0xff, 0x80,
0x03, 0xfc, 0x00, 0x00, 0x01, 0xff, 0xff, 0xc0, 0x07, 0xf0, 0x00, 0x00, 0x03, 0xf8, 0x0f, 0xe0,
0x0f, 0x80, 0x00, 0x00, 0x03, 0xe0, 0x03, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0xf8,
0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c,
0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e,
0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f,
0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f,
0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f,
0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f,
0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e,
0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c,
0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8,
0x0f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf0, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf0,
0x03, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xc0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
0x00, 0x00, 0x03, 0xe0, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x3c, 0x00, 0x00,
0x00, 0x00, 0x07, 0xc0, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, 0x78, 0x00, 0x00,
0x00, 0x1c, 0x0f, 0x81, 0x80, 0xf8, 0x38, 0x00, 0x00, 0x3c, 0x0f, 0x03, 0x80, 0xf0, 0x3c, 0x00,
0x00, 0x3c, 0x1f, 0x07, 0x81, 0xf0, 0x7c, 0x00, 0x00, 0x7c, 0x1e, 0x07, 0x81, 0xe0, 0x78, 0x00,
0x00, 0x78, 0x1c, 0x0f, 0x01, 0xc0, 0xf0, 0x00, 0x00, 0xf0, 0x00, 0x1f, 0x00, 0x01, 0xf0, 0x00,
0x00, 0xf0, 0x00, 0x1e, 0x00, 0x01, 0xe0, 0x00, 0x01, 0xe0, 0x00, 0x3e, 0x00, 0x03, 0xe0, 0x00,
0x03, 0xe0, 0x80, 0x3c, 0x0c, 0x03, 0xc0, 0x00, 0x03, 0xc1, 0xe0, 0x78, 0x1e, 0x07, 0xc0, 0x00,
0x07, 0xc1, 0xe0, 0x78, 0x1e, 0x07, 0x80, 0x00, 0x07, 0x83, 0xc0, 0xf0, 0x3c, 0x0f, 0x00, 0x00,
0x07, 0x07, 0xc0, 0xf0, 0x7c, 0x0f, 0x00, 0x00, 0x02, 0x07, 0x80, 0x60, 0x78, 0x06, 0x00, 0x00,
0x00, 0x0f, 0x80, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00,
0x00, 0x0e, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap_snow [] PROGMEM = {
0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x02, 0x03, 0xc0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x07, 0x83, 0xc1, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x07, 0xe3, 0xc7, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf3, 0xcf, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x0c, 0x00, 0x3f, 0xfc, 0x00, 0x30, 0x00, 0x00, 0x1e, 0x00, 0x0f, 0xf0, 0x00, 0x78, 0x00,
0x00, 0x1e, 0x00, 0x07, 0xe0, 0x00, 0x78, 0x00, 0x00, 0x1e, 0x00, 0x03, 0xc0, 0x00, 0x78, 0x00,
0x00, 0x1e, 0x00, 0x03, 0xc0, 0x00, 0x78, 0x00, 0x00, 0x1e, 0x00, 0x03, 0xc0, 0x00, 0x78, 0x00,
0x00, 0x1e, 0x07, 0x83, 0xc1, 0xe0, 0x78, 0x00, 0x07, 0x1e, 0x07, 0xe3, 0xc3, 0xe0, 0x78, 0xf0,
0x0f, 0xde, 0x07, 0xf3, 0xcf, 0xe0, 0x7b, 0xf0, 0x07, 0xfe, 0x07, 0xff, 0xff, 0xe0, 0x7f, 0xf0,
0x03, 0xfe, 0x07, 0xff, 0xff, 0xe0, 0x7f, 0xe0, 0x01, 0xfe, 0x07, 0x3f, 0xfc, 0xe0, 0x7f, 0x80,
0x00, 0x7f, 0x87, 0x0f, 0xf0, 0xe1, 0xfe, 0x00, 0x00, 0xff, 0xc7, 0x07, 0xe0, 0xe3, 0xff, 0x00,
0x03, 0xff, 0xff, 0x03, 0xc0, 0xff, 0xff, 0xc0, 0x07, 0xf3, 0xff, 0x03, 0xc0, 0xff, 0xcf, 0xf0,
0x1f, 0xc0, 0xff, 0x03, 0xc0, 0xff, 0x03, 0xf8, 0x3f, 0x80, 0x3f, 0x83, 0xc1, 0xfc, 0x01, 0xfc,
0x3e, 0x00, 0x3f, 0xe3, 0xc7, 0xfc, 0x00, 0x7c, 0x38, 0x00, 0x7f, 0xfb, 0xdf, 0xfe, 0x00, 0x1c,
0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x07, 0xf8, 0x7f, 0xff, 0x1f, 0xe0, 0x00,
0x00, 0x0f, 0xe0, 0x3f, 0xfc, 0x07, 0xf0, 0x00, 0x00, 0x1f, 0x80, 0x0f, 0xf0, 0x01, 0xf8, 0x00,
0x00, 0x1f, 0xc0, 0x1f, 0xf8, 0x03, 0xf8, 0x00, 0x00, 0x0f, 0xf0, 0x7f, 0xfe, 0x0f, 0xf0, 0x00,
0x00, 0x03, 0xf9, 0xff, 0xff, 0x9f, 0xc0, 0x00, 0x18, 0x00, 0xff, 0xfb, 0xdf, 0xff, 0x00, 0x18,
0x3c, 0x00, 0x7f, 0xe3, 0xc7, 0xfe, 0x00, 0x3c, 0x3f, 0x00, 0x3f, 0xc3, 0xc3, 0xfc, 0x00, 0xfc,
0x1f, 0xc0, 0xff, 0x03, 0xc0, 0xff, 0x03, 0xfc, 0x0f, 0xf1, 0xff, 0x03, 0xc0, 0xff, 0xcf, 0xf0,
0x03, 0xff, 0xff, 0x03, 0xc0, 0xff, 0xff, 0xc0, 0x00, 0xff, 0xe7, 0x03, 0xc0, 0xe7, 0xff, 0x00,
0x00, 0x7f, 0x87, 0x07, 0xe0, 0xe1, 0xfe, 0x00, 0x00, 0xfe, 0x07, 0x1f, 0xf8, 0xe0, 0x7f, 0x00,
0x03, 0xfe, 0x07, 0xff, 0xff, 0xe0, 0x7f, 0xc0, 0x07, 0xfe, 0x07, 0xff, 0xff, 0xe0, 0x7f, 0xf0,
0x0f, 0xde, 0x07, 0xfb, 0xdf, 0xe0, 0x7b, 0xf0, 0x07, 0x1e, 0x07, 0xf3, 0xcf, 0xe0, 0x78, 0xf0,
0x00, 0x1e, 0x07, 0xc3, 0xc3, 0xe0, 0x78, 0x20, 0x00, 0x1e, 0x07, 0x03, 0xc0, 0xe0, 0x78, 0x00,
0x00, 0x1e, 0x00, 0x03, 0xc0, 0x00, 0x78, 0x00, 0x00, 0x1e, 0x00, 0x03, 0xc0, 0x00, 0x78, 0x00,
0x00, 0x1e, 0x00, 0x03, 0xc0, 0x00, 0x78, 0x00, 0x00, 0x1e, 0x00, 0x0f, 0xf0, 0x00, 0x78, 0x00,
0x00, 0x0e, 0x00, 0x3f, 0xfc, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfb, 0xdf, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x07, 0xe3, 0xc7, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x83, 0xc1, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x03, 0x03, 0xc0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap_thunderstorm [] PROGMEM = {
0x00, 0x00, 0x00, 0x07, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x07, 0xf9, 0xf8, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xe0, 0x07, 0xc0, 0x00, 0x00,
0x00, 0x3f, 0xff, 0xc0, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x80, 0x01, 0xe0, 0x00, 0x00,
0x00, 0xf8, 0x0f, 0x00, 0x01, 0xff, 0x80, 0x00, 0x01, 0xf0, 0x03, 0x00, 0x03, 0xff, 0xe0, 0x00,
0x01, 0xe0, 0x00, 0x00, 0x07, 0xff, 0xf0, 0x00, 0x01, 0xe0, 0x00, 0x1f, 0x0f, 0xe1, 0xf8, 0x00,
0x03, 0xc0, 0x00, 0x7f, 0xff, 0x00, 0x7c, 0x00, 0x03, 0xc0, 0x01, 0xff, 0xfe, 0x00, 0x3e, 0x00,
0x03, 0xc0, 0x03, 0xff, 0xfc, 0x00, 0x1e, 0x00, 0x03, 0xc0, 0x07, 0xe0, 0xfc, 0x00, 0x0f, 0x00,
0x0f, 0xc0, 0x0f, 0x80, 0x78, 0x00, 0x0f, 0x00, 0x1f, 0xc0, 0x0f, 0x00, 0x78, 0x00, 0x0f, 0x00,
0x3f, 0x80, 0x0f, 0x00, 0x78, 0x00, 0x07, 0x00, 0x7e, 0x00, 0x1e, 0x00, 0x78, 0x00, 0x07, 0x00,
0x78, 0x00, 0x1e, 0x00, 0x78, 0x00, 0x07, 0x80, 0xf8, 0x00, 0x1e, 0x00, 0x78, 0x00, 0x0f, 0xe0,
0xf0, 0x00, 0x1e, 0x00, 0x78, 0x00, 0x0f, 0xf0, 0xf0, 0x00, 0x3e, 0x00, 0x30, 0x00, 0x0f, 0xf8,
0xf0, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x1e, 0xfc, 0xf0, 0x01, 0xff, 0x00, 0x00, 0x00, 0x3e, 0x3e,
0xf0, 0x03, 0xff, 0x80, 0x00, 0x00, 0x3c, 0x1e, 0x78, 0x03, 0xe7, 0x80, 0x00, 0x00, 0x38, 0x1f,
0x7c, 0x07, 0xc7, 0x80, 0x00, 0x00, 0x00, 0x0f, 0x3e, 0x07, 0x83, 0x80, 0x00, 0x00, 0x00, 0x0f,
0x3f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0f,
0x07, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x01, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0f,
0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x3e,
0x00, 0x03, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x01, 0xfc, 0x00, 0x00, 0x00, 0x07, 0xf8,
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xe0,
0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x78, 0x7c, 0x00, 0x3c, 0x3e, 0x00,
0x00, 0x00, 0x78, 0x78, 0x00, 0x3c, 0x3c, 0x00, 0x00, 0x00, 0xf0, 0x78, 0x00, 0x78, 0x3c, 0x00,
0x00, 0x00, 0xf0, 0x70, 0x00, 0x78, 0x38, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0x00, 0x78, 0x78, 0x00,
0x00, 0x01, 0xe0, 0xff, 0x80, 0xf0, 0x7f, 0xc0, 0x00, 0x01, 0xe0, 0xff, 0xc0, 0xf0, 0x7f, 0xe0,
0x00, 0x01, 0xe1, 0xff, 0xc0, 0xf0, 0xff, 0xe0, 0x00, 0x01, 0xc0, 0xff, 0x80, 0xe0, 0x7f, 0xc0,
0x00, 0x03, 0xfc, 0x1f, 0x01, 0xfe, 0x0f, 0x80, 0x00, 0x03, 0xfe, 0x3f, 0x01, 0xff, 0x1f, 0x80,
0x00, 0x03, 0xfe, 0x3e, 0x01, 0xff, 0x1f, 0x00, 0x00, 0x01, 0xfe, 0x7c, 0x00, 0xff, 0x3e, 0x00,
0x00, 0x00, 0x1e, 0xf8, 0x00, 0x0f, 0x7c, 0x00, 0x00, 0x00, 0x1f, 0xf0, 0x00, 0x0f, 0xf8, 0x00,
0x00, 0x00, 0x1f, 0xe0, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x3f, 0xc0, 0x00, 0x1f, 0xe0, 0x00,
0x00, 0x00, 0x3f, 0x80, 0x00, 0x1f, 0xc0, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x1f, 0x80, 0x00,
0x00, 0x00, 0x3e, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x1f, 0x00, 0x00,
0x00, 0x00, 0x3c, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x1c, 0x00, 0x00
};
const unsigned char epd_bitmap_humidity [] PROGMEM = {
0x00, 0x01, 0x80, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x07, 0xe0, 0x00, 0x00, 0x0c, 0x30, 0x00,
0x00, 0x18, 0x18, 0x00, 0x00, 0x30, 0x0c, 0x00, 0x00, 0x60, 0x06, 0x00, 0x00, 0xc0, 0x03, 0x00,
0x01, 0xc0, 0x03, 0x80, 0x01, 0x80, 0x01, 0x80, 0x03, 0x00, 0x00, 0xc0, 0x06, 0x00, 0x00, 0x60,
0x06, 0x18, 0x00, 0x60, 0x0c, 0x3c, 0x00, 0x30, 0x0c, 0x66, 0x20, 0x30, 0x0c, 0x66, 0x60, 0x30,
0x18, 0x3c, 0xe0, 0x18, 0x18, 0x1c, 0xc0, 0x18, 0x18, 0x01, 0x80, 0x18, 0x18, 0x01, 0x80, 0x18,
0x18, 0x03, 0x18, 0x18, 0x18, 0x03, 0x3c, 0x18, 0x0c, 0x06, 0x66, 0x30, 0x0c, 0x06, 0x66, 0x30,
0x0c, 0x00, 0x3c, 0x30, 0x06, 0x00, 0x18, 0x60, 0x07, 0x00, 0x00, 0xe0, 0x03, 0x80, 0x01, 0xc0,
0x01, 0xc0, 0x03, 0x80, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x0f, 0xf0, 0x00
};
const unsigned char epd_bitmap_temperature [] PROGMEM = {
0x00, 0x0f, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0x00, 0x00, 0x30, 0xc0, 0x00, 0x00, 0x30, 0x60, 0x00,
0x00, 0x60, 0x67, 0x80, 0x00, 0x60, 0x67, 0x80, 0x00, 0x60, 0x60, 0x00, 0x00, 0x60, 0x63, 0x00,
0x00, 0x66, 0x67, 0x80, 0x00, 0x66, 0x60, 0x00, 0x00, 0x66, 0x60, 0x00, 0x00, 0x66, 0x67, 0x80,
0x00, 0x66, 0x67, 0x80, 0x00, 0x66, 0x60, 0x00, 0x00, 0x66, 0x60, 0x00, 0x00, 0x66, 0x67, 0x80,
0x00, 0x66, 0x67, 0x80, 0x00, 0x66, 0x60, 0x00, 0x00, 0x66, 0x60, 0x00, 0x00, 0xe6, 0x70, 0x00,
0x00, 0xc6, 0x38, 0x00, 0x01, 0x8f, 0x18, 0x00, 0x01, 0x9f, 0x98, 0x00, 0x01, 0xb0, 0xcc, 0x00,
0x01, 0x30, 0xcc, 0x00, 0x01, 0xb8, 0xcc, 0x00, 0x01, 0x9f, 0x98, 0x00, 0x01, 0x8f, 0x18, 0x00,
0x00, 0xc0, 0x30, 0x00, 0x00, 0x70, 0x70, 0x00, 0x00, 0x3f, 0xe0, 0x00, 0x00, 0x1f, 0x80, 0x00
};
const unsigned char epd_bitmap_warning [] PROGMEM = {
0x00, 0x00, 0x03, 0xc0, 0x02, 0x40, 0x06, 0x60, 0x04, 0x20, 0x0d, 0xb0, 0x19, 0x98, 0x11, 0x88,
0x31, 0x8c, 0x21, 0x84, 0x60, 0x06, 0x40, 0x02, 0xc0, 0x03, 0xc0, 0x03, 0x7f, 0xfe, 0x00, 0x00
};
#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h>
#include <GxEPD2_BW.h>
#include <GxEPD2_3C.h>
#include <Fonts/FreeSans18pt7b.h>
#define uS_TO_S_FACTOR 1000000 // Conversion factor for micro seconds to seconds
#define TIME_TO_SLEEP 1800 // Time ESP32 will sleep (in seconds)
//GxEPD2_BW<GxEPD2_290_BS, GxEPD2_290_BS::HEIGHT> display(GxEPD2_290_BS(/*CS=5*/ SS, /*DC=*/ 1, /*RES=*/ 2, /*BUSY=*/ 3));
GxEPD2_3C<GxEPD2_290_C90c, GxEPD2_290_C90c::HEIGHT> display(GxEPD2_290_C90c(/*CS=5*/ SS, /*DC=*/ 1, /*RES=*/ 2, /*BUSY=*/ 3));
// WiFi Credentials
const char* ssid = "Ditto";
const char* password = "0380704001abc";
// OpenWeatherMap API Info
const String city = "Puchong";
const String apiKey = "b759a32c222cef5368b10fb891d0e8c7";
const String weatherURL = "http://api.openweathermap.org/data/2.5/weather?q=" + city + "&appid=" + apiKey + "&units=metric";
// http://api.openweathermap.org/data/2.5/weather?q=Puchong&appid=b759a32c222cef5368b10fb891d0e8c7&units=metric
int wifitimeout = 0;
bool wifi = false;
String temperature = "";
String humidity = "";
RTC_DATA_ATTR const unsigned char* icon = nullptr;
RTC_DATA_ATTR float savedTemp = 0;
RTC_DATA_ATTR int savedHumid = 0;
void setup() {
display.init(115200, true, 50, false);
display.setRotation(3);
Serial.begin(115200);
Serial.println("Initialising...");
Serial.print("Connecting to WiFi");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
wifitimeout++;
if (wifitimeout > 20) {
WiFi.disconnect();
Serial.println("WiFi not connected! Display will not be updated!");
break;
}
}
if (WiFi.status() == WL_CONNECTED) {
wifi = true;
Serial.println("WiFi connected successfully! Checking weather now.");
HTTPClient http;
http.begin(weatherURL);
int httpCode = http.GET();
if (httpCode > 0) {
String payload = http.getString();
Serial.println("Weather JSON:");
Serial.println(payload);
StaticJsonDocument<1024> doc;
DeserializationError error = deserializeJson(doc, payload);
if (!error) {
float temperaturenew = doc["main"]["temp"];
int humiditynew = doc["main"]["humidity"];
String iconnew = doc["weather"][0]["icon"];
savedTemp = temperaturenew;
savedHumid = humiditynew;
Serial.println("Data saved!");
String temperatureformatted = String(temperaturenew, 1) + " C";
String humidityformatted = String(humiditynew) + "%";
if (iconnew == "01d" || iconnew == "01n") {
icon = epd_bitmap_clear_sky;
} else if (iconnew == "02d" || iconnew == "02n") {
icon = epd_bitmap_few_clouds;
} else if (iconnew == "03d" || iconnew == "03n") {
icon = epd_bitmap_scattered_clouds;
} else if (iconnew == "04d" || iconnew == "04n") {
icon = epd_bitmap_broken_clouds;
} else if (iconnew == "09d" || iconnew == "09n") {
icon = epd_bitmap_shower_rain;
} else if (iconnew == "10d" || iconnew == "10n") {
icon = epd_bitmap_rain;
} else if (iconnew == "11d" || iconnew == "11n") {
icon = epd_bitmap_thunderstorm;
} else if (iconnew == "13d" || iconnew == "13n") {
icon = epd_bitmap_snow;
} else if (iconnew == "50d" || iconnew == "50n") {
icon = epd_bitmap_mist;
} else {
icon = epd_bitmap_clear_sky;
}
temperature = temperatureformatted;
humidity = humidityformatted;
} else {
Serial.println("JSON parsing failed");
}
} else {
Serial.print("HTTP GET failed, code: ");
Serial.println(httpCode);
}
http.end();
Serial.println(temperature);
Serial.println(humidity);
} else {
if (savedTemp == 0 && savedHumid == 0) {
temperature = "N/A";
humidity = "N/A";
icon = epd_bitmap_clear_sky;
} else {
String temperaturerecovery = String(savedTemp, 1) + "°C";
String humidityrecovery = String(savedHumid) + "%";
temperature = temperaturerecovery;
humidity = humidityrecovery;
}
}
display.clearScreen();
display.fillScreen(GxEPD_WHITE);
display.setFont(&FreeSans18pt7b);
display.setTextColor(GxEPD_BLACK);
display.setTextSize(1);
if (wifi == false) {
display.drawBitmap(4, 3, epd_bitmap_warning, 16, 16, 0);
}
display.drawLine(104, 0, 104, 127, 0);
display.drawBitmap(124, 23, epd_bitmap_temperature, 32, 32, 0);
display.drawBitmap(123, 73, epd_bitmap_humidity, 32, 32, 0);
display.setCursor(169, 102);
display.print(humidity);
display.setCursor(169, 51);
display.print(temperature);
display.drawBitmap(18, 32, icon, 64, 64, 0);
display.display();
esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);
esp_deep_sleep_start();
}
void loop() {
}
Comments