Расширение для vs code, обеспечивающее работу с nodemcu lua

Тема в разделе "ESP8266, ESP32", создана пользователем serg3295, 2 апр 2023.

Метки:
  1. serg3295

    serg3295 Гуру

    Это хорошая новость.
    Значит, не надо будет корректировать библиотеку serialport.
     
    ИгорьК нравится это.
  2. 8bitai

    8bitai Нерд

    Вот и с чипом 2303 пролифик точно такаяже история , старые драйвера 2009ого года работают 2013ого нет.
    upload_2023-6-14_17-28-56.png
     
    ИгорьК нравится это.
  3. ИгорьК

    ИгорьК Гуру

    @serg3295 Сергей, у тебя telnet для ESP32 IDF4 не завалялся?
     
  4. ИгорьК

    ИгорьК Гуру

    Для информации, ибо про VSCode.

    Где-то писал про такую проблему. Во время редактирования кода иногда начинал съедаться его конец или наоборот допечатываться всякая хрень.

    Проблема была вот в чем. Папка с проектом лежит в папке облака NextCloud. При очередном обновлении VSCode переключился на режим автосохранения каждые 10 секунд.
    Во время правки кода начинается синхронизация с облаком и код портится.

    Отключил автосохранение - проблема решилась. Сохраняюсь вручную, как и привык.
     
  5. serg3295

    serg3295 Гуру

    Был такой, технологический.
    Вот поэтому-то у меня такого и не проявлялось. Я облаками не пользуюсь.
     

    Вложения:

    • telnet32.zip
      Размер файла:
      1 КБ
      Просмотров:
      76
    ИгорьК нравится это.
  6. ИгорьК

    ИгорьК Гуру

    Это моё облако. NAS дома. К дому - vpn и с рабочего компа и с дачи. На NAS Qsync от qnap и NextCloud.
     
    serg3295 нравится это.
  7. serg3295

    serg3295 Гуру

    У меня NAS старенький, с 1Mb памяти. Поднял на нём git сервер и vpn'ы к нему. Для работы хватает.
    clouds.jpg
     
    ИгорьК нравится это.
  8. ИгорьК

    ИгорьК Гуру

    IDF-5.02, свежее, и только оно. На четверке все работает.

    "Ничего не понимаю..."

    upload_2023-7-13_10-21-31.png


    Оно же:

    Код (Text):
    NodeMCU ESP32 build unspecified powered by Lua 5.3.5 [5.3-int32-singlefp] on IDF v5.0.2
    cannot open init.lua: No such file or directory
    > dofile('__init.lua')

    MQTT Client Name: test/mqtt
    Try Run     setglobals.lua
    > NodeMCU Got IP:    192.168.0.130
    m = mqtt.Client("clientid", 120)
    > m:connect('192.168.0.190')
    E (85047) mqtt_client: No scheme found
    E (85047) mqtt_client: Failed to create transport list
    Lua error:     stdin:1: Error starting mqtt client
    stack traceback:
        [C]: in method 'connect'
        stdin:1: in main chunk
        [C]: in ?
        [C]: in ?
    > m:connect('192.168.0.190', 1883, 0, 0, function(client) print('connected') end, function(client, reason) print('No connected', reason ) end)
    E (243947) mqtt_client: No scheme found
    E (243957) mqtt_client: Failed to create transport list
    Lua error:     stdin:1: Error starting mqtt client
    stack traceback:
        [C]: in method 'connect'
        stdin:1: in main chunk
        [C]: in ?
        [C]: in ?
    > print(m)
    userdata: 0x3ffcec20
    MQTT выдает ошибку "No scheme found".

    @serg3295 , не посмотрите исходники? Для меня сложновато разобраться.

    https://github.com/nodemcu/nodemcu-firmware/blob/dev-esp32-idf5-testing/docs/modules/mqtt.md

    Прошивка в приложении.

    PS. Такое впечатление, что прошивка собирается с модулем MQTT как-то не до конца. Снял звездочку
    upload_2023-7-13_10-42-27.png

    Картина та-же.
     

    Вложения:

    • 20230713_02.zip
      Размер файла:
      725,2 КБ
      Просмотров:
      62
    • sdkconfig.zip
      Размер файла:
      11 КБ
      Просмотров:
      67
    Последнее редактирование: 13 июл 2023
    serg3295 нравится это.
  9. serg3295

    serg3295 Гуру

    Пособирал разные прошивки, получил такую же неисправность.
    Собирается, вроде, всё нормально, но не работает. Недостающую схему можно обойти, задав
    HOST = "mqtt://192.168.0.31"
    Но вылезает другая проблема
    mqtt1.png

    Короче, буду разбираться. Если ничего не получится, открою issue.
     
    ИгорьК нравится это.
  10. ИгорьК

    ИгорьК Гуру

    Чет пИчалька на тему развития проекта NodeMCU.

    Признаюсь, я месяца полтора назад делал то же самое с тем же результатом. Подумал на свои кривые руки. На неделе было больше времени позаниматься вопросом.

    Сделал часы матрица MAX7219 с MH-Z19 на ESP32, что показывают качество воздуха. Вещица полезная в ряде конкретных случаев. Например, в кабинете на совещании или в спальне.

    Уже отсоединил устройство от компьютера с целью воткнуть в БП и забыть, но... Слетает прошивка! То есть часы входят в режим прошивки и не шьются. Уже печаль. IDF4 делает запись в регистр и блокирует изменение "слетевшей" прошивки. С этим тоже предстоит разбираться.

    Решаю, чтобы железо не простаивало, в новую ESP32 залить прошивку на IDF 5, а здесь один из главных модулей IoT сломан, и никто не заметил столько времени :(

    Одно полезно, узнал что esptool (не nodemcu-tool) можно не устанавливать в Винде, а запускать из каталога, есть релизы. :)
     
    Последнее редактирование: 14 июл 2023
    serg3295 нравится это.
  11. serg3295

    serg3295 Гуру

    Промежуточные итоги разбирательства с mqtt.

    В пакет sdk/esp32-esp-idf входит подозрительно устаревший субмодуль esp-mqtt. Это заметно, если посмотреть на вывод команды
    git submodule status components/mqtt/esp-mqtt

    > ae53d799da294f03ef65c33e88fa33648e638134 components/mqtt/esp-mqtt (ESP-MQTT_FOR_IDF_4.x-36-gae53d79)

    Этот субмодуль представляет собой отдельный репозиторий https://github.com/espressif/esp-mqtt который ушёл далеко вперёд от представленной в пакете версии.

    Мне удалось запустить mqtt, но это всё-равно какой-то кривой вариант. Пришлось поправить исходник файла mqtt_client.c (файл в приложении). Чтобы всё заработало надо заменить файл ../nodeMCU-firmware/sdk/esp32-esp-idf/components/mqtt/esp-mqtt/mqtt_client.c

    Для работы надо задать транспорт в имени хоста.
    HOST = 'mqtt://192.168.1.31'
    Остальные функции как обычно, кроме connect. Ей надо передать только один параметр.

    m:connect(HOST)

    Буду разбираться дальше, чтобы написать более хорошую issue.
     

    Вложения:

    • mqtt_client.zip
      Размер файла:
      14,9 КБ
      Просмотров:
      72
    ИгорьК нравится это.
  12. serg3295

    serg3295 Гуру

    Вроде нашёл ошибку в коде. Непонятно, как в idf4 вообще работало.
    Надо в файле ../nodeMCU-firmware/components/modules/mqtt.c заменить один символ в строке 422. Должно быть вот так.
    if (config.broker.address.uri == NULL)

    Субмодуль esp-mqtt можно возвращать оригинальный. Там в новых версиях исправлены некоторые ошибки, но к текущей ситуации они не относятся.
    Все функции будут работать как описано в документации, но дополнительно можно указывать транспорт прямо в host
    Код (C++):
    HOST = 'mqtt://192.168.1.31'
    m:connect(HOST)

    или

    m:connect(HOST, nil, 0, 0, function(client)
        print("MQTT connected. client: ", client)
      end,
      function(client)
        print("MQTT disconnected. client: ", client)
      end
    )
     
     
    ИгорьК нравится это.
  13. ИгорьК

    ИгорьК Гуру

    Just a wizard :)
     
  14. serg3295

    serg3295 Гуру

    Проект переехал на Github.
    Файл расширения .vsix можно скачать в разделе Releases под спойлером Assets.

    Ссылка для скачивания файла в самом первом сообщении этой темы более недействительна.
    Её было бы неплохо заменить на обновлённую, но я не могу этого сделать.

    Версия v4.0.0 функционально ничем не отличается от ранее опубликованной v3.5.12, поэтому обновление до v4.0.0 не обязательно.
    Также обращаю внимание на то, что в версии 4.0.0 прекращена поддержка node v14 из-за библиотеки serialport. Поэтому, при установке может потребоваться обновление версии node на компьютере пользователя. Рекомендую устанавливать сразу node v18.

    UPD: версия v4.0.0 опубликована в marketplace.visualstudio, так что можно её устанавливать не из файла .vsix, а стандартным способом через панель расширений vscode.
     
    Последнее редактирование: 18 окт 2023
    ИгорьК нравится это.
  15. serg3295

    serg3295 Гуру

    На github'e создана wiki в которой структурирована вся справочная информация по расширению nodemcu-tools.
     
    virtual, ИгорьК и issaom нравится это.
  16. Костя++

    Костя++ Нерд

    Привет Всем! Как то был у меня один проект, пилил я его на LUA для ESP, вылилось это вот в это

    делалось это 4 года назад, сейчас хочу это все актуализировать, выложить исходники наладить общественный процесс доработки, так как оказалось что это людям интересно. Если тут есть желающие поучаствовать будет отлично, планирую следующую версию на ESP32 и тоже с LUA, но сам сейчас я не осилю заниматься этим столько нет времени сколько было тогда. Просто посмотрите видео.
     
    ZAZ-965 и ИгорьК нравится это.
  17. Костя++

    Костя++ Нерд

    Написал наверняка не в ту тему, прошу прощения, админы просто перенесите куда надо.
     
  18. ИгорьК

    ИгорьК Гуру

    Ничего не понял. То есть все понятно, но где это применять - вопрос. Каждый раз, когда вижу такие устройства, вспоминаю сказ про Левшу.
    Левша был крут - подковал блоху.
    С тех пор, однако, ни одна подкованная блоха себе применения не нашла и никто ее на улице не видел.
    Наверно я уже старый. Не понимаю современного искусства :)
    Просто удачи вам :)
     
  19. Костя++

    Костя++ Нерд

    Спасибо за ваше мнение! Мое применение в работе показано в видео, однако где применять микрокомпьютер с LUA меня спрашивает местный гуру по ESP на LUA? Ну как бы ограниченно только Вашей фантазией. Лично мое применение выходит за рамки этого видео и связано оно в первую очередь с тестированием оборудования, быстрого написания скриптов на LUA. Нашлось применение даже дома в виде отображения различной информации с различных датчиков, где быстрым взглядом можно увидеть все и вся. Но самое прикольное в этом всем это то что когда написана программа с GUI на LUA и тут ты что то решил изменить, то это делается так просто и быстро прямо на микрокомпьютере при этом не используя ничего более, никаких компиляторов, сторонних компов, просто подключил клавиатуру и делай.
     
  20. Костя++

    Костя++ Нерд

    Спасибо!