Advertisement
RobinRS

Arduino Code

Feb 25th, 2020
414
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Arduino 22.80 KB | None | 0 0
  1. #include <GxEPD2_BW.h>
  2. #include <GxEPD2_3C.h>
  3. #include <GxEPD2_GFX.h>
  4.  
  5. #include <Fonts/FreeSansBold12pt7b.h>
  6. #include <Fonts/FreeSansBold24pt7b.h>
  7. #include <Fonts/FreeSans24pt7b.h>
  8.  
  9. #include <Adafruit_GFX.h>
  10. #include <ArduinoJson.h>
  11. #include <SPI.h>
  12. #include <WiFi.h>
  13. #include <HTTPClient.h>
  14. #include "time.h"
  15. #include "driver/adc.h"
  16. #include <esp_wifi.h>
  17. #include <esp_bt.h>
  18. #include <string.h>
  19.  
  20. #define NTP_SERVER "de.pool.ntp.org"
  21. #define TZ_INFO "WEST-1DWEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00" // Western European Time
  22.  
  23. //Dispaly Initialization
  24. GxEPD2_BW<GxEPD2_750_T7, GxEPD2_750_T7::HEIGHT> display(GxEPD2_750_T7(/*CS=5*/ 15, /*DC=*/ 27, /*RST=*/ 26, /*BUSY=*/ 25)); // GDEW075T7 800x480
  25.  
  26. //Variables saved after DeepSleep
  27. // ----- ! IMPORTANT ! ----------
  28. // Strings can not be stored!
  29. RTC_DATA_ATTR int sleeptime;
  30. RTC_DATA_ATTR int requests = 1;
  31. RTC_DATA_ATTR int intBlank;
  32. RTC_DATA_ATTR int intBlankold = 99; //Set to any number except 0,1 for the first Display-Refresh
  33.  
  34. void setup() //------------------------------------------- SETUP --------------------------------------------------------------------
  35. {
  36.   int httpResponseCode;
  37.   String room;
  38.   String department;
  39.   String layout;
  40.   String first_word;
  41.   String first_row;
  42.   String second_row;
  43.   String third_row;
  44.   String needRefresh;
  45.   String displayblank;
  46.  
  47.   //Time needs to be configured after DeepSleep
  48.   timezoneConfiguration();
  49.  
  50.   //If ESP32-first-start then the time needs to be initialized
  51.   esp_sleep_wakeup_cause_t wakeup_cause;
  52.   wakeup_cause = esp_sleep_get_wakeup_cause();
  53.   if (wakeup_cause != 4){
  54.     timeInitialisation();
  55.   }
  56.  
  57.   do{
  58.   //HTTP-Request
  59.   HTTPRequest(room, layout, department, first_word, first_row, second_row, third_row, sleeptime, displayblank, needRefresh, httpResponseCode, requests);
  60.   requests = requests + 1;
  61.   }while(sleeptime == 0);
  62.  
  63.   if(displayblank == "false"){
  64.     intBlank = 1;
  65.      if(intBlank != intBlankold){
  66.         drawInformation(room, layout, department, first_word, first_row, second_row, third_row);
  67.      }else{
  68.         //Kein Refresh notwendig
  69.     }
  70.   }else if(displayblank == "true"){
  71.     intBlank = 0;
  72.     if(intBlank != intBlankold){
  73.        drawBlank(room, department);
  74.     }else{
  75.         //Kein Refresh notwendig
  76.     }
  77.   }
  78.  
  79.   intBlankold = intBlank;
  80.   DeepSleep(sleeptime);
  81. }
  82.    
  83.  
  84. void loop() //------------------------------------------- LOOP --------------------------------------------------------------------
  85. {
  86.     // This code won't be executed
  87. }
  88.  
  89. //------------------------------------------- FUNCTIONS ------------------------------------------------------------
  90.  
  91. void timezoneConfiguration(){
  92.     setenv("TZ", TZ_INFO, 1);             // Zeitzone  muss nach dem reset neu eingestellt werden
  93.     tzset();
  94.   }
  95.  
  96.  
  97. void timeInitialisation(){
  98.     // WiFi connection
  99.     delay(4000);
  100.     WiFi.begin("<wifiname>");                  
  101.     while (WiFi.status() != WL_CONNECTED) {  //Wait for the WiFI connection completion
  102.     }
  103.    
  104.     struct tm local;
  105.     configTzTime(TZ_INFO, NTP_SERVER); // ESP32 Systemzeit mit NTP Synchronisieren
  106.     getLocalTime(&local, 10000);      // Versuche 10 s zu Synchronisieren
  107.  
  108. }
  109.  
  110. void DeepSleep(int sleeptime){
  111.   adc_power_off();
  112.   esp_wifi_stop();
  113.   esp_bt_controller_disable();
  114.  
  115.   //Time in miliseconds = seconds * factor
  116.   esp_sleep_enable_timer_wakeup((uint64_t)(sleeptime) * 1000000);
  117.   esp_deep_sleep_start();
  118. }
  119.  
  120.  
  121. void HTTPRequest(String &room, String &layout, String &department, String &first_word, String &first_row, String &second_row, String &third_row, int &sleeptime, String &displayblank, String &needRefresh, int &httpResponseCode, int &requests){
  122.  
  123.   // WiFi connection
  124.   delay(4000);
  125.   WiFi.begin("<wifiname>");                  
  126.   while (WiFi.status() != WL_CONNECTED) {  //Wait for the WiFI connection completion
  127.   }
  128.  
  129.   //Check WiFi connection status
  130.   if(WiFi.status()== WL_CONNECTED){
  131.  
  132.     //POST-Request to HANA
  133.     HTTPClient https;
  134.       https.begin("<url>", "<ssl cert>");
  135.       https.addHeader("Content-Type", "application/json");  //Specify content-type header
  136.       https.addHeader("Authorization", "Basic <user>");
  137.       httpResponseCode = https.POST("{\"macaddres\":\"" + WiFi.macAddress() + "\" , \"displaydo\":\"action\" , \"requests\":\"" + requests + "\"}"); //Send the actual POST request
  138.  
  139.       String response = https.getString();  //Get the response to the request
  140.      
  141.       DynamicJsonDocument doc(1024);
  142.       deserializeJson(doc, response);
  143.  
  144.      // Data from first HTTP Request
  145.      room = doc["ROM"].as<String>();
  146.      layout = doc["LAY"].as<String>();
  147.      department = doc["TIT"].as<String>();
  148.      first_word = doc["COD"].as<String>();
  149.      first_row = doc["RW1"].as<String>();
  150.      second_row = doc["RW2"].as<String>();
  151.      third_row = doc["RW3"].as<String>();
  152.      sleeptime = doc["SLE"];
  153.      displayblank = doc["BLA"].as<String>();
  154.      needRefresh = doc["DPR"].as<String>();
  155.  
  156.     //close HTTP-Connection
  157.     https.end();
  158.   }
  159.   WiFi.disconnect();
  160.   WiFi.mode(WIFI_OFF);
  161.   btStop();
  162. }
  163.  
  164. void drawInformation(String room, String layout, String department, String first_word, String first_row, String second_row, String third_row)
  165. {
  166.  
  167.   // Initialization
  168.   display.init(115200); // enable diagnostic output on Serial
  169.   SPI.end(); // release standard SPI pins, e.g. SCK(18), MISO(19), MOSI(23), SS(5)
  170.   SPI.begin(13, 12, 14, 15); // map and init SPI pins SCK(13), MISO(12), MOSI(14), SS(15)
  171.  
  172.   int16_t tbx, tby; uint16_t tbw, tbh;
  173.   uint16_t x = ((display.width() - tbw) / 2) - tbx;
  174.   uint16_t y = ((display.height() - tbh) / 2) - tby;
  175.   display.setTextColor(GxEPD_BLACK);
  176.   display.setFullWindow();
  177.   display.firstPage();
  178.   display.fillScreen(GxEPD_WHITE);
  179.   display.setFont(&FreeSansBold12pt7b);
  180.  
  181.   do
  182.   {
  183.     const unsigned char gImage_test4[1300] = { /* 0X00,0X01,0X64,0X00,0X64,0X00, */
  184.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,
  185.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  186.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  187.     0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  188.     0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,
  189.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,
  190.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  191.     0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  192.     0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,
  193.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XF0,0X00,0X00,
  194.    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X10,0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,
  195.     0X00,0X00,0X00,0X00,0X00,0X30,0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  196.     0X00,0X00,0X70,0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XF0,
  197.     0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0XF0,0XFF,0XF0,0X00,
  198.     0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XF0,0XFF,0XF0,0X00,0X00,0X00,0X00,
  199.     0X00,0X00,0X00,0X00,0X00,0X07,0XF0,0XFF,0XF0,0X07,0XF0,0X00,0X00,0X00,0X00,0X00,
  200.     0X00,0X00,0X0F,0XF0,0XFF,0XF0,0X3F,0XFF,0X00,0X7F,0X80,0XFF,0XFE,0X00,0X00,0X1F,
  201.     0XF0,0XFF,0XF0,0X7F,0XFF,0XC0,0XFF,0XC0,0XFF,0XFF,0X80,0X00,0X3F,0XF0,0XFF,0XF0,
  202.     0XFF,0XFF,0XC0,0XFF,0XC0,0XFF,0XFF,0XE0,0X00,0X7F,0XF0,0XFF,0XF1,0XFF,0XFF,0XC1,
  203.     0XFF,0XC0,0XFF,0XFF,0XF0,0X00,0XFF,0XF0,0XFF,0XF3,0XFF,0XFF,0X81,0XFF,0XE0,0XFF,
  204.     0XFF,0XF0,0X01,0XFF,0XF0,0XFF,0XF3,0XFF,0XFF,0X81,0XFF,0XE0,0XFF,0XFF,0XF8,0X03,
  205.     0XFF,0XF0,0XFF,0XF3,0XFC,0X07,0X03,0XFF,0XE0,0XFF,0X0F,0XF8,0X07,0XFF,0XF0,0XFF,
  206.     0XF7,0XFC,0X00,0X03,0XFF,0XF0,0XFF,0X07,0XF8,0X0F,0XFF,0XF0,0XFF,0XF3,0XFE,0X00,
  207.     0X03,0XFF,0XF0,0XFF,0X07,0XF8,0X1F,0XFF,0XF0,0XFF,0XF3,0XFF,0X80,0X07,0XFF,0XF0,
  208.     0XFF,0X07,0XF8,0X3F,0XFF,0XF0,0XFF,0XF3,0XFF,0XF0,0X07,0XF7,0XF8,0XFF,0X07,0XF8,
  209.     0X7F,0XFF,0XF0,0XFF,0XF3,0XFF,0XFC,0X0F,0XF7,0XF8,0XFF,0X0F,0XF8,0XFF,0XFF,0XF0,
  210.     0XFF,0XF1,0XFF,0XFF,0X0F,0XF3,0XF8,0XFF,0XFF,0XF9,0XFF,0XFF,0XF0,0XFF,0XF0,0XFF,
  211.     0XFF,0X8F,0XF3,0XFC,0XFF,0XFF,0XF3,0XFF,0XFF,0XF0,0XFF,0XF0,0X7F,0XFF,0XDF,0XE3,
  212.     0XFC,0XFF,0XFF,0XF7,0XFF,0XFF,0XF0,0XFF,0XF0,0X1F,0XFF,0XFF,0XE1,0XFE,0XFF,0XFF,
  213.     0XEF,0XFF,0XFF,0XF0,0XFF,0XF0,0X03,0XFF,0XFF,0XE1,0XFE,0XFF,0XFF,0XDF,0XFF,0XFF,
  214.     0XF0,0XFF,0XF0,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XBF,0XFF,0XFF,0XF0,0XFF,0XF0,
  215.     0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFC,0X7F,0XFF,0XFF,0XF0,0XFF,0XF0,0XC0,0X1F,0XFF,
  216.     0XFF,0XFF,0XFF,0X00,0XFF,0XFF,0XFF,0XF0,0XFF,0XF0,0XF0,0X3F,0XFF,0XFF,0XFF,0XFF,
  217.     0X01,0XFF,0XFF,0XFF,0XF0,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X03,0XFF,0XFF,
  218.     0XFF,0XF0,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X07,0XFF,0XFF,0XFF,0XF0,0XFF,
  219.     0XF3,0XFF,0XFF,0XFF,0XBF,0X7F,0XFF,0X0F,0XFF,0XFF,0XFF,0XF0,0XFF,0XF3,0XFF,0XFF,
  220.     0XFF,0X00,0X7F,0XFF,0X1F,0XFF,0XFF,0XFF,0XF0,0XFF,0XF1,0XFF,0XFF,0XFF,0X00,0X3F,
  221.     0XFF,0X3F,0XFF,0XFF,0XFF,0XF0,0XFF,0XF0,0X7F,0XF9,0XFE,0X00,0X3F,0XFF,0X7F,0XFF,
  222.     0XFF,0XFF,0XF0,0XFF,0XF0,0X03,0X80,0X00,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XF0,
  223.    0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XF0,0X00,
  224.     0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XF0,0X00,0X00,0X00,0X00,
  225.     0X00,0X07,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,
  226.     0XFF,0XFF,0XFF,0XF0,0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,
  227.     0XF0,0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XF0,
  228.     0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,
  229.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  230.     0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  231.     0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,
  232.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,
  233.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  234.     0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  235.     0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,
  236.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,
  237.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  238.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  239.     0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  240.     0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,
  241.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,
  242.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  243.     0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  244.     0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,
  245.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,
  246.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  247.     0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  248.     0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,
  249.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,
  250.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  251.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  252.    0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  253.     0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,
  254.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,
  255.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  256.     0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  257.     0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,
  258.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,
  259.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  260.     0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  261.     0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,
  262.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,
  263.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  264.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  265.     0XFF,0XFF,0XFF,0XF0,};
  266.  
  267.     //SAP-Logo
  268.     display.drawInvertedBitmap(0, 0, gImage_test4, 100, 100, GxEPD_BLACK);
  269.  
  270.     //Lines
  271.     display.drawFastHLine(0, 69, 800, GxEPD_BLACK);
  272.     display.drawFastHLine(0, 70, 800, GxEPD_BLACK);
  273.     display.drawFastHLine(0, 71, 800, GxEPD_BLACK);
  274.     display.drawFastHLine(0, 409, 800, GxEPD_BLACK);
  275.     display.drawFastHLine(0, 410, 800, GxEPD_BLACK);
  276.     display.drawFastHLine(0, 411, 800, GxEPD_BLACK);
  277.  
  278.     //Department
  279.     display.setCursor(110, 45);
  280.     display.print(department);
  281.  
  282.     //Date and room
  283.     if(room != "null"){
  284.       display.setCursor(720, 455);
  285.       display.println(room);
  286.     }
  287.    
  288.     tm local;
  289.     getLocalTime(&local);
  290.     display.setCursor(20, 455);
  291.     display.println(&local, "%d.%m.%y");
  292.    
  293.     //Course
  294.     if (layout == "tra") {
  295.         if(first_word != "null"){
  296.           display.setFont(&FreeSansBold24pt7b);
  297.           display.setCursor(30, 180);
  298.           display.println(first_word);
  299.         }
  300.         if(first_row != "null"){
  301.           display.setFont(&FreeSans24pt7b);
  302.           display.setCursor(30, 260);
  303.           display.println(first_row);
  304.         }
  305.         if(second_row != "null"){
  306.           display.setCursor(30, 310);
  307.           display.println(second_row);
  308.         }
  309.         if(third_row != "null"){
  310.           display.setCursor(30, 360);
  311.           display.println(third_row);
  312.         }
  313.        
  314.     }
  315.     else if (layout == "oth") {
  316.         if(first_row != "null"){
  317.           display.setFont(&FreeSans24pt7b);
  318.           display.setCursor(30, 210);
  319.           display.println(first_row);
  320.         }
  321.         if(second_row != "null"){
  322.           display.setCursor(30, 260);
  323.           display.println(second_row);
  324.         }
  325.         if(third_row != "null"){
  326.           display.setCursor(30, 310);
  327.           display.println(third_row);
  328.         }
  329.     }
  330.   }
  331.   while (display.nextPage());
  332.   SPI.end();
  333. }
  334.  
  335. void drawBlank(String room, String department){
  336.  
  337.   // Initialization
  338.   display.init(115200); // enable diagnostic output on Serial
  339.   SPI.end(); // release standard SPI pins, e.g. SCK(18), MISO(19), MOSI(23), SS(5)
  340.   SPI.begin(13, 12, 14, 15); // map and init SPI pins SCK(13), MISO(12), MOSI(14), SS(15)
  341.  
  342.   int16_t tbx, tby; uint16_t tbw, tbh;
  343.   uint16_t x = ((display.width() - tbw) / 2) - tbx;
  344.   uint16_t y = ((display.height() - tbh) / 2) - tby;
  345.   display.setTextColor(GxEPD_BLACK);
  346.   display.setFullWindow();
  347.   display.firstPage();
  348.   display.fillScreen(GxEPD_WHITE);
  349.   display.setFont(&FreeSansBold12pt7b);
  350.  
  351.   do
  352.   {
  353.     const unsigned char gImage_test4[1300] = { /* 0X00,0X01,0X64,0X00,0X64,0X00, */
  354.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,
  355.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  356.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  357.     0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  358.     0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,
  359.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,
  360.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  361.     0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  362.     0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,
  363.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XF0,0X00,0X00,
  364.     0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X10,0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,
  365.     0X00,0X00,0X00,0X00,0X00,0X30,0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
  366.     0X00,0X00,0X70,0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XF0,
  367.     0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0XF0,0XFF,0XF0,0X00,
  368.    0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XF0,0XFF,0XF0,0X00,0X00,0X00,0X00,
  369.     0X00,0X00,0X00,0X00,0X00,0X07,0XF0,0XFF,0XF0,0X07,0XF0,0X00,0X00,0X00,0X00,0X00,
  370.     0X00,0X00,0X0F,0XF0,0XFF,0XF0,0X3F,0XFF,0X00,0X7F,0X80,0XFF,0XFE,0X00,0X00,0X1F,
  371.     0XF0,0XFF,0XF0,0X7F,0XFF,0XC0,0XFF,0XC0,0XFF,0XFF,0X80,0X00,0X3F,0XF0,0XFF,0XF0,
  372.     0XFF,0XFF,0XC0,0XFF,0XC0,0XFF,0XFF,0XE0,0X00,0X7F,0XF0,0XFF,0XF1,0XFF,0XFF,0XC1,
  373.     0XFF,0XC0,0XFF,0XFF,0XF0,0X00,0XFF,0XF0,0XFF,0XF3,0XFF,0XFF,0X81,0XFF,0XE0,0XFF,
  374.     0XFF,0XF0,0X01,0XFF,0XF0,0XFF,0XF3,0XFF,0XFF,0X81,0XFF,0XE0,0XFF,0XFF,0XF8,0X03,
  375.     0XFF,0XF0,0XFF,0XF3,0XFC,0X07,0X03,0XFF,0XE0,0XFF,0X0F,0XF8,0X07,0XFF,0XF0,0XFF,
  376.     0XF7,0XFC,0X00,0X03,0XFF,0XF0,0XFF,0X07,0XF8,0X0F,0XFF,0XF0,0XFF,0XF3,0XFE,0X00,
  377.     0X03,0XFF,0XF0,0XFF,0X07,0XF8,0X1F,0XFF,0XF0,0XFF,0XF3,0XFF,0X80,0X07,0XFF,0XF0,
  378.     0XFF,0X07,0XF8,0X3F,0XFF,0XF0,0XFF,0XF3,0XFF,0XF0,0X07,0XF7,0XF8,0XFF,0X07,0XF8,
  379.     0X7F,0XFF,0XF0,0XFF,0XF3,0XFF,0XFC,0X0F,0XF7,0XF8,0XFF,0X0F,0XF8,0XFF,0XFF,0XF0,
  380.     0XFF,0XF1,0XFF,0XFF,0X0F,0XF3,0XF8,0XFF,0XFF,0XF9,0XFF,0XFF,0XF0,0XFF,0XF0,0XFF,
  381.     0XFF,0X8F,0XF3,0XFC,0XFF,0XFF,0XF3,0XFF,0XFF,0XF0,0XFF,0XF0,0X7F,0XFF,0XDF,0XE3,
  382.     0XFC,0XFF,0XFF,0XF7,0XFF,0XFF,0XF0,0XFF,0XF0,0X1F,0XFF,0XFF,0XE1,0XFE,0XFF,0XFF,
  383.     0XEF,0XFF,0XFF,0XF0,0XFF,0XF0,0X03,0XFF,0XFF,0XE1,0XFE,0XFF,0XFF,0XDF,0XFF,0XFF,
  384.     0XF0,0XFF,0XF0,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XBF,0XFF,0XFF,0XF0,0XFF,0XF0,
  385.     0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFC,0X7F,0XFF,0XFF,0XF0,0XFF,0XF0,0XC0,0X1F,0XFF,
  386.     0XFF,0XFF,0XFF,0X00,0XFF,0XFF,0XFF,0XF0,0XFF,0XF0,0XF0,0X3F,0XFF,0XFF,0XFF,0XFF,
  387.     0X01,0XFF,0XFF,0XFF,0XF0,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X03,0XFF,0XFF,
  388.     0XFF,0XF0,0XFF,0XF1,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X07,0XFF,0XFF,0XFF,0XF0,0XFF,
  389.     0XF3,0XFF,0XFF,0XFF,0XBF,0X7F,0XFF,0X0F,0XFF,0XFF,0XFF,0XF0,0XFF,0XF3,0XFF,0XFF,
  390.     0XFF,0X00,0X7F,0XFF,0X1F,0XFF,0XFF,0XFF,0XF0,0XFF,0XF1,0XFF,0XFF,0XFF,0X00,0X3F,
  391.     0XFF,0X3F,0XFF,0XFF,0XFF,0XF0,0XFF,0XF0,0X7F,0XF9,0XFE,0X00,0X3F,0XFF,0X7F,0XFF,
  392.     0XFF,0XFF,0XF0,0XFF,0XF0,0X03,0X80,0X00,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XF0,
  393.     0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XF0,0X00,
  394.     0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XF0,0X00,0X00,0X00,0X00,
  395.     0X00,0X07,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,
  396.     0XFF,0XFF,0XFF,0XF0,0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,0X1F,0XFF,0XFF,0XFF,0XFF,
  397.    0XF0,0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XF0,
  398.     0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,
  399.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  400.     0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  401.     0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,
  402.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,
  403.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  404.     0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  405.     0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,
  406.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,
  407.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  408.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  409.     0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  410.     0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,
  411.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,
  412.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  413.     0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  414.     0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,
  415.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,
  416.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  417.     0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  418.     0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,
  419.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,
  420.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  421.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  422.     0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  423.     0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,
  424.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,
  425.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  426.    0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  427.     0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,
  428.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,
  429.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  430.     0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  431.     0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,
  432.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,
  433.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  434.     0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
  435.     0XFF,0XFF,0XFF,0XF0,};
  436.  
  437.     //SAP-Logo
  438.     display.drawInvertedBitmap(0, 0, gImage_test4, 100, 100, GxEPD_BLACK);
  439.  
  440.     //Lines
  441.     display.drawFastHLine(0, 69, 800, GxEPD_BLACK);
  442.     display.drawFastHLine(0, 70, 800, GxEPD_BLACK);
  443.     display.drawFastHLine(0, 71, 800, GxEPD_BLACK);
  444.     display.drawFastHLine(0, 409, 800, GxEPD_BLACK);
  445.     display.drawFastHLine(0, 410, 800, GxEPD_BLACK);
  446.     display.drawFastHLine(0, 411, 800, GxEPD_BLACK);
  447.  
  448.     //Department
  449.     if(department != "null"){
  450.     display.setCursor(110, 45);
  451.     display.print(department);
  452.     }
  453.  
  454.     //Date and room
  455.     if(room != "null"){
  456.       display.setCursor(720, 455);
  457.       display.println(room);
  458.     }
  459.   }
  460.   while (display.nextPage());
  461.   SPI.end();
  462. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement