Переход с УНО на ESP32

Не :slight_smile:
Такой модуль я так и не запустил и штырьки - пайка на обороте.

Когда-то для малинок часовые модули продавались - совсем мелкие.

Они и сейчас продаются, но на двусторонний скотч их не приклеить ))

ds3231 for pi

неудобный модуль часов, большой и нет выхода типа будильника.
Ну и спешат у меня уже на 9 минут, где-то месяца полтора-два.

PCF8563 выглядит красиво, и небольшой. Имхо самый удобный.
Правда программил я только ds1302.

какая-то была у него заморочка, типа делаешь всё как надо а оно не играет )) Вот это у меня работает, если что.

#include <Arduino.h>
#include <Ds1302.h>


// DS1302 RTC instance
Ds1302 rtc(7,8,A3);//(PIN_ENA, PIN_CLK, PIN_DAT);

void WatchInit()
{
    rtc.init();
}

  boolean KPlus;
  int Pos;


void ShowClock()
{
  //------------------------------
  // WatchInit();

// SetWatch();

  oled.init(); oled.clear();  oled.setScale(1); oled.home();         

  for(;;)
  {
    oled.home();        // курсор в 0,0 
    PrnWatch();

    if(0==digitalRead(Key4) ) {Pos++;delay(200);} if(Pos>5)Pos=0;
    if(0==digitalRead(Key1) ) {KPlus=1; SetTime(); }
    if(0==digitalRead(Key2) ) {KPlus=0; SetTime(); }
    // delay(100);
    if(0==digitalRead(Key3) ){oled.clear();oled.home();oled.print("Время:");return;}
  }
//____________________________
}




void PrnWatch()
{
// get the current time
  // WatchInit();
  Ds1302::DateTime now;  rtc.getDateTime(&now);

  oled.setScale(2);
   if(0==Pos)oled.invertText(1);  oled.print("20"); oled.print(now.year);                                         oled.invertText(0);   // 00-99
  oled.print('-');  if(1==Pos)oled.invertText(1);  if (now.month < 10) oled.print('0');  oled.print(now.month);   oled.invertText(0);   // 01-12
  oled.print('-');  if(2==Pos)oled.invertText(1);  if (now.day < 10)   oled.print('0');  oled.print(now.day);     oled.invertText(0);     // 01-31
  oled.print(' ');
  // oled.print(WeekDays[now.dow - 1]); // 1-7
  oled.print("\n\r");if(3==Pos)oled.invertText(1);  if (now.hour < 10)    oled.print('0');  oled.print(now.hour); oled.invertText(0);     // 00-23
  oled.print(':');   if(4==Pos)oled.invertText(1);  if (now.minute < 10)  oled.print('0');  oled.print(now.minute); oled.invertText(0);  // 00-59                      oled.invertText(0); 
  oled.print(':');   if(5==Pos)oled.invertText(1);  if (now.second < 10)  oled.print('0');  oled.print(now.second); oled.invertText(0); // 00-59
  oled.println();
}




void SetTime()
{
  Ds1302::DateTime now; rtc.getDateTime(&now);

  switch(Pos)
  {
    case 0: if(KPlus) now.year++;else now.year--; break;
    case 1: if(KPlus) now.month++;else now.month--; break;
    case 2: if(KPlus) now.day++;else now.day--; break;
    case 3: if(KPlus) now.hour++;else now.hour--; break;
    case 4: if(KPlus) now.minute++;else now.minute--; break;
    case 5: if(KPlus) now.second++;else now.second=0; break;
  }

    // rtc.init();
    rtc.halt();
    // test if clock is halted and set a date-time (see example 2) to start it
      if (rtc.isHalted())
      {
// oled.println("RTC is halted. Setting time...");
// delay(1000);
        Ds1302::DateTime dt = {
        .year =  now.year,
        .month = now.month, //Ds1302::MONTH_OCT,
        .day = now.day,
        .hour = now.hour,
        .minute = now.minute,
        .second = now.second,
        .dow = Ds1302::DOW_TUE
        };
        rtc.setDateTime(&dt);
        rtc.start();
      }

delay(200);
}

Красиво. Так и не добрался до своей этой бумаги, думаю на ней внутренний типа метео на батарейке сделать. С измерением влажности мокрым-сухим термометрами с вентилятором.

Лилик, когда ссылку запостил, я тоже купил эту “бумагу”, теперь и не знаю куда ее применить))
Как бумагу не предлагать)(

Я сделал градусник для дома и улицы с огромными цифрами, чтобы тесть - инвалид по зрению, мог видеть без очков лупы.

Хорошая идея. Мне бы только темп. улицы хватило, на окне он всё равно лабуду показывает, холодно от окна.

Идеально было бы заюзать радиодатчики термометра, в Озоне брал за 1200руп, 2а радиодатчика на батарейках и блок. Отличная штука! повесил по разные стороны дома и меньшая температура практически точно с “официальной” температурой совпадает.
Но на блоке плохо видно, узкое поле зрения.

Вот и идея: заюзать сигналы от радиодатчиков и вывести меньшую температуру на весь бумажный диплей.



Да, по идее должно подойти под скотч, слегка сточить пайку выводов конденсатора и кварца.

используй такой и точить ничего не надо


https://www.wildberries.ru/catalog/233965532/detail.aspx?size=368776414

или такой
https://aliexpress.ru/item/4001146157167.html?spm=a2g2w.detail.pers_rcmd.29.5c2849d6rHRmyg&mixer_rcmd_bucket_id=aerabtestalgoRecommendAbV2_controlRu3&pdp_trigger_item_id=0_1005006854397626&ru_algo_pv_id=0aeac2-476f2e-bd2a91-ae0d09-1729324800&scenario=pcDetailBottomMoreOtherSeller&sku_id=10000014889955741&traffic_source=recommendation&type_rcmd=core

Если не заморачиваться на цвет, то и этот сойдет (в строймагазине тоже есть):

Именно такой и купил за 100 р в строительном.

Если добавить модуль часов, можно графическую историю написать с чтением на год :slight_smile:

Прошу пардону, если уже спрашивали - всю тему не читал.

Фотки туда как загружаются?

практика показала, что проще не заклеивать торчащие места :slight_smile:

Вот до этого я не додумался :slight_smile:

С точки зрения ПО моя версия фоторамки - детский лепет :slight_smile:
Все фотки хранятся в памяти микросхемы модуля (покупал на 16 Мб, но продавец явно прислал на 4). Одна фотка - 30 Кб. Альбом впихнуть можно, но проблема с навигацией (одна кнопка - включение/выключение питания), т.к. смена фотки около 5-6 сек. плюс пауза 2-3 сек. на выбор и весь перебор больше 10 картинок утомителен уже.

А как одни фотки на другие поменять, например?

Альбом поменять на другой - перезагрузкой скетча. А перебор в альбоме автоматический, после нажатия и удержания кнопки ждём появление на экране нужного изображения и отпускаем кнопку.