ESP, IoT [BigClock] Большие часы на WS2812, ESP8266, Народный мониторинг

Какой вариант датчика используется у вас? Интересно, использует ли кто BME280, как у меня?)

  • BMP280

    Голосов: 26 26.8%
  • BME280

    Голосов: 71 73.2%

  • Всего проголосовало
    97

wulf

★✩✩✩✩✩✩
1 Дек 2022
198
27
C++:
//////////// Настройка символов
uint8_t clockHue;
const uint8_t HUE_GAP = 32;
void Digit(uint8_t digit, uint8_t cursor) {

for (uint8_t mask = 0b01000000; mask > 0; mask = mask >> 1) {
for (uint8_t i = 0; i < LEDS_IN_SEGMENT; i++) {
if (c.new_god) {
leds[cursor] = (digit & mask) ? ColorTable[rand() % NUM_COLORS - 1] : CRGB(0, 0, 0);
} else {
uint8_t color_idx = 1;
if (color_idx == 1) {
for (uint8_t i = 0; i < 5; i++) leds[cursor + i] = CHSV(clockHue + HUE_GAP * i, 255, 255);
leds[cursor + 2] = CHSV(clockHue + 128 + HUE_GAP * 1, 255, 255);
} else if (color_idx == 2) {
CRGB clockLED[5];
clockLED[0] = CHSV(clockHue + HUE_GAP * 0, 255, 255);
clockLED[1] = CHSV(clockHue + HUE_GAP * 0, 255, 255);
clockLED[2] = CHSV(clockHue + 128 + HUE_GAP * 1, 255, 255);
clockLED[3] = CHSV(clockHue + HUE_GAP * 2, 255, 255);
clockLED[4] = CHSV(clockHue + HUE_GAP * 2, 255, 255);
for (uint8_t i = 0; i < 5; i++) leds[cursor + i] = clockLED[i];
}
}
cursor++;
}
}
}
не пинайте сильно. но как бы ошибок по внесению кода я убрал:unsure: а вот похоже остальное убил:cry:
 

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
@wulf, так убери новогодний код и тестируй как основной, удобнее будет подбирать)
 

wulf

★✩✩✩✩✩✩
1 Дек 2022
198
27
@ASM, на это ругается Digit(digits[digit], segment_4); // 4 сегмент из за этого?
 

wulf

★✩✩✩✩✩✩
1 Дек 2022
198
27
блин если можно пните не вижу нифига . а то за последние 3 часа уже все в кучу сливается
 

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
@wulf, пользуйся автоформатированием кода и тогда легче отследить скобки
 

wulf

★✩✩✩✩✩✩
1 Дек 2022
198
27
@ASM,
C++:
//////////// Настройка символов
uint8_t clockHue;
const uint8_t HUE_GAP = 32;
void Digit(uint8_t digit, uint8_t cursor) {

  for (uint8_t mask = 0b01000000; mask > 0; mask = mask >> 1) {
    for (uint8_t i = 0; i < LEDS_IN_SEGMENT; i++) {
      //if (c.new_god) {
      //leds[cursor] = (digit & mask) ? ColorTable[rand() % NUM_COLORS - 1] : CRGB(0, 0, 0);
      //} else
      {
        uint8_t color_idx = 1;
        if (color_idx == 1) {
          for (uint8_t i = 0; i < 5; i++) leds[cursor + i] = CHSV(clockHue + HUE_GAP * i, 255, 255);
          leds[cursor + 2] = CHSV(clockHue + 128 + HUE_GAP * 1, 255, 255);
        } else if (color_idx == 2) {
          CRGB clockLED[5];
          clockLED[0] = CHSV(clockHue + HUE_GAP * 0, 255, 255);
          clockLED[1] = CHSV(clockHue + HUE_GAP * 0, 255, 255);
          clockLED[2] = CHSV(clockHue + 128 + HUE_GAP * 1, 255, 255);
          clockLED[3] = CHSV(clockHue + HUE_GAP * 2, 255, 255);
          clockLED[4] = CHSV(clockHue + HUE_GAP * 2, 255, 255);
          for (uint8_t i = 0; i < 5; i++) leds[cursor + i] = clockLED[i];
        }
      }
    }
    cursor++;
  }
}
вроде верно закоментил новогодний режим
вроде все верно со скобками

ладно потом как нить посижу еще с этим а то уже мозг кипит
 

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
C++:
void Digit(uint8_t digit, uint8_t cursor) { 
  for (uint8_t mask = 0b01000000; mask > 0; mask = mask >> 1) {
    for (uint8_t i = 0; i < LEDS_IN_SEGMENT; i++) {
        leds[cursor] = (digit & mask) ? ledColor : CRGB(0, 0, 0);
      cursor++;
    }
  }
}
Вот простой вариант.
Если надо зажигать каждый сегмент отдельным светом, то надо переделывать функцию. Т.к. в данном варианте код задаётся в ledColor.
С телефона сложно сообразить)
 
Изменено:

wulf

★✩✩✩✩✩✩
1 Дек 2022
198
27
@Старик Похабыч, IMG_20230330_204640.jpgтипа этого ток видео нет осталось ток фото . каждая цыфра переливается или там второй режим часы и минуты
но похоже наверно надо забить на это моих познаний не хватит на все это
 

Leon111_09

★★★✩✩✩✩
6 Июн 2021
641
150
56
Таганрог
forum.wisecomp.ru
По некоторому отрезку времени эксплуатации я понял, что отлично обхожусь без эффектов.
Причем этот отрезок времени довольно короткий: у меня аналогичная ситуация.Сначала было интересно (примерно минут пять),потом надоело и уже не включаю.
 

Leon111_09

★★★✩✩✩✩
6 Июн 2021
641
150
56
Таганрог
forum.wisecomp.ru
@ASM, Проверил-глючит.Перепрошивал раза три (думал криво прошивка встала)-глюк/и не исчезли. Глюки такие:
секундные точки мигают с частотой две секунды горят/минуту не горят; вывод с датчиков отсутствует совсем; связь с веб-мордой в браузере теряется постоянно;тормоза сильные.
Но время показывает правильно.Вернулся на предыдущую версию-стало работать нормально.
 

Leon111_09

★★★✩✩✩✩
6 Июн 2021
641
150
56
Таганрог
forum.wisecomp.ru
у меня нет ни одной из перечисленных проблем)
А у меня они "вылезли".Причем перепроверял несколько раз-проблемы стабильные.Изменения делал только в настройках "под себя"-они повлиять на работу прошивки не должны.

P.S. У вас в настройках были закомментированы две строчки,относящиеся к авто-яркости.Я их раскоментировал.Может быть глюки из-за этого? хотя,я думаю,навряд: в предыдущей прошивке они тоже раскомментированы, и все работает хорошо.
Код:
 uint16_t bright_constant = 700;  // константа усиления от внешнего света (0 - 1023), чем МЕНЬШЕ константа, тем "резче" будет прибавляться яркость
  float coef = 0.8;                // коэффициент фильтра (0.0 - 1.0), чем больше - тем медленнее меняется яркость

P.S.S. Проверил эти строчки (назад закомментировал)-глюки исчезли полностью,часы стали нормально работать и показывать.
 
Изменено:

Leon111_09

★★★✩✩✩✩
6 Июн 2021
641
150
56
Таганрог
forum.wisecomp.ru
ага, не удалил их из кода, они больше не используются, ни на что не влияют)
А надо бы удалить: в комментариях запрета на их использование нет, а глюки вызывают не слабые (если убрать косые линии).
 

AlChel

★✩✩✩✩✩✩
20 Апр 2022
33
12
@ASM, ночной режим не стал делать? У кого говорилка прикручена, наверное актуально. Я себе сделал для яркости, но тяму вынести его в меню уже не хватило:)
А почему десятки градусов только для уличной температуры? Для комнатной тоже уже тогда.
Ну это так, не прими за критику, просто мнение:)
А так часики класс, спасибо! Завтра заберу плеер с почты, буду голос прикручивать и радиоудлиннитель для уличного датчика потом соберу, вообще конфетка получиться!
IMG20230416223107.jpg IMG20230416223121.jpg
 

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
@AlChel, про ночной не вспомнил)
Десятки для дома не нужны, а вот для улицы нужны, при использовании мониторинга. Т.к. были случаи, когда температура не изменялась, в пределах градуса и сервис выдавал неисправность датчика и может вылететь из публичного доступа. И давление было также.

П.с. почему комнатная без десятых, всё с десятыми...
 

AlChel

★✩✩✩✩✩✩
20 Апр 2022
33
12
Не, не, не в мониторинге, а именно на часы выводилось 25.3°. Я думал точка в настройках именно для этого. Чтоб на самих часах с десятыми градуса показывало. Не разобрался просто, сорри.