Часы на NodeMCU Lua + MAX7219 минус все лишнее.

Тема в разделе "Глядите, что я сделал", создана пользователем ИгорьК, 4 сен 2018.

Метки:
  1. ИгорьК

    ИгорьК Гуру

    Тут вопрос, скорее, к @serg3295 - он куда круче волочет в этом. Насколько мне помнится, для версии 5.3 Lua, которая здесь трудится, такое поведение collectgarbage вполне обычно. Как видно из графика, нисходящего тренда нет, память не течет.

    Мне кажется, в оригинальной версии в целом куча побольше была, видимо вы туда еще что-то добавили ;) И это радует. Хотя, возможно это код с каптив-порталом, там я глубоко кучей не занимался и код не чистил.

    Часы работают? Как часы? :)
     
    Voik нравится это.
  2. Voik

    Voik Гик

    Понял. Спасибо!
    Прекрасно работают. Одна из версий показывает и дату и микроклимат, и прогноз. И шлёт инфу куда надо :D
     
    ИгорьК нравится это.
  3. serg3295

    serg3295 Гуру

    Если всё работает, значит нормально.

    В Lua 5.3 сборка мусора так действует по умолчанию.
    Если вам для отладки понадобится агрессивная сборка мусора, то выполните команду
    collectgarbage("setpause", 0); collectgarbage("step", 100)

    График изменится радикальным образом. ;)
     
    ИгорьК и Voik нравится это.
  4. Voik

    Voik Гик

    Добавил вчера свои переменные: kaunter, kuup, bukva в таблицу dat, и разброс стал меньше.
    Работает также стабильно.
    chart (heap0).png

    З.Ы.
    Хотя нет. Это был просто ночной режим. Сейчас картина прежняя. Ну да ладно. Главное - работает!
     
    Последнее редактирование: 27 дек 2024
    ИгорьК нравится это.
  5. Voik

    Voik Гик

    Вчера-таки зависли часы.

    Иногда мой рутер теряет интернет, но вайфай раздает.
    Сегодня сделал эксперимент.

    При наличии вайфай без выхода в интеренет выдаёт ошибку:
    Снимок28.12.24.PNG
    Делал так: на смарте поднял точку.
    Затем отключил смарт от интернета, точка осталась.
    Затем старт МК.

    Можно ли как-то отловить это и не дать зависнуть?
     
    Последнее редактирование: 28 дек 2024
  6. ИгорьК

    ИгорьК Гуру

    Вам посчастливилось словить ошибку "Guru meditation error". Это имеет отношение скорее к прошивке, чем к кодингу. Вернусь из отпуска - посмотрю. Но с точки зрения этих часов ошибка не имеет особого значения - часы в фоне перегрузятся вы и не заметите.
     
    Последнее редактирование: 28 дек 2024
    Voik нравится это.
  7. serg3295

    serg3295 Гуру

    @Voik Если у вас есть возможность подключиться к устройству программой idf.py monitor то тогда в backtrace вы увидите имя функции, которая вызвала ошибку.
    В Линуксе это просто, надо набрать в корне каталога nodemcu-firmware команду make monitor. В Windows даже не подскажу.
     
    ИгорьК и Voik нравится это.
  8. Voik

    Voik Гик

    Хочу уточнить, что это для версии с порталом:
    lua.PNG

    Предыдущая версия зависает при переходе на ночной пежим во время показа не времени (температура дома, например).
    Нашёл пока такое решение:
    в bright.lua добавил dat.notime = false
    Было:
    Код (Text):

    -- -- Определяем день сейчас или ночь
    if tm.hour >= dat.morn and tm.hour < dat.even then
        dat.night = false
    else
        dat.night = true
    end
     
    Стало:
    Код (C++):

    -- -- Определяем день сейчас или ночь
    if tm.hour >= dat.morn and tm.hour < dat.even then
        dat.night = false
    else
        dat.night = true
       dat.notime = false
    end
     
     
    Последнее редактирование: 30 дек 2024
    ИгорьК нравится это.
  9. ИгорьК

    ИгорьК Гуру

    Её ещё тестировать и тестировать. Сейчас она уже изменилась. Хотя все равно на скорую руку. Спешил к Новому году.

    Замечательно!
     
    Voik нравится это.