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

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

Метки:
  1. serg3295

    serg3295 Гуру

    Вот такой ярлычок на устройстве, которое не коннектится, появляется?
    А на том, которое коннектится, какие данные в ярлычке?
    ext3.png
     
    ИгорьК нравится это.
  2. ИгорьК

    ИгорьК Гуру

    Это не коннектится:
    upload_2023-5-4_18-56-58.png

    Это коннектится:

    upload_2023-5-4_18-57-21.png

    Это две одинаковые wemos d1 mini.
     
  3. serg3295

    serg3295 Гуру

    Я так понимаю, что если физически подключать их по одной, то ничего не изменится. То есть дело не в количестве одновременно подключенных устройств?
     
    ИгорьК нравится это.
  4. ИгорьК

    ИгорьК Гуру

    Не в количестве. Ни одни часы не подключаются не вместе ни порознь.

    upload_2023-5-4_19-12-12.png

    Во всех часах есть фоторезистор. В некоторых - DS18b20.
    Плата прошитая прошивкой часов и работающая без обвязки - подключаются.
    Все часы подключаются через ESPlorer без проблем.
     
    serg3295 нравится это.
  5. serg3295

    serg3295 Гуру

    Пока мыслей нет. Буду ещё смотреть, в чём там может быть дело.
     
    ИгорьК нравится это.
  6. serg3295

    serg3295 Гуру

    Я правильную прошивку часов взял для экспериментов? У меня один ds только подключен. Не коннектится должна в запущенном состоянии, или без запуска __init?
    ext4.png
     
    ИгорьК нравится это.
  7. serg3295

    serg3295 Гуру

    Попробовал под Windows 10. Плата Wemos. Коннектился и дисконнектился при работающей прошивке. Что-то она там в консоль выдавала.
    Температуру и mqtt я видел. А вот матрицы у меня, конечно, нет.
    Скриншот 04-05-2023 21.06.42.png

    Это всё-таки та прошивка?
     
    ИгорьК нравится это.
  8. ИгорьК

    ИгорьК Гуру

    Никак не коннектится, но часы. Просто плата коннектится. На часах отсоединял дисплей и датчик. - не коннектится. Но присутствует фоторезистор.

    На выходных потестирую еще. И фоторезистор отпаяю. Чудеса :)

    Вложил. Но это очень грязная прошивка, работает но чистить ее и чистить.

    Главная проблема в том, что нет коннекта даже на незапущенных часах. То есть при включении нет файла init.lua.

    Есть только подтяжка, по сути, А0 к VCC, но она там через схему платы.
     

    Вложения:

    • clock.zip
      Размер файла:
      32,8 КБ
      Просмотров:
      85
  9. serg3295

    serg3295 Гуру

    1. С приложенной в предыдущем сообщении версией программы тоже работает.

    2. Коннектятся ли часы через nodemcu-tool из командной строки? Вот это очень интересно!!!

    3. Какой тип фоторезистора? Хочу почитать datasheet.

    Ещё для проверки можно удалить лишние файлы с привязками для разных операционных систем:
    /путь к расширениям/.vscode/extensions/boressoft.nodemcu-tools-3.5.7/lib/
    serialport-v10.0.1-darwin-x64.node
    serialport-v10.0.1-linux-x64.node
    это ускорит процедуру определения порта только под Windows.
    В принципе, их можно удалять всегда, оставляя только файл для той ОС, в которой запускается расширение; быстрее будет происходить определение порта.

    Этот проект часов кто-то повторял. Хорошо бы если бы они проверили соединение этого расширения с часами. Это дало бы больше информации.
     
    ИгорьК нравится это.
  10. ИгорьК

    ИгорьК Гуру

    Спортивный азарт :) Да, происходящее пока объяснению не поддаётся. Вспоминаю начало работы с ESP8266, когда не было документации :)

    1. Работает. Это первое что я проверил.

    2. Проверю.

    3. Фоторезистор типа "китайский, купленный где-то сто лет назад". Причём их несколько видов в одной ячейке коробки. Все в состоянии освещённости сопротивление около 300 ом, в темноте 5-10 ком. Одновременно смотри схему Wemos D1 mini - там защита от дурака ноги A0.

    Кстати! Можешь завесить на VCC ногу А0 без всякого резистора - схема платы позволяет.

    Файлы удалю.

    Проект конечно повторяли, но вот чтобы люди неразработчики установили vscode с плагинами - что-то не верится. Так что если хочется - попробуй сам часы собрать. Часы реально полезные с эффектом привыкания. Корпус в stl или Компас 3D пришлю если нужно.
     
    serg3295 нравится это.
  11. ИгорьК

    ИгорьК Гуру

    2. Винда только запущена.

    upload_2023-5-5_9-42-6.png

    upload_2023-5-5_9-39-39.png

    На пятом порту соединяется, на шестом - нет. VSCode. после перезагрузки не запускался.

    Отрываю через ESPlorer порт 9, где такие-же часы:
    upload_2023-5-5_9-43-34.png

    Шестой тоже открылся:

    upload_2023-5-5_9-44-27.png

    Пробую еще раз 6, 9:

    upload_2023-5-5_9-47-21.png

    Пробую 5:

    upload_2023-5-5_9-48-2.png
     
  12. serg3295

    serg3295 Гуру

    3. Поиграл с резистором на ноге А0. Lux got меняется, освещённость тоже меняется. Коннектится и дисконнектится на лету туда сюда.
    Все мы тут "неразработчики" :) Тут, однако, не требуется что-то программировать в VS Code, всё на уровне - кнопка "Пуск", лампочка "Готов". Ну, да ладно...

    Проект надо бы повторить. Почитаю тему про часы, закажу детальки. Тогда и файлы корпуса понадобятся. Там, как я понял, могут быть разные размеры матрицы.
    А esptool то за что?!
    И, всё-таки, что с nodemcu-tool? Он будет коннектится?

    Я сделал новую версию с обновлёнными системными файлами привязки к serialport. Скоро выложу.
     
    ИгорьК нравится это.
  13. ИгорьК

    ИгорьК Гуру

    А nodemcu-tool надо устанавливать, я уже забыл где-там прикол, мы где-то обсуждали это. Сейчас так:

    upload_2023-5-5_10-6-16.png

    И времени уже этим заниматься нет. Однако... esptool тоже показатель.
     
  14. serg3295

    serg3295 Гуру

    Может у винды крыша съехала на тему COM портов.
    Попробуй Диспетчер устройств -> Вид -> Показать скрытые устройства
    Порты (COM и LPT) -> Удалить устройство. Удалить все СОМы оттуда.
    До кучи можно драйвера СОМов переустановить.
     
  15. ИгорьК

    ИгорьК Гуру

    Да, разница 1 - 1,5 мм, но если корпус подгонять под общи зазор 0.4 то надо проектировать под конкретные матрицы.
     
    serg3295 нравится это.
  16. ИгорьК

    ИгорьК Гуру


    upload_2023-5-5_10-10-34.png

    Фигасе! Первый раз такое делаю!

    Но удаление не помогло :-(
     
  17. serg3295

    serg3295 Гуру

    Прикол был в том, что версия node должна была быть >= 12.
    А тут ему не нравится luamin и он просит что-то удалить. Можно локально поставить, без ключа -g
     
    ИгорьК нравится это.
  18. ИгорьК

    ИгорьК Гуру

    Все, перерыв :-(
     
  19. serg3295

    serg3295 Гуру

    Выпущена версия 3.5.8
    • Добавлена опция nodemcu-tools.overwriteSnippets. Значение по умолчанию true;
    • Добавлена обработка ошибок, возникающих при открытии последовательного порта.
    Перед дальнейшим чтением рекомендуется освежить в памяти материал из сообщения Работа со сниппетами.
    Программа считывает сниппеты в следующем порядке:
    • значения по умолчанию. Они определены в коде расширения и не могут быть изменены пользователем. Этих сниппетов всего три. Restart, Heap, и Globals. Они в основном подходят для большинства пользователей, поэтому включены по умолчанию;
    • значения из настроек пользователя User settings. Сюда пользователь может включить свои сниппеты. Например, запрос состояния LFS. Исполняемый код Lua для данного запроса одинаков как для ESP8266, так и для ESP32, поэтому имеет смысл включить его в группу общих сниппетов User.
    • значения рабочего пространства Workspace settings. Эти значения могут быть индивидуальны для каждой архитектуры чипа. Например, у ESP8266 и ESP32 отличается API WiFi. Поэтому для них пользователь будет определять разные сниппеты в каждом рабочем пространстве.
    Если пользователь задаст собственные сниппеты в рабочем пространстве, то по умолчанию на панель терминала выведутся только эти кнопки со сниппетами Workspace. Это поведение позволяет пользователю полностью отказаться от отображения предустановленных сниппетов в пользу своих собственных. Чтобы сохранить предустановленные сниппеты приходится дублировать их код в settings.json пространства пользователя.
    Чтобы избежать дублирования одних и тех же фрагментов кода на разных уровнях задания значений (Default -> User -> Workspace) введена опция nodemcu-tools.overwriteSnippets. Если в файле workspace settings.json установить эту опцию в false, то значения сниппетов из workspace будут объединены с Default и User.
    Это поведение позволяет сохранить иерархическую структуру сниппетов и избежать их дублирования на всех уровнях.
    Пример:
    Код (Javascript):
    // package.json
    "Default snippets": "Они определены в файле package.json и их не надо трогать. Они общие для всех."


    // User settins: settings.json
       "nodemcu-tools.snippets": {
         "User snippet": "print'Это пользовательский сниппет, общий для всех workspace'"
       }

    // Workspace setting: settings.json
      "nodemcu-tools.overwriteSnippets": false, // Говорим, что не хотим убирать сниппеты по умолчанию из отображения на панели терминала.
      "nodemcu-tools.snippets": {
        "Workspace snippet": "print'Это сниппет из рабочего пространства. Обычно, специфичен для архитектуры чипа.'"
      }
    Примеры реальных сниппетов. При использовании, комментарии, естественно, надо будет убрать.
    Обратите внимание на двойной обратный слэш перед символами перевода строки \n. Для \t также надо будет ставить префикс - \\t.
    Код (Javascript):
    // User settins: settings.json
       "nodemcu-tools.snippets": {
         // Запрашиваем состояние LFS
         "LFS state": "local s,p={},node.LFS.config;for _,k in ipairs{'lfs_base','lfs_mapped','lfs_size','lfs_used'}do s[#s+1]='%s = 0x%06x'%{k,p[k]}end;print('> LFS config:\\n{ %s }\\n> LFS list:'%table.concat(s,', '))for k,v in pairs(node.LFS.list())do print(k,v)end"
       }

    // Workspace settings: settings.json
       "nodemcu-tools.snippets": {
         // Запрашиваем состояние WiFi у esp8266
        "WiFi state": "print('ip: %s\\tmask: %s\\tgw: %s'%{wifi.sta.getip()}..'\\thostname: %s'%wifi.sta.gethostname())"
       }
     
    ИгорьК нравится это.
  20. serg3295

    serg3295 Гуру

    Общее замечание ко всем версиям

    Несмотря на то, что, начиная с версии 3.5.4, для выполнения некоторых команд требуется наличие кросс-компилятора luac.cross, рекомендуется использовать для работы самые последние версии расширения. Если у пользователя нет luac.cross, или не настроен (отсутствует) файл конфигурации, то команды, использующие luac.cross, просто не появятся в интерфейсе. Все остальные функции расширения будут доступны пользователю. Версии со старшими номерами содержат исправления ошибок и в них добавляется новый функционал. Поэтому их использование предпочтительно.
     
    ИгорьК нравится это.