79 lines
1.7 KiB
C++
79 lines
1.7 KiB
C++
#define ENABLE_GxEPD2_GFX 0
|
|
|
|
#include <GxEPD2_BW.h>
|
|
#include <WiFi.h>
|
|
#include "creds.h"
|
|
#include "dow_fetch.h"
|
|
#include "dow.h"
|
|
|
|
#define DOW_ENDPOINT "http://screen-data.lan/api/dow"
|
|
// #define DOW_ENDPOINT "http://192.168.0.210:8062/api/dow"
|
|
|
|
GxEPD2_BW<GxEPD2_583_GDEQ0583T31, GxEPD2_583_GDEQ0583T31::HEIGHT> display(GxEPD2_583_GDEQ0583T31(/*CS=*/GPIO_NUM_5, /*DC=*/GPIO_NUM_17, /*RST=*/GPIO_NUM_16, /*BUSY=*/GPIO_NUM_4)); // GDEQ0583T31 648x480, UC8179, (P583010-MF1-B)
|
|
|
|
const char *ssid = WIFI_SSID;
|
|
const char *password = WIFI_PASS;
|
|
|
|
void setup()
|
|
{
|
|
Serial.begin(115200);
|
|
Serial.println();
|
|
Serial.println("setup");
|
|
|
|
delay(100);
|
|
|
|
Serial.println("Display power ON");
|
|
|
|
display.init(115200);
|
|
display.fillScreen(GxEPD_WHITE);
|
|
|
|
display.setFont(&FreeSans12pt7b);
|
|
|
|
int16_t tbx, tby;
|
|
uint16_t tbw, tbh;
|
|
display.getTextBounds("connecting...", 0, 0, &tbx, &tby, &tbw, &tbh);
|
|
// center bounding box by transposition of origin:
|
|
uint16_t x = ((display.width() - tbw) / 2) - tbx;
|
|
uint16_t y = ((display.height() - tbh) / 2) - tby;
|
|
|
|
display.setFullWindow();
|
|
display.setRotation(0);
|
|
display.setTextColor(GxEPD_BLACK);
|
|
display.firstPage();
|
|
do
|
|
{
|
|
display.fillScreen(GxEPD_WHITE);
|
|
display.setCursor(x, y);
|
|
display.print("connecting...");
|
|
} while (display.nextPage());
|
|
|
|
Serial.print("Connecting to wifi: ");
|
|
|
|
delay(500);
|
|
|
|
WiFi.begin(ssid, password);
|
|
|
|
while (WiFi.status() != WL_CONNECTED)
|
|
{
|
|
delay(500);
|
|
Serial.print(".");
|
|
}
|
|
|
|
Serial.println("");
|
|
Serial.print("Connected");
|
|
|
|
delay(500);
|
|
}
|
|
|
|
std::vector<dow_item_t> current_items;
|
|
|
|
void loop()
|
|
{
|
|
dow_fetch(DOW_ENDPOINT, current_items);
|
|
dow_render(display, current_items);
|
|
|
|
display.powerOff();
|
|
|
|
delay(10000);
|
|
}
|