#include #include #include #include #include "calendar.h" #include "draw_qrcode.h" #include "secrets.h" /* 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)); void board_spi_setup() { /* board-specific setup */ SPI.end(); SPI.begin(13, 12, 14, 15); } void display_setup() { display.init(); board_spi_setup(); } void draw() { display.setRotation(1); display.setFont(&FreeSans9pt7b); display.setTextColor(GxEPD_BLACK); display.firstPage(); do { display.fillScreen(GxEPD_WHITE); draw_calendar(display, 30, 30); draw_qrcode_wlan(display, 30, 200, wifi_ssid, wifi_psk); } while(display.nextPage()); } void wifi_connect() { 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(); wifi_disconnect(); display_setup(); draw(); display.powerOff(); } void loop() { delay(1000); }