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

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

Метки:
  1. Voik

    Voik Гик

    Тогда по IP точнее будет.
    Или действительно с сайта брать.
     
    ИгорьК нравится это.
  2. Voik

    Voik Гик

    1734232678488_copy_2564x694.jpg
    В русском языке есть несколько терминов, выражающих снег с дождём одним словом.
    Я решил взять "дряпня".
     

    Вложения:

    Последнее редактирование: 15 дек 2024
    ИгорьК нравится это.
  3. ИгорьК

    ИгорьК Гуру

    Ни один человек в окружении не слышал такого слова!!! Класс!!!:)


    upload_2024-12-15_14-30-47.png


    Код (Lua):
    -- Дряпня
    SOUTLINES[1]='00000000000000000000000000000000'
    SOUTLINES[2]='00011100000000000000000000000000'
    SOUTLINES[3]='00100100111000111011110100100111'
    SOUTLINES[4]='00100100100101001010010100101001'
    SOUTLINES[5]='00100100100101001010010100101001'
    SOUTLINES[6]='00100100100100111010010111100111'
    SOUTLINES[7]='00100100111000101010010100100101'
    SOUTLINES[8]='01111110100001001010010100101001'
    dofile'_prtOUTL.lua'
     
    Voik нравится это.
  4. ИгорьК

    ИгорьК Гуру

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

    Тогда можно добавить и слово "чичер", например.
     
    Voik нравится это.
  5. Voik

    Voik Гик

    Рад, что понравилось!
    Погуглить пришлось. Хотя классики использовали эти ёмкие слова в своих произведениях, мы уже юзаем взятые из других языков.
    Да! Тогда можно разнообразить выводимую информацию.

    З.Ы.: В ветер пока не полез я. Добавил "жара" и "зной".
     

    Вложения:

    Последнее редактирование: 16 дек 2024
    ИгорьК нравится это.
  6. Voik

    Voik Гик

    Вывел-таки я показания на сервис, который хотел. Но по хттп. Но протокол не важен.

    А вот, что хочу спросить про датчик scd30: интересный скачок уровня углекислого газа возник ночью (1:40 примерно).
    Как думаете: глюк датчика?
    Screenshot_2024-12-16-08-34-11-989_com.vialatm.vialatm2_copy_972x1728.jpg
     
  7. ИгорьК

    ИгорьК Гуру

    Ответ здесь кроется в частоте выборки на диаграмме. Если это выброс отдельный, то должен быть один пик и дальше все возвращается к обычному состоянию. Но у вас здесь правее пика есть еще одно показание. Так что не похоже на глюк.

    =================================

    Поставьте датчик на свежий воздух хотя бы на сутки. Чет у вас в целом показания какие-то высокие.

    upload_2024-12-16_9-58-3.png
     
    Voik нравится это.
  8. Voik

    Voik Гик

    Поставлю на чердак.
     
    ИгорьК нравится это.
  9. Voik

    Voik Гик

    Похоже, что датчик выдаёт правду:

    IMG_20241216_111521_502.jpg

    Закажу ещё парочку, тогда будет видна средняя температура по больнице.
     
    Последнее редактирование: 16 дек 2024
    ИгорьК нравится это.
  10. ИгорьК

    ИгорьК Гуру

    Сложно сказать, что там на чердаке, но в конце концов на "свежем воздухе" датчик должен показать 400. Через некоторое время.
     
    Voik нравится это.
  11. Voik

    Voik Гик

    Добавил чечер :)
    Для этого изменил запрос к сервису open-meteo.
    Также изменил отображение прогноза: теперь всегда 5-7 часов от текущего времени.
    Это всё в другом файле: _GetPogoda.lua.
    Для парсинга использую sjson.
    Файлы прикрепил.
    В main.lua править:
    Код (C++):
    wt[1] = { '_GetPogoda.lua', 1800, 0} -- каждые 30 мин
    -- wt[2] = { '_getForecastOM.lua', 1505, 0 }
    -- wt[1] = { '_getnowOM.lua', 1605, 0 }
    NB! Использую функцию округления. Всатвить можно в шапку main.lua:
    Код (C++):
    function okrugl(number)
        number = math.floor(number+0.5)
        return number
    end
     

    Вложения:

    • _GetPogoda.zip
      Размер файла:
      2 КБ
      Просмотров:
      12
    Последнее редактирование: 21 дек 2024 в 09:01
    ИгорьК нравится это.
  12. ИгорьК

    ИгорьК Гуру

    Как же все просто :)
     
    Voik нравится это.
  13. ИгорьК

    ИгорьК Гуру

    Вот корпус подъехал для SCD30 и ESP32 D1 mini:

    upload_2024-12-24_8-52-47.png


    upload_2024-12-24_8-53-57.png

    upload_2024-12-24_8-55-8.png


    Сделал уже с этим корпусом часы и отдал друзьям, забыл сфотографировать.

    Зато с экспериментальным вводом исходных данных через веб-морду.

    Кстати, нечеткая оболочка от пруши слайсера - вещь! Очень красиво получается и скрывает все недостатки FDM печати. Оболочку делал с дрожанием 0.15. Однако фронтальную часть "дрожать" не следует - матрица не влезет. Или экспериментировать с размерами..

    В файлах и модели от Компас3D, чет в этот раз матрица какая-то увеличенная была, так что внимательно, возможно придется править под вашу.
     
    Последнее редактирование: 24 дек 2024 в 10:32
    Voik нравится это.
  14. Voik

    Voik Гик

    Истина где-то рядом.

    Однако, иногда OW не отдавал данные и поэтому МК перегружался.
    ИИ посоветовал добавить перехват ошибок:
    Код (C++):
    local ok, t = pcall(sjson.decode, str)
    if not ok then
        print("Error parsing JSON:", t)
        return
    end
     
    Прекрасная новость! Спасибо!
     
    ИгорьК нравится это.
  15. ИгорьК

    ИгорьК Гуру

    ИИ перечитал документацию. :) Там, правда, этот подход показан для кодирования, но суть одна.
    При запросах к серверу всегда надо проверку ответа делать. Сервера не только иногда не отвечают, но и вносят изменения в свои ответы.
    --------------

    Кстати, и у NodeMCU Lua оказался один большой прикол. Давным-давно в модуле WiFi MQTT была опция самовосстановления коннекта. Потом ее отменили, заменили на работу с событиями. Все отражено в документации, как положено.

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

    А определяются они особенностью Lua - если в аргументах лишние данные - они игнорируются. Данные об автоконнекте оказались лишними, ошибки при загрузке не возникает. Когда ты делаешь устройство - ошибок тоже нет. В общем, это небаг для меня оказался зело неожиданным и непонятным некоторое время.

    Как следствие, существует полно устройств, которые на новых прошивках отлично работают, но через некоторое время непонятно "зависают". На деле же - прошивка не восстанавливает коннект, а код написан с ожиданием что это произойдет.
     
    Последнее редактирование: 24 дек 2024 в 11:18
    Voik нравится это.
  16. Voik

    Voik Гик

    Идёт ли речь о крайних версиях информера? Если да, то как бороться?
     
  17. ИгорьК

    ИгорьК Гуру

    А кто ж знает когда это произошло точно :) А лопатить комиты прошивок на гитхабе чет не хочется.

    У вас что-то зависает?

    На часах на ESAP32 эта проблема учтена, там по событию "disconnected" отдается команда на коннект.

    В последних версиях часов на ESP8266 тоже решено, правда через проверку коннекта с MQTT брокером. То есть я то думал что проблема в этом модуле, а "вишь оно как".

    Вот у кого MQTT брокер не задействован - такое может случаться. Но жалоб здесь не слышно.

    Но в целом у меня штук пять часов (дома, на работе, на даче) - проблем именно с часами я не видел. Они возникали с другими устройствами.
     
    Voik нравится это.
  18. ИгорьК

    ИгорьК Гуру

    Это MQTT касалось!!!!
     
  19. Voik

    Voik Гик

    Работает чётко.
     
    ИгорьК нравится это.
  20. Voik

    Voik Гик

    А я решил за "кучей" проследить.
    Нормально ли всё исходя из графика?
    chart (heap).png
     
    ИгорьК нравится это.