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

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

  • BMP280

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

    Голосов: 71 73.2%

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

maksland

★★★✩✩✩✩
13 Янв 2019
615
144
Omsk
почему ? если у нас ds3231 с батарейкой тикает ? если нет wifi например то брать с неё время и включать индикацию вот только реагировать часам надо когда wifi появится ?
 

ASM

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

maksland

★★★✩✩✩✩
13 Янв 2019
615
144
Omsk
те для запуска wifi нужен будет по любому чтобы ячейки DS заполнить ?
 

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
@maksland, если в ds будут корректные данные, то можно и не запускать при старте wifi, при следующей синхронизации время будет обновлено.

Все оказывается намного проще)
C++:
    syncTime();
заменить на
C++:
  DateTime now = rtc.now();
  long unix = now.unixtime();
  if (unix > 1640822400) {
    Serial.println("Время корректно!");
  }
  else {
    Serial.println("Некорректное время, старт синхронизации!");
    syncTime();
  }
проверил у себя, стартанули сразу)

Релиз опубликован, тестируйте))
 
  • Лойс +1
Реакции: Leon111_09, Divin и kym13

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
@bort707, принцип работы и прочее))
Какой-то сырой, неудобный...
П.С. Алекс в крайнем видео указал, что функция random занимает много памяти. Может тогда оптимизировать?) Немного погуглил, рекомендуют другой вид использовать, rand, более рандомней, чем random... Либо что-то своё придумывать)
 

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
@bort707, он самый) не вижу никакой отладки, неудобный, как по мне) скачать что-то, если первый раз на нём, очень проблемно)
 

poty

★★★★★★★
19 Фев 2020
3,540
1,010
Меня в облачных хранилищах напрягает то, что каждой норовит навязать свои "правила игры". То документацию в неведомых форматах представляют, то фиг докопаешься до сути представленного проекта, то будешь долго искать "ту самую кнопку"... Да, для автоматизированных сред, завязанных на github, всё хорошо и просто, но для "отвязанных" - не всё так очевидно.
 
  • Лойс +1
Реакции: ASM

balent

✩✩✩✩✩✩✩
29 Ноя 2021
53
7
@kym13,А со звуком -это как, будильник? Интересно.
 

ASM

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

kym13

★★★✩✩✩✩
14 Ноя 2020
716
118
@balent,
...со звуком -это как, будильник? ... Произносят время каждый час(с 7до 23 настраивается) и будильник (воспроизведение трека который установишь)
ASM
...С модулем МП3 ? DFPlayer Mini
Правда тот проект не на WS2812, а на MAX7219
 

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
Увидел в коде небольшую ошибку с НГ режимом, не важно, включен он или нет, все равно будет) только разными методами)

Пробую замену
C++:
ColorTable[random(NUM_COLORS)];
на
C++:
ColorTable[rand()% NUM_COLORS +1];
не вижу разницы)
 
Изменено:

bort707

★★★★★★✩
21 Сен 2020
3,296
958
спасибо, нашел... встроенная функция ардуино...
Ну тогда между
C++:
ColorTable[random(NUM_COLORS)];
и
C++:
ColorTable[rand()% NUM_COLORS ];
и не должно быть разницы, по сути это одно и тоже(хотя метод генерации "случайных чисел" может быть разным)

А вот это - неправильно:
C++:
ColorTable[rand()% NUM_COLORS +1];
+1 тут лишнее и будет давать логическую ошибку
 

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
@bort707, разница в последовательности, рандом, на самом деле это псевдорандом, есть закономерность) как вариант в описаниях описан остаток от деления, а чтобы число было включительно, идёт смещение на единицу) пытался избавиться от последовательности одинаковых цветов в таблице из 16 цветов. 2 из 4 это случайность... Но когда 3 из 4, а то и 4 из 4 светятся одинаково в одном сегменте, то это не нормально)
 

bort707

★★★★★★✩
21 Сен 2020
3,296
958
чтобы число было включительно, идёт смещение на единицу
зачем вам число включительно, это же индекс массива.
Столько кода написали, а все никак не запомните, что массив в Си - от 0 до (NUM_COLORS -1)
 

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
@bort707, да это я помню) возможно не учел этот момент, возможно в примере было от 1 до 100, а не от 0. Тогда да, не прав)
 

bort707

★★★★★★✩
21 Сен 2020
3,296
958
возможно в примере было от 1 до 100, а не от 0. Тогда да, не прав)
У меня смутное ощущение, что вы меня опять не поняли. Причем тут какой-то пример? В примерах все правильно - можно делать и включая границу, и не включая.
Я то вам пишу не про примеры, а про вашу конкретную строчку
C++:
ColorTable[rand()% NUM_COLORS +1];
в данном случае вы генерите случайный индекс массива - тут "включительно" использовать нельзя. Неужели это непонятно?
 

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
в данном случае вы генерите случайный индекс массива - тут "включительно" использовать нельзя. Неужели это непонятно?
возможно не учел этот момент
я понял о чем вы, я объяснил, почему я написал так)

вот как пример
от единицы, поэтому и сделал аналогично...
а у нас от нуля, сейчас убрал единицу...
но это ничего не изменит, только код подправит)
 
Изменено:

bort707

★★★★★★✩
21 Сен 2020
3,296
958
это ничего не изменит,
кстати, на тему "неслучайной выборки".
Я когда-то по работе писал простенький скриптик, который из упаковки в 1000 образцов выбирает полсотни для случайной проверки. И тоже был изрядно удивлен, что из 50 образцов чуть ли не половина выпадала по 2-3-4, а то пять подряд.
А потом мне старшие обьяснили, что 50 образцов, равномерно раскиданных по тысяче - это как раз пример "неслучайной" выборки. Истинная случайность предполагает, что и 5 и даже 10 номеров подряд тоже могут выпасть.

Возвращаясь к скетчу - Если Вам надо, чтобы соседние лампочки были обязательно разного цвета - то чуть модифицируйте "случайный" алгоритм, чтобы он второй раз подряд тот же цвет не выбирал. Но это будет уже "не случайный" выбор :)