#include <U8glib.h> // http://rcl-radio.ru/wp-content/uploads/2020/07/1482331381-5722.zip 
#include "rus6x10.h" // http://forum.rcl-radio.ru/misc.php?action=pan_download&item=717&download=1
#include "digits32.h" // http://forum.rcl-radio.ru/misc.php?action=pan_download&item=718&download=1
#include <Wire.h>
#include <DS3231.h>//https://github.com/jarzebski/Arduino-DS3231/archive/master.zip // DS3231.zip
 DS3231 clock;RTCDateTime DateTime;
 U8GLIB_KS0108_128 u8g(12, 11, 10,  9,  8,  7,  6,  5,   14,  3,  4,   13, 2);     
                     //D0, D1, D2,  D3, D4, D5, D6, D7,  E,   CS1,CS2, DI, RW
 char * mes[12]{"ßÍÂÀÐß","ÔÅÂÐÀËß","ÌÀÐÒÀ","ÀÏÐÅËß","ÌÀß","ÈÞÍß","ÈÞËß","ÀÂÃÓÑÒÀ","ÑÅÍÒßÁÐß","ÎÊÒßÁÐß","ÍÎßÁÐß","ÄÅÊÀÁÐß"};   
 char * den[7]{"ÂÎÑÊÐÅÑÅÍÜÅ","ÏÎÍÅÄÅËÜÍÈÊ","ÂÒÎÐÍÈÊ","ÑÐÅÄÀ","×ÅÒÂÅÐÃ","ÏßÒÍÈÖÀ","ÑÓÁÁÎÒÀ"};                 
 
void draw() {
  u8g.setRot180();
  u8g.setFont(rus6x10);
  u8g.setPrintPos( 10, 10);  u8g.print(DateTime.day);
  u8g.drawStr(26, 10, mes[DateTime.month-1]);
  u8g.drawStr(75, 10, den[DateTime.dayOfWeek]);
  u8g.setFont(digits32);
  if(DateTime.hour/10==1){u8g.setPrintPos( 15, 47); u8g.print(DateTime.hour / 10);}else{u8g.setPrintPos( 1, 47);  u8g.print(DateTime.hour / 10);}
  if(DateTime.hour%10==1){u8g.setPrintPos( 34, 47); u8g.print(DateTime.hour % 10);}else{u8g.setPrintPos( 20, 47); u8g.print(DateTime.hour % 10);}
  u8g.setPrintPos( 39, 47); u8g.print(":");
  if(DateTime.minute/10==1){u8g.setPrintPos( 59, 47); u8g.print(DateTime.minute / 10);}else{u8g.setPrintPos( 45, 47); u8g.print(DateTime.minute / 10);}
  if(DateTime.minute%10==1){u8g.setPrintPos( 78, 47); u8g.print(DateTime.minute % 10);}else{u8g.setPrintPos( 64, 47); u8g.print(DateTime.minute % 10);}
  u8g.setPrintPos( 83, 47); u8g.print(":");
  if(DateTime.second/10==1){u8g.setPrintPos( 103, 47); u8g.print(DateTime.second / 10);}else{u8g.setPrintPos( 89, 47); u8g.print(DateTime.second / 10);}
  if(DateTime.second%10==1){u8g.setPrintPos( 122, 47); u8g.print(DateTime.second % 10);}else{u8g.setPrintPos( 108, 47); u8g.print(DateTime.second % 10);}
 // u8g.drawLine(0, 15, 128, 15);
  u8g.setFont(u8g_font_unifont);
  u8g.drawStr(20, 60, "TEMP");
  u8g.setPrintPos( 60, 60);  u8g.print(clock.readTemperature(),1);
  u8g.drawStr(100, 60, "C");
 
}
 
void setup() {
  Wire.begin(); 
  clock.begin();
  // clock.setDateTime(__DATE__, __TIME__); // óñòàíîâêà âðåìåíè ïî âðåìåíè êîìïèëÿöèè
}
 
void loop() {
   DateTime=clock.getDateTime();
  u8g.firstPage();  
  do {
    draw();
  } while( u8g.nextPage() );
}