#include #include #include #include "calendar.h" #include "draw_qrcode.h" #include "weather.h" #include "secrets.h" #define USE_DHCP 0 /* see GxEPD2_WS_ESP32_Driver.ino and esp32-waveshare-epd/src/DEV_Config.h #define EPD_SCK_PIN 13 #define EPD_MOSI_PIN 14 #define EPD_CS_PIN 15 #define EPD_RST_PIN 26 #define EPD_DC_PIN 27 #define EPD_BUSY_PIN 25 mapping of Waveshare ESP32 Driver Board BUSY -> 25, RST -> 26, DC -> 27, CS-> 15, CLK -> 13, DIN -> 14 */ GxEPD2_BW display(GxEPD2_420(/*CS=*/ 15, /*DC=*/ 27, /*RST=*/ 26, /*BUSY=*/ 25)); U8G2_FOR_ADAFRUIT_GFX u8g2Fonts; extern GxEPD2_GFX_BASE_CLASS &get_display() { return display; } void board_spi_setup() { /* board-specific setup */ SPI.end(); SPI.begin(13, 12, 14, 15); } void display_setup() { display.init(); board_spi_setup(); u8g2Fonts.begin(display); } void draw() { display.setRotation(1); u8g2Fonts.setBackgroundColor(GxEPD_WHITE); u8g2Fonts.setForegroundColor(GxEPD_BLACK); display.firstPage(); do { display.fillScreen(GxEPD_WHITE); draw_calendar(30, 10); draw_weather(10, 180); //draw_qrcode_wlan(30, 200, wifi_ssid, wifi_psk); } while(display.nextPage()); } void wifi_connect() { #if !USE_DHCP IPAddress ip{10, 0, 0, 8}; //IPAddress dns{8, 8, 8, 8}; IPAddress gateway{10, 0, 0, 1}; IPAddress subnet{255, 255, 255, 0}; WiFi.config(ip, gateway, subnet, gateway); #endif WiFi.begin(wifi_ssid, wifi_psk); while (WiFi.status() != WL_CONNECTED) { delay(500); } } void wifi_disconnect() { WiFi.disconnect(); WiFi.mode(WIFI_OFF); } void update_time() { struct tm timeinfo; configTime(0, 0, "de.pool.ntp.org"); getLocalTime(&timeinfo, 5000); } void setup() { Serial.begin(115200); wifi_connect(); update_time(); fetch_weather(); wifi_disconnect(); display_setup(); draw(); display.powerOff(); } void loop() { delay(1000); }