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

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

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

    ИгорьК Гуру

    На Гитхабе часы с датчиками DS18b20 и MZH19b.

    Часы на ESP32.

    upload_2024-10-24_16-18-54.png

    Сохраняется подход из первого поста - меньше мультипликации и ненужных данных. Существенно изменены две вещи: (1) вывод информации (2) погодный сервер.

    1. Поскольку Lua не работает с числами в двоичном формате, в часах на ESP-8266 приходилось считать циферки, пусть и нехитрым, но очень неинформативным способом. ESP32 имеет много памяти, и вывод данных организован через работу со string. Как оказалось, этот string преобразуется в разные ништяки еще удобнее чем двоичный формат.

    Теперь при выводе времени у цифр нет знакомест. Все складывается в один блок.

    Плата за удобство - больше места в памяти. Но чего ее жалеть?

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

    Код, как мне кажется, очень простой.

    --------

    2. Погода переехала на Open Meteo, благодаря тов @Voik . Плюсов этого решения несколько, но с точки зрения юзера - не нужна регистрация и получение ключа. Нужны только координаты.

    --------

    Из менее важного.

    Данные о текущей уличной температуре можно получать со своего уличного датчика через mqtt. Они имеют приоритет перед данными с Народного Мониторинга. Если нет ни тех ни других - улица получается от Open Meteo.

    Данные о температуре в помещении можно получать с mqtt брокера, и они имеют приоритет перед данными с датчика.

    Часы публикуют информацию на народный мониторинг.

    ----

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

    Все что есть публикуется на MQTT брокер.
    -----

    Но. За все приходится... Работать с ESPlorer уже не получится, и потребуется установка VSCode или VSCodium.
     
    Последнее редактирование: 28 окт 2024
    Voik нравится это.
  2. ИгорьК

    ИгорьК Гуру

    1. Прошивка Lua находится в папке bin.

    Шьем через Flash Download Tool так:
    upload_2024-10-24_15-38-19.png

    2. VSCode/VScodium обязательна установка двух плагинов:

    upload_2024-10-24_15-49-36.png

    3. После установки плагинов появляется такая вкладка:
    upload_2024-10-24_15-52-36.png

    Через манипуляции с мышью вы подключаетесь к микроконтроллеру.
    4. Находим папку .output и правой мышью делаем так:

    upload_2024-10-24_16-0-46.png

    Должна пройти загрузка файла, кое-какие действия и МК перезагрузится. Обязательно должен перезагрузиться.

    5. Правим файл:
    upload_2024-10-24_16-2-54.png

    6. Правой кнопкой мыши отправляем файл на МК:
    upload_2024-10-24_16-4-8.png

    7. Таким же образом отправляем файлы из двух папок:
    upload_2024-10-24_16-5-27.png

    8. Жмем кнопку и оно должно работать:
    upload_2024-10-24_16-6-22.png

    9. Если работает, жмем:
    upload_2024-10-24_16-7-7.png

    и забываем о происходящем.

    Другие пояснения и работа над ошибками в следующий раз.

     
    Последнее редактирование: 24 окт 2024
    Catbear и Voik нравится это.
  3. Voik

    Voik Гик

    Таки придётся заказать платку и поковырять код - хобби такое ;)
    Благодарю!
    З.ы. если памяти много, то, может быть, удастся реализовать веб-интерфейс для забития первичных настроек, как-то: wi-fi и долгота/широта?
     
    Последнее редактирование: 24 окт 2024
    ИгорьК нравится это.
  4. ИгорьК

    ИгорьК Гуру

    В коде присутствуют драйвера для DS18b20, MZH19b, SPS30, SCD41 НО эта версия под первые два. (Драйвера там все равно есть)

    Это в ESP8266 можно было сделать, даже проще - у NodeMCU специальная настройка есть. Дело тут не в памяти, потому как всю эту лабуду в памяти и держать не нужно - при старте запускать без загрузки всего остального.

    Когда-нибудь сделаю...

    Позже, на следующей неделе пообъясняю что и как там править.
     
    Voik нравится это.
  5. ИгорьК

    ИгорьК Гуру

    Оно как обычно и без датчиков работает, кстати. Только ESP и MAX7219
     
    Catbear и Voik нравится это.
  6. Voik

    Voik Гик

    Я так и думаю.
    Когда-то хотел я измерять СО2 другим проектом. И даже прикупил для этого модуль сенсора SCD30 от компании Sensirion.
    Так что может и с него удастся данные получить...
     

    Вложения:

    ИгорьК нравится это.
  7. Voik

    Voik Гик

    Сегодня произошел шторм, и в результате этого временно пропало электроснабжение.
    После восстановления подачи тока часы сразу же пытаются подключиться к Wi-Fi и зависают (надпись "Думаю"), потому что роутер еще не готов к работе.
    Думаю, что стоит сделать паузу в две-три минуты после включения, чтобы дать возможность роутеру полностью запуститься и войти в рабочее состояние. Это может помочь избежать проблем с подключением и обеспечить стабильную работу часов
    Это всё про прошлые версии, до esp32 не добрался ещё...
     
    Catbear и ИгорьК нравится это.
  8. ИгорьК

    ИгорьК Гуру

    Знаю об этой проблеме. С ESP32 этого не будет. Старые часы - там немного не так сделать надо. Чуть позже покажу что исправить.
     
    Catbear и Voik нравится это.
  9. ИгорьК

    ИгорьК Гуру

    Тому, кого реально беспокоит зависание часов при старте при долгом отсутствии wifi надо добавить перед последней строкой файла _setuser.lua:

    Код (Lua):
    -- Добавить:
    tmr.create():alarm(5000, tmr.ALARM_AUTO, function (t)
        if wifi.sta.getip() then
            t:stop(); t:unregister(); t = nil
        else
            wifi.sta.connect()
        end
    end)
    -- Это было и должно остаться:
    node.task.post(function() dofile('setglobals.lua') end)
     
    Voik нравится это.
  10. Voik

    Voik Гик

    Супер! Думаю на выходных сделать.

    Ещё у меня есть часы, которые синхронизируются по радио с атомными часами (см. фото, на них спит муха). Но они намертво зашиты показывать время GMT+1. И как я не старался - не показывают нужный мне часовой пояс. :(

    Я поискал в сети DIY часы, возможность синхронизировать время с атомными часами по радио. И такие проекты есть - буду пробовать
     

    Вложения:

    ИгорьК нравится это.
  11. ИгорьК

    ИгорьК Гуру

    Может дело в мухе? :)

    Были у меня аналогичные часы. Кажется, они не синхронизируются по времени, а подстраивают время ближайшим сигналом.

    То есть сначала надо самому установить время, а потом часы уже применяют сигнал и корректируют показания.

    В этих часах не было настройки часового пояса.

    ПыСы. Занялся переводом старых часов на новый погодный сервер.
     
    Последнее редактирование: 8 ноя 2024
    Voik нравится это.
  12. Voik

    Voik Гик

    Пробовал сегодня так: включал часы, через какое-то время поднимал точку доступа на смарте - не было удачи. Картинку приложил.
    Хотя если интернет есть сразу, то заводится.
    Ну да ладно - пришли платки esp32 - буду с ними играться.
     

    Вложения:

    ИгорьК нравится это.
  13. ИгорьК

    ИгорьК Гуру

    Есть какой интернет, от роутера или от смартфона?

    Ну... давайте, расскажете. Я, честно говоря, не тестировал без периферии, так что некоторые косяки могут вылезти. Исправим вместе.
     
  14. Voik

    Voik Гик

    Нет :) Улетело, а пояс всегда спрыгивает на GMT+1
    Это отличная новость! Спасибо!
    Телефон подключен к рутеру и раздаёт интернет далее. Может, конечно, не лучший вариант...
    Опыт отрицателен, ибо у меня вин7 и vscodium не хочет работать с плагином NodeMCU-Tools. Т.е. наоборот: NodeMCU-Tools не работает с данной версией vscodium. Новее подавай. А новее версия vscodium не ставится на вин7. Пробовал и на убунту - тоже не вышло. Буду, видимо, новее винду ставить...
    А платку проверил - рабочая. Поставил другую версию часов вебустановкой - удобно очень, но код закрыт :(
     
    ИгорьК нравится это.
  15. ИгорьК

    ИгорьК Гуру

    В какой-то из своих двух тем @serg3295 давал ссылку на какую-то странную версию ESPLorer, которая возможно будет работать. Попробуйте найти. У меня она на работе может быть. Но это не раньше понедельника.
     
    Voik нравится это.
  16. serg3295

    serg3295 Гуру

    На Win7 дело не только в версии vscodium. Просто на 7-ку не поставить версию nodejs выше 12-ой. А для нормальной работы приложений требуется версия nodejs >= 18.18
    Что касается Esplorer'a, то крайняя версия выложена @ИгорьК на какой-то ресурс. Cсылка на него, действительно, в одной из моих тем, то ли про расширение, то ли про прошивку. Где-то в хвосте темы.
    А версия не странная, а вполне работающая со всеми версиями прошивок до dev-esp32.latest
     
    Voik и ИгорьК нравится это.
  17. serg3295

    serg3295 Гуру

    А вот здесь поподробнее, пожалуйста.
    Можно в теме про расширение, про это продолжить.
     
  18. ИгорьК

    ИгорьК Гуру

    На сайте автора о ней ничего не сказано, как я помню в момент ее публикации. Больше не смотрел.
     
  19. serg3295

    serg3295 Гуру

    Под сайтом автора подразумевается github, или имеется ввиду ещё какой-то сайт?
     
  20. ИгорьК

    ИгорьК Гуру

    Источник. Но и на github я ничего не увидел. Может плохо смотрел - разбаловали вы нас плагином :)