#include <ssd1306.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);                                  
#include <RTClib.h>

RTC_DS1307 rtc; 
                                
//extern uint8_t MegaNumbers[];                          // Подключение больших шрифтов
//extern uint8_t SmallFont[];                            // Подключение маленьких шрифтов
 
int x = 0;                                             // Создаем переменную "х"
 
void setup() 
{
  lcd.begin(16, 2);                                      // Инициализация Oled дисплея
  rtc.begin();                                       // Инициализация RS3231 
}
 
void loop()
{
  if (x >= 10) {temp();                                // Если "x", больше или равно 10, выполняем цикл "temp"
      x=0;}                                            // Обнулить "x"
  else {clock();}                                      // Если "x", меньше 10, выполняем цикл "clock"
      x++;                                             // Увеличить "x" на 1
}
 
void clock()                                           // Цикл считывания и отображения времени
{  
  lcd.clear();                                     // Очищаем экран
  //lcd.setFont(SmallFont);                           // Включаем маленький шрифт
  lcd.print(rtc.getDOWStr(), CENTER, 0);            // Отображение дня недели
   lcd.print("cyka"); 
  String stringOne = rtc.getTimeStr();
  //lcd.setFont(MegaNumbers);                         // Включаем большой шрифт
  lcd.print(stringOne.substring(0,2), 4, 12);       // Отображение часов
  lcd.print("/", 51, 12);                           // Отображение двоеточие
  lcd.print(stringOne.substring(3,5), 75, 12);      // Отображение минут
  //lcd.setFont(SmallFont);                           // Включаем маленький шрифт
  lcd.print(rtc.getDateStr(), CENTER, 57);          // Отображение даты
  lcd.update();                                     // Обновляем информацию на дисплее
  delay(500);                                          // Пауза
  //lcd.setFont(MegaNumbers);                         // Включаем большой шрифт
  lcd.print("-", 51, 12);                           // Убираем двоеточие
  lcd.update();                                     // Обновляем информацию на дисплее
  delay(500);                                          // Пауза
}
 
void temp()                                            // Цикл считывания и отображения температуры
{
  lcd.clear();                                     // Очищаем экран
  //lcd.setFont(MegaNumbers);                         // Включаем большой шрифт
  lcd.print(String(rtc.getTemp() , 1), CENTER, 12); 
  //lcd.setFont(SmallFont);                           // Включаем маленький шрифт
  lcd.print("Temperature", CENTER, 57);             // Отображение надписи
  lcd.update();                                     // Обновляем информацию на дисплее
  delay(2000);                                         // Пауза
}
GND5VSDASCLSQWRTCDS1307+