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

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

  • BMP280

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

    Голосов: 71 73.2%

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

Sergo_ST

★★★★★★✩
15 Мар 2020
1,093
884
@ASM, Вы определитесь как хотите воспроизводить) Если все треки в одной папке - то это название папки MP3 и названиями треков в ней 0001..и тд. Если хотите раскидать по папка - то это отдельнык папки в корне с названиями 01..99 и названиями треков в ней 001..255.
 

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
@Sergo_ST, если я захочу 10 разных голосов с файлами 1-24, то если как сейчас, то много кода будет.
Если как я хочу, раскидать по папкам, то в зависимости от выбранного голоса, выбирается другая папка, и не надо много кода, все компактно)
C++:
mp3.playFolder(r.golos + 1, hour + 1);
такой вариант идеально бы подошел)
 

Sergo_ST

★★★★★★✩
15 Мар 2020
1,093
884
@ASM, Не обязательно, для варианта "как сейчас" я же выше предложил компактный вариант:
C++:
mp3.playMP3Folder(((uint16_t)r.golos * 100) + ((hour) ? hour : 24));
 
Изменено:

ASM

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

C++:
void Vremy() {
  static uint32_t VremyTime;
  if (Vremy_flag == 1) {
    VremyTime = millis();
    Vremy_play_flag = 1;
    Vremy_flag = 0;
  }
  if (Vremy_play_flag == 1 && (millis() - VremyTime) >= 3000) {  // Пауза чтобы выговорилась кукушка
    mp3.playMP3Folder((r.golos * 100) + (hour) ? hour : 24);
    Serial.println((String) " ♫ " + hour + " часов");

    if (hour == r.start_kuku) Utro_flag = 1;
    if (hour == r.stop_kuku) Vecher_flag = 1;
    Vremy_play_flag = 0;
  }
}
как уменьшилась функция))
C++:
mp3.playMP3Folder((r.golos * 100) + 27); // утро
mp3.playMP3Folder((r.golos * 100) + 28); // вечер
итог такой
 
Изменено:

Mishanya TS

★★★★✩✩✩
11 Дек 2019
358
293
@ASM, Немного не понял как добавить отображение ноля в часах в этих стоках
C++:
    if ((i == 4) & (digit == 0)) Digit(digits[12], cursor);  // если впереди ноль, то выключаем его, например 01:23 будет как 1:23
    else
      Digit(digits[digit], cursor);  // иначе показываем символ
и в web не работает изменение GMT зоны
 

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
@Mishanya TS, попробуй закомментировать 1 и 2 строку
а после рестарта вручную, применяется GMT?
 
Изменено:

Mishanya TS

★★★★✩✩✩
11 Дек 2019
358
293
@ASM, комментировал, когда 00 часов, нули вообще не показывает, а когда 01 час - нормально.
После рестарта время не меняется
 

Sergo_ST

★★★★★★✩
15 Мар 2020
1,093
884
@Romshteks, Попробуйте так:
C++:
mp3.playMP3Folder(((uint16_t)r.golos * 100) + ((hour) ? hour : 24));
И вообще, а как оно должно переключаться, если этой переменной нет в структуре плеера и кроме файла "Kukushka" она нигде не используется(и то там только считывается)?
 
Изменено:

Romshteks

✩✩✩✩✩✩✩
13 Май 2020
43
4
По моему код должен быть такой (но это не точно)
Код:
  if (Vremy_play_flag == 1 && (millis() - VremyTime) >= 3000) {  // Пауза чтобы выговорилась кукушка

    // mp3.playMP3Folder((r.golos * 100) + (hour) ? hour : 24);
    mp3.playMP3Folder(hour ? (hour + r.golos * 100) : (24 + r.golos * 100));
    Serial.println((String) " ♫ " + hour + " часов");

    if (hour == r.start_kuku) Utro_flag = 1;
    if (hour == r.stop_kuku) Vecher_flag = 1;
    Vremy_play_flag = 0;
  }

У себя погонял - голоса переключаются!
 
Изменено:

Sergo_ST

★★★★★★✩
15 Мар 2020
1,093
884
@Romshteks, Это тоже самое, только лишние действия добавились, которые делать не нужно. Я выше написал уже, судя по исходника с гитхаб, переменная "golos" нигде не объявлена и нигде кроме как в файле "Kukushka" не используется.
 

Romshteks

✩✩✩✩✩✩✩
13 Май 2020
43
4
И вообще, а как оно должно переключаться, если этой переменной нет ни в структуре плеера и кроме файла "Kukushka" она нигде не используется?
Да действительно.
Похоже AMS забыл добавить.
Вы попробуйте в моей версии .

Это тоже самое, только лишние действия добавились, которые делать не нужно.
Вы в железе проверяли?
 

Sergo_ST

★★★★★★✩
15 Мар 2020
1,093
884
@Romshteks, Нет, мне не на чем проверять. Можно по подробнее? На других голосах нет вообще звука или вне зависимости от выбора всегда говорит первый голос?
Выведите в отладку переменную "golos" сразу после или перед воспроизведением.
 

Romshteks

✩✩✩✩✩✩✩
13 Май 2020
43
4
Можно по подробнее? На других голосах нет вообще звука или вне зависимости от выбора всегда говорит первый голос?
Второй вариант.

Больше она не может быть.)
код:
    M_BLOCK(GP_THIN, "", "Голос", RomCol,
            GP.RADIO("golos", 0, r.golos, RomCol);
            GP.LABEL("Алиса");
            GP.BREAK();
            GP.RADIO("golos", 1, r.golos, RomCol);
            GP.LABEL("Женский");
            GP.BREAK();
            GP.RADIO("golos", 2, r.golos, RomCol);
            GP.LABEL("Мужской");
            GP.BREAK(););
C++:
    // Кукушка
    if (ui.form("/kuku")) {
      ui.copyBool("kuku_check", r.status_kuku);
      ui.copyInt("sta_ku", r.start_kuku);
      ui.copyInt("sto_ku", r.stop_kuku);
      ui.copyBool("kuku_mp3_check", r.kuku_mp3_check);
      ui.copyBool("vrem_mp3_check", r.vrem_mp3_check);
      ui.copyInt("golos",r.golos);
      ui.copyInt("grom", r.grom_mp3);
      mp3.setVolume(r.grom_mp3);
      DFPlayer();
      mem6.updateNow();
    }
 

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
В итоге голоса не переключаются,говорит только Алиса.
У всех так.Или только у меня?
я не тестил, сейчас займусь)
Я выше написал уже, судя по исходника с гитхаб, переменная "golos" нигде не объявлена и нигде кроме как в файле "Kukushka" не используется.
объявлена и используется в других местах)
забыл добавить.
нет, считывается без проблем)
 

Sergo_ST

★★★★★★✩
15 Мар 2020
1,093
884
@Romshteks, Значит проверьте присваивается ли ей значение кроме 0, выведите эту переменную в отладку.

@ASM, На гитхабе по ссылке которыю вы прикрепили выше, упоминание переменной "golos" есть только в файле "Kukushka" и всё)
 

ASM

★★★★★✩✩
26 Окт 2018
1,918
422
На гитхабе по ссылке которыю вы прикрепили выше, упоминание переменной "golos" есть только в файле "Kukushka" и всё)
да, обновленную версию не выкладывал, а так еще в вэб портале. Там сохранение работает исправно.
C++:
M_BLOCK(GP_THIN, "", "Голос",
            M_TABLE("10px,170px", GP_ALS(GP_LEFT, GP_LEFT),
                    M_TR(GP.RADIO("golos", 0, r.golos), GP.LABEL("Алиса"));
                    M_TR(GP.RADIO("golos", 1, r.golos), GP.LABEL("Женский"));
                    M_TR(GP.RADIO("golos", 2, r.golos), GP.LABEL("Мужской"));););
п.с. загрузил как есть, голоса не воспроизводит, сейчас проверю отладку.

Не работает монитор порта с DFP плеером, даже с отключенным питанием)
 
Изменено:

Sergo_ST

★★★★★★✩
15 Мар 2020
1,093
884
@Romshteks, Да, нашёл причину, так будет правильнее:
C++:
mp3.playMP3Folder(((uint16_t)r.golos * 100) + ((hour) ? hour : 24));