#include <U8g2lib.h>
#include "DHT.h"
#include <Wire.h>
// #include <ESP8266WiFi.h>
#define btnup 3
#define btndown 4
#define btnok 5
#define btnback 6
#define DHTTYPE DHT11
#define DHTPIN 7
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
int maxmenu = 5 ;
int selected = 0 ;
int entered = 0 ;
int page = 0 ;
int stats = 0 ;
int contrast = 50 ;
int optionSpacing = 10 ;
int frame = 0 ;
bool scanning = false;
int progress;
DHT dht(DHTPIN, DHTTYPE);
const unsigned char epd_bitmap__a_frm4_40 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0xe0, 0x1f, 0x00, 0x70, 0x38, 0x00, 0x38,
0x70, 0x00, 0x1c, 0xe0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0,
0x00, 0x1c, 0xe0, 0x00, 0x18, 0x70, 0x00, 0x70, 0x78, 0x00, 0xe0, 0xff, 0x00, 0xc0, 0xcf, 0x01,
0x00, 0xc0, 0x03, 0x00, 0x80, 0x07, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x3c, 0x00,
0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap__a_frm6_40 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0xe0, 0x1f, 0x00, 0xf0, 0x3c, 0x00, 0x38,
0x70, 0x00, 0x1c, 0x60, 0x00, 0x0c, 0xe0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0,
0x00, 0x0c, 0x60, 0x00, 0x18, 0x60, 0x00, 0x38, 0x38, 0x00, 0xf0, 0xff, 0x00, 0xe0, 0xcf, 0x01,
0x00, 0xc0, 0x03, 0x00, 0x80, 0x07, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x1c, 0x00,
0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap__a_frm5_40 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0xe0, 0x1f, 0x00, 0x70, 0x38, 0x00, 0x38,
0x70, 0x00, 0x1c, 0x60, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0,
0x00, 0x1c, 0xe0, 0x00, 0x18, 0x70, 0x00, 0x78, 0x38, 0x00, 0xf0, 0xff, 0x00, 0xc0, 0xcf, 0x01,
0x00, 0xc0, 0x03, 0x00, 0x80, 0x07, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x3c, 0x00,
0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
// '_a_frm7,40', 24x24px
const unsigned char epd_bitmap__a_frm7_40 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0xf0, 0x3f, 0x00, 0x38,
0x30, 0x00, 0x1c, 0x60, 0x00, 0x0c, 0x60, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0,
0x00, 0x0c, 0xe0, 0x00, 0x1c, 0x60, 0x00, 0x38, 0x70, 0x00, 0xf0, 0x3f, 0x00, 0xe0, 0xef, 0x00,
0x00, 0xc1, 0x01, 0x00, 0xc0, 0x03, 0x00, 0x80, 0x07, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x1e, 0x00,
0x00, 0x1c, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap__a_frm8_50 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0xf0, 0x1f, 0x00, 0x38,
0x38, 0x00, 0x18, 0x70, 0x00, 0x0c, 0x60, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0,
0x00, 0x0c, 0xe0, 0x00, 0x1c, 0x60, 0x00, 0x38, 0x70, 0x00, 0x70, 0x3c, 0x00, 0xe0, 0xff, 0x00,
0x80, 0xe7, 0x01, 0x00, 0xc0, 0x03, 0x00, 0x80, 0x07, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x1e, 0x00,
0x00, 0x1c, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap__a_frm10_40 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0xe0, 0x1f, 0x00, 0xf0,
0x38, 0x00, 0x38, 0x70, 0x00, 0x18, 0xe0, 0x00, 0x1c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0,
0x00, 0x0c, 0xc0, 0x00, 0x18, 0xc0, 0x00, 0x38, 0x60, 0x00, 0x70, 0x70, 0x00, 0xe0, 0xff, 0x00,
0xc0, 0xcf, 0x01, 0x00, 0xc0, 0x03, 0x00, 0x80, 0x07, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x0e, 0x00,
0x00, 0x1e, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x08
};
const unsigned char epd_bitmap__a_frm9_40 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0xe0, 0x1f, 0x00, 0x70,
0x38, 0x00, 0x38, 0x70, 0x00, 0x1c, 0x60, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0,
0x00, 0x0c, 0xc0, 0x00, 0x1c, 0xe0, 0x00, 0x18, 0x70, 0x00, 0x70, 0x38, 0x00, 0xe0, 0xff, 0x00,
0xc0, 0xcf, 0x01, 0x00, 0xc0, 0x03, 0x00, 0x80, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x0f, 0x00,
0x00, 0x1e, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap__a_frm12_40 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0xc0, 0x3f, 0x00, 0xe0,
0x70, 0x00, 0x30, 0xe0, 0x00, 0x38, 0xc0, 0x00, 0x18, 0xc0, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80,
0x01, 0x18, 0x80, 0x01, 0x38, 0xc0, 0x00, 0x30, 0xe0, 0x00, 0xf0, 0x70, 0x00, 0xe0, 0xff, 0x01,
0x80, 0xdf, 0x03, 0x00, 0x80, 0x07, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x1e, 0x00,
0x00, 0x3c, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap__a_frm13_40 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, 0xc0, 0x3f, 0x00, 0xe0,
0x70, 0x00, 0x70, 0xc0, 0x00, 0x38, 0xc0, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80,
0x01, 0x18, 0x80, 0x01, 0x38, 0xc0, 0x01, 0x70, 0xe0, 0x00, 0xe0, 0x70, 0x00, 0xc0, 0xff, 0x01,
0x80, 0x9f, 0x03, 0x00, 0x80, 0x07, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x3c, 0x00,
0x00, 0x38, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap__a_frm11_40 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0xe0, 0x3f, 0x00, 0xf0,
0x78, 0x00, 0x30, 0x60, 0x00, 0x18, 0xc0, 0x00, 0x18, 0xc0, 0x00, 0x18, 0xc0, 0x01, 0x18, 0xc0,
0x01, 0x18, 0xc0, 0x00, 0x18, 0xc0, 0x00, 0x38, 0xe0, 0x00, 0x70, 0x70, 0x00, 0xe0, 0xff, 0x00,
0xc0, 0xdf, 0x01, 0x00, 0xc0, 0x03, 0x00, 0x80, 0x07, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x1e, 0x00,
0x00, 0x3c, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap__a_frm15_40 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0xe0, 0x7f, 0x00, 0x60,
0xe0, 0x00, 0x30, 0xc0, 0x01, 0x30, 0x80, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80,
0x01, 0x38, 0x80, 0x01, 0x30, 0xc0, 0x01, 0x70, 0xe0, 0x00, 0xe0, 0xfb, 0x01, 0xc0, 0xbf, 0x03,
0x00, 0x86, 0x07, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x78, 0x00,
0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap__a_frm14_50 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, 0xc0, 0x7f, 0x00, 0xe0,
0xe0, 0x00, 0x30, 0xc0, 0x00, 0x38, 0xc0, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80,
0x01, 0x38, 0x80, 0x01, 0x30, 0xc0, 0x01, 0x70, 0xe0, 0x00, 0xe0, 0xf1, 0x00, 0xc0, 0xbf, 0x03,
0x00, 0x8f, 0x07, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x78, 0x00,
0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap__a_frm16_40 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0xc0, 0x3f, 0x00, 0xe0, 0x79, 0x00, 0x70,
0xe0, 0x00, 0x30, 0xc0, 0x01, 0x30, 0x80, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80,
0x01, 0x30, 0x80, 0x01, 0x70, 0xc0, 0x01, 0xe0, 0xe0, 0x00, 0xc0, 0xff, 0x03, 0x80, 0xbf, 0x07,
0x00, 0x00, 0x0f, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x78, 0x00, 0x00, 0x70, 0x00,
0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap__a_frm17_40 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0xc0, 0x7f, 0x00, 0xe0, 0xf1, 0x00, 0x70,
0xc0, 0x00, 0x30, 0xc0, 0x01, 0x38, 0x80, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80, 0x01, 0x38, 0x80,
0x01, 0x30, 0x80, 0x01, 0x70, 0xc0, 0x00, 0xe0, 0xf0, 0x00, 0xc0, 0xff, 0x03, 0x80, 0x1f, 0x0f,
0x00, 0x00, 0x1f, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x7c, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x60, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap__a_frm18_40 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, 0xc0, 0x7f, 0x00, 0xe0, 0xf0, 0x00, 0x70,
0xc0, 0x00, 0x30, 0xc0, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80,
0x01, 0x30, 0xc0, 0x01, 0x70, 0xe0, 0x00, 0xe0, 0xf1, 0x01, 0xc0, 0xbf, 0x07, 0x00, 0x0f, 0x0f,
0x00, 0x00, 0x1f, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x78, 0x00, 0x00, 0x70, 0x00, 0x00, 0x60, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap__a_frm19_40 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, 0xe0, 0x7f, 0x00, 0x70, 0xf0, 0x00, 0x30,
0xc0, 0x00, 0x18, 0xc0, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80, 0x01, 0x18, 0xc0,
0x01, 0x38, 0xc0, 0x00, 0x70, 0xe0, 0x00, 0xe0, 0xf9, 0x01, 0xc0, 0xbf, 0x07, 0x00, 0x8f, 0x0f,
0x00, 0x00, 0x1f, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x78, 0x00, 0x00, 0x70, 0x00, 0x00, 0x20, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap__a_frm20_50 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0xe0, 0x3f, 0x00, 0x70, 0x70, 0x00, 0x38,
0xe0, 0x00, 0x18, 0xc0, 0x00, 0x18, 0xc0, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80, 0x01, 0x18, 0xc0,
0x00, 0x38, 0xc0, 0x00, 0x70, 0xe0, 0x00, 0xe0, 0xf9, 0x01, 0xc0, 0xbf, 0x03, 0x00, 0x87, 0x07,
0x00, 0x00, 0x0f, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x78, 0x00, 0x00, 0x30, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap__a_frm22_40 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0xe0, 0x3f, 0x00, 0x70, 0x70, 0x00, 0x38,
0x60, 0x00, 0x18, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x1c, 0xc0,
0x00, 0x18, 0xe0, 0x00, 0x38, 0x70, 0x00, 0xf0, 0x78, 0x00, 0xe0, 0xdf, 0x01, 0x80, 0xc7, 0x03,
0x00, 0x80, 0x07, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x38, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap__a_frm21_40 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0xe0, 0x3f, 0x00, 0x70, 0x70, 0x00, 0x38,
0xe0, 0x00, 0x18, 0xc0, 0x00, 0x1c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x1c, 0xc0, 0x00, 0x18, 0xc0,
0x00, 0x18, 0xe0, 0x00, 0x30, 0x60, 0x00, 0xf0, 0xf8, 0x00, 0xe0, 0xdf, 0x03, 0x00, 0x87, 0x07,
0x00, 0x00, 0x0f, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x78, 0x00, 0x00, 0x30, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap__a_frm23_40 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0xe0, 0x3f, 0x00, 0x70, 0x78, 0x00, 0x38,
0x60, 0x00, 0x1c, 0xe0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0,
0x00, 0x18, 0xe0, 0x00, 0x38, 0x70, 0x00, 0x70, 0x78, 0x00, 0xe0, 0xdf, 0x01, 0x80, 0xc7, 0x03,
0x00, 0x80, 0x07, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x38, 0x00,
0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap__a_frm24_40 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0xe0, 0x1f, 0x00, 0x70, 0x38, 0x00, 0x38,
0x60, 0x00, 0x1c, 0xe0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0,
0x00, 0x1c, 0xe0, 0x00, 0x38, 0x70, 0x00, 0x70, 0x78, 0x00, 0xe0, 0xdf, 0x01, 0xc0, 0xcf, 0x03,
0x00, 0x80, 0x07, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x38, 0x00,
0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap__a_frm25_40 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0xe0, 0x1f, 0x00, 0x70, 0x38, 0x00, 0x38,
0x70, 0x00, 0x1c, 0xe0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0,
0x00, 0x1c, 0xe0, 0x00, 0x38, 0x70, 0x00, 0x70, 0x78, 0x00, 0xe0, 0xff, 0x01, 0xc0, 0xcf, 0x03,
0x00, 0xc0, 0x07, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x3c, 0x00,
0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap__a_frm26_50 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0xe0, 0x1f, 0x00, 0x70, 0x38, 0x00, 0x38,
0x70, 0x00, 0x1c, 0xe0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0,
0x00, 0x1c, 0xe0, 0x00, 0x38, 0x70, 0x00, 0x70, 0x78, 0x00, 0xe0, 0xff, 0x01, 0xc0, 0xcf, 0x03,
0x00, 0xc0, 0x07, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x3c, 0x00,
0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap__a_frm27_50 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0xe0, 0x1f, 0x00, 0x70, 0x38, 0x00, 0x38,
0x70, 0x00, 0x1c, 0xe0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0,
0x00, 0x1c, 0xe0, 0x00, 0x38, 0x70, 0x00, 0x70, 0x78, 0x00, 0xe0, 0xff, 0x01, 0xc0, 0xcf, 0x03,
0x00, 0xc0, 0x07, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x3c, 0x00,
0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap__a_frm0_40 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0xe0, 0x1f, 0x00, 0x70, 0x38, 0x00, 0x38,
0x70, 0x00, 0x1c, 0xe0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0,
0x00, 0x1c, 0xe0, 0x00, 0x38, 0x70, 0x00, 0x70, 0x78, 0x00, 0xe0, 0xff, 0x01, 0xc0, 0xcf, 0x03,
0x00, 0xc0, 0x07, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x3c, 0x00,
0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap__a_frm1_40 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0xe0, 0x1f, 0x00, 0x70, 0x38, 0x00, 0x38,
0x70, 0x00, 0x1c, 0xe0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0,
0x00, 0x1c, 0xe0, 0x00, 0x38, 0x70, 0x00, 0x70, 0x78, 0x00, 0xe0, 0xff, 0x01, 0xc0, 0xcf, 0x03,
0x00, 0xc0, 0x07, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x3c, 0x00,
0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap__a_frm2_50 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0xe0, 0x1f, 0x00, 0x70, 0x38, 0x00, 0x38,
0x70, 0x00, 0x1c, 0xe0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0,
0x00, 0x1c, 0xe0, 0x00, 0x38, 0x70, 0x00, 0x70, 0x78, 0x00, 0xe0, 0xff, 0x01, 0xc0, 0xcf, 0x03,
0x00, 0xc0, 0x07, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x3c, 0x00,
0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char epd_bitmap__a_frm3_40 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0xe0, 0x1f, 0x00, 0x70, 0x38, 0x00, 0x38,
0x70, 0x00, 0x1c, 0xe0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x0c, 0xc0,
0x00, 0x1c, 0xe0, 0x00, 0x38, 0x70, 0x00, 0x70, 0x78, 0x00, 0xe0, 0xff, 0x01, 0xc0, 0xcf, 0x03,
0x00, 0xc0, 0x07, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x3c, 0x00,
0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char* epd_bitmap_allArray[28] = {
epd_bitmap__a_frm0_40,
epd_bitmap__a_frm10_40,
epd_bitmap__a_frm11_40,
epd_bitmap__a_frm12_40,
epd_bitmap__a_frm13_40,
epd_bitmap__a_frm14_50,
epd_bitmap__a_frm15_40,
epd_bitmap__a_frm16_40,
epd_bitmap__a_frm17_40,
epd_bitmap__a_frm18_40,
epd_bitmap__a_frm19_40,
epd_bitmap__a_frm1_40,
epd_bitmap__a_frm20_50,
epd_bitmap__a_frm21_40,
epd_bitmap__a_frm22_40,
epd_bitmap__a_frm23_40,
epd_bitmap__a_frm24_40,
epd_bitmap__a_frm25_40,
epd_bitmap__a_frm26_50,
epd_bitmap__a_frm27_50,
epd_bitmap__a_frm2_50,
epd_bitmap__a_frm3_40,
epd_bitmap__a_frm4_40,
epd_bitmap__a_frm5_40,
epd_bitmap__a_frm6_40,
epd_bitmap__a_frm7_40,
epd_bitmap__a_frm8_50,
epd_bitmap__a_frm9_40
};
void setup(void) {
u8g2.begin();
Serial.begin(115200);
pinMode(btnup , INPUT_PULLUP);
pinMode(btndown, INPUT_PULLUP);
pinMode(btnok , INPUT_PULLUP);
pinMode(btnback, INPUT_PULLUP);
dht.begin();
u8g2.enableUTF8Print();
u8g2.setFontMode(1);
u8g2.setDrawColor(1);
u8g2.setBitmapMode(1);
}
void loop(void) {
u8g2menu();
}
void u8g2menu(void) {
boolean up = digitalRead(btnup) ;
boolean down = digitalRead(btndown);
boolean enter = digitalRead(btnok) ;
boolean back = digitalRead(btnback);
if (down == LOW) {
selected = selected + 1;
if (selected >= maxmenu) selected = 0;
delay(200);
};
if (up == LOW) {
selected = selected - 1;
if (selected < 0) selected = maxmenu - 1;
delay(200);
};
if (enter == LOW) {
if (page == 0) {
switch (selected) {
case 0:
page += 1;
scanning = true;
break;
case 1:
page += 2;
break;
case 2:
page += 3;
break;
case 3:
page += 4;
break;
default:
page == 0;
break;
}
}
// if (page >=0) {
// scanning = true;
// }
};
if (back == LOW) {
page = 0;
};
char *options[] = {
"Wifi Scan",
"Temperature",
"Animation",
"Setting",
"help",
};
if (page == 0) {
u8g2.clearBuffer();
u8g2.drawLine(3, 13, 125, 13);
int yPos = 25;
int yframepos = 16;
int i;
for (i = 0; i < maxmenu; i++) {
if (i == selected) {
u8g2.setFont(u8g2_font_courB08_tr);
u8g2.drawFrame(8,yframepos,112,13);
u8g2.setCursor(12, yPos);
u8g2.print(options[i]);
} else {
u8g2.setFont(u8g2_font_04b_03_tr);
u8g2.setCursor(12, yPos);
u8g2.println(options[i]);
}
yPos += optionSpacing;
yframepos += optionSpacing;
}
} else if (page >= 1 && page <=4) {
// wifi();
}
u8g2.drawFrame(0, 0, 128, 64);
u8g2.drawFrame(2, 2, 124, 60);
u8g2.sendBuffer();
Serial.println(page);
}
// void wifi(void){
// scanning = true;
// WiFi.mode(WIFI_STA);
// WiFi.disconnect();
// delay(100);
// int npos = 22;
// u8g2.setFont(u8g2_font_courB08_tr);
// int n = WiFi.scanNetworks();
// while (scanning && progress == 0) {
// for(progress = 0; progress <= 100; progress++) {
// u8g2.clearBuffer();
// u8g2.setBitmapMode(1);
// u8g2.drawFrame(12, 49, 104, 15);
// u8g2.drawBox(14, 51, progress, 11);
// u8g2.setFont(u8g2_font_helvB08_tr);
// u8g2.drawStr(5, 10, "Searching for Network");
// u8g2.drawXBMP(52, 20, 24, 24, epd_bitmap_allArray[frame]);
// u8g2.sendBuffer();
// frame = (frame + 1) % 28;
// delay(42);
// }
// u8g2.clearBuffer();
// u8g2.setFont(u8g2_font_helvB08_tr);
// u8g2.drawStr(20,20,"scan successful");
// u8g2.sendBuffer();
// scanning = false;
// delay(2000);
// }
// u8g2.clearBuffer();
// if (n == 0) {
// u8g2.drawStr(5, 5, "no networks found");
// } else {
// u8g2.setCursor(4, 11);
// u8g2.print(n);
// u8g2.print(" Networks Found");
// for (int i = 0; i < n; ++i) {
// u8g2.setCursor(4, npos);
// u8g2.print(i + 1);
// u8g2.print(" ");
// String ssid = WiFi.SSID(i).substring(0, 15); // Memotong nama SSID menjadi 15 karakter
// u8g2.print(ssid.c_str());
// npos += optionSpacing;
// // // Serial.printf("%4ld", WiFi.RSSI(i));
// // // Serial.print(" | ");
// // // Serial.printf("%2ld", WiFi.channel(i));
// // // Serial.print(" | ");
// // // switch (WiFi.encryptionType(i))
// // // {
// // // case ENC_TYPE_WEP:
// // // Serial.print("WEP");
// // // break;
// // // case ENC_TYPE_TKIP:
// // // Serial.print("WPA");
// // // break;
// // // case ENC_TYPE_CCMP:
// // // Serial.print("WPA2");
// // // break;
// // // case ENC_TYPE_NONE:
// // // Serial.print("NONE");
// // // break;
// // // case ENC_TYPE_AUTO:
// // // Serial.print("AUTO");
// // // break;
// // // default:
// // // Serial.print("unknown");
// // // }
// // // Serial.println();
// // // delay(10);
// }
// }
// // delay(2000);
// // WiFi.scanDelete();
// }
// void temp(){
// float h = dht.readHumidity();
// float t = dht.readTemperature();
// float f = dht.readTemperature(true);
// if (isnan(h) || isnan(t) || isnan(f)) {
// u8g2.println(F("Failed to read from DHT sensor!"));
// return;
// }
// Serial.print(F("Humidity: "));
// Serial.print(h);
// Serial.print(F("% Temperature: "));
// Serial.print(t);
// Serial.print(F("°C "));
// Serial.print(f);
// Serial.print(F("°F"));
// }
// void logicontras(){
// if (digitalRead(D3) == LOW) {
// delay(100); // Debouncing
// // Tombol ditekan, tambahkan kontras sebanyak 25
// contrast += 25;
// if (contrast > 255) {
// contrast = 255; // Batasi kontras maksimum menjadi 255
// }
// u8g2.setContrast(contrast);
// u8g2Contrast(); // Tampilkan nilai kontras baru
// }
// // Baca tombol 2
// if (digitalRead(D6) == LOW) {
// delay(100); // Debouncing
// // Tombol ditekan, kurangi kontras sebanyak 25
// contrast -= 25;
// if (contrast < 6) {
// contrast = 1; // Batasi kontras minimum menjadi 0
// }
// u8g2.setContrast(contrast);
// u8g2Contrast(); // Tampilkan nilai kontras baru
// }
// }
// void u8g2Contrast() {
// u8g2.clearBuffer(); // Hapus buffer layar
// u8g2.setFont(u8g2_font_ncenB14_tr);
// u8g2.setCursor(0, 20);
// u8g2.print("Kontras = ");
// u8g2.println(contrast);
// u8g2.sendBuffer(); // Kirim buffer ke layar
// }