ESP-8266/ESP32 NodeMCU Lua: азы программирования.

Тема в разделе "ESP8266, ESP32", создана пользователем ИгорьК, 25 июл 2017.

  1. PiGeMa

    PiGeMa Нуб

    Здравствуйте!
    Столкнулся со сборкой, сделанной в nodemcu-build.com, в которой библиотека gpio не соответствует описанию. В ее составе нет функции mode, но присутствует функция config. Есть также функции read, trig, wakeup, write, set_drive. Может кто-то сталкивался с такой сборкой?
     
  2. ИгорьК

    ИгорьК Гуру

    PiGeMa нравится это.
  3. PiGeMa

    PiGeMa Нуб

  4. ИгорьК

    ИгорьК Гуру

    upload_2020-12-22_11-55-5.png
     
  5. Beavis

    Beavis Нуб

    В модуле WIFI для класса wifi определены "события" таких типов как:
    Код (Text):
    wifi.eventmon.STA_CONNECTED
      wifi.eventmon.STA_GOT_IP
    Разве не было бы удобнее пользоваться ими для подтверждения установки подключения, дабы не плодить сущности таймеров? Быть может данный вопрос уже поднимался. Все 58 страниц данного топика не осили. Если ответ на данный вопрос уже приводился, буду благодарен за ссылку на сообщение.
     
  6. ИгорьК

    ИгорьК Гуру

    upload_2020-12-23_12-31-26.png

    Как считаете необходимым, так и поступайте. Это не проект счетчика, а примеры кода Lua для NodeMCU.

    Дополнительно. Несколько раз я включал опцию мониторинга wifi в проекты, но каждый раз отказывался. По факту она жрала много памяти и сидела в ней тогда, когда необходимость отпадала.
    На мой взгляд таймер - просто и надежно.
    Надеюсь, с тех пор как я этим занимался ситуация стала лучше.

    А сущность так и так плодится - не таймер, так лишний модуль в устройстве.
     
    Последнее редактирование: 25 дек 2020
  7. serg3295

    serg3295 Гик

    В свежем релизе 3.0-release_20201107 были внесены изменения в округление float numbers,
    и добавлен субмодуль c99-snprintf в /app/libc/
    В результате изменилось поведение модуля sjson при кодировании в строку JSON.

    jsonERR.png


    В предыдущем релизе 3.0-release_20200910 преобразование работает, как ожидалось.

    jsonOK.png

    И что интересно - значение 0.3 округлится правильно:confused:
     
    Последнее редактирование: 25 дек 2020
    swc и ИгорьК нравится это.
  8. swc

    swc Гик

    Вопрос: можно ли как-то защитить прошивку в ESP8266?
     
  9. Костя++

    Костя++ Нерд

    node.chipid() вроде как у всех ESP разный, можно привязать исполнение скомпилированного скрипта к ID, но это будет скорее защита от школоты.
     
  10. swc

    swc Гик

    Нет, это не защитит. Прошивка элементарно скачивается. Дальше дело техники. В обычных МК защита - достаточно бит защиты установить. В ESP прошивка хранится во внешней FLASH памяти, а она общего назначения.
     
  11. Костя++

    Костя++ Нерд

    Согласен что элементарно скачивается, а потом проверяет прошивка что не тот ID и не запускается, конечно не ахти какая защита если попадет в руки человеку умеющим пользоваться hex редактором.
     
  12. SergeiL

    SergeiL Оракул Модератор

    В обычных МК прошивка она в hex-е, и что то поправить в ней можно, но порой проще написать, чем разбираться и править.
     
  13. Костя++

    Костя++ Нерд

    Аналогично и здесь скомпилированный скрипт.
     
  14. SergeiL

    SergeiL Оракул Модератор

    Ну и какие тогда проблемы?
     
  15. swc

    swc Гик

    В обычных МК если поставлена защита, то прошивку достать невозможно.
     
  16. serg3295

    serg3295 Гик

    В дополнение к командам автоматизации загрузки файлов в ESP из VS Code.

    Ранее я публиковал скрипты, которые позволяют, в том числе, загружать по FTP файлы в ESP.
    Однако, в отличии от загрузки по COM'у где использовался nodemcu-tool, не производилось удаление комментариев и лишних пробелов из файла. Для очистки использовалась программа LuaSrcDiet.

    В новой версии скриптов добавлена команда "FTP: LuaSrcDiet & upload active file" объединяющая очистку файла и выгрузку его по FTP.
     

    Вложения:

    • .vscode.zip
      Размер файла:
      1,8 КБ
      Просмотров:
      52
    ИгорьК нравится это.
  17. Костя++

    Костя++ Нерд

    Ну вот достали Вы к примеру скрипты скомпилированные защищенные для запуска при совпадении ID, давайте проведем эксперимент, как быстро Вы заставите скомпилированный скрипт заработать у себя, скрипт прилагаю, пробуйте мне самому интересно насколько эта идея жизнеспособна.
     

    Вложения:

    • checkid.zip
      Размер файла:
      336 байт
      Просмотров:
      53
  18. ZAZ-965

    ZAZ-965 Гуру

    Код (Bash):
    -- Decompiled using luadec 2.0.2 by sztupy (http://winmo.sztupy.hu)
    -- Command line was: checkid.luac

    if node.chipid() ~= 11149313 then
      print("your ID id" .. node.chipid() .. " wrong")
    else
      print("ID OK")
      for l_0_3 = 0, 15 do
        print(l_0_3)
      end
    end
     
    swc и ИгорьК нравится это.
  19. Костя++

    Костя++ Нерд

    Странный декомпилятор по части декомпеляции цикла, оригинал:
    Код (C++):
    if node.chipid() ~= 11149313 then print("your ID id"..node.chipid().." wrong") else print("ID OK")
    for i=0,15 do print(i) end
    end
    Хотя это и не важно как называется локальная переменная.
     
  20. Костя++

    Костя++ Нерд

    Кто использует LFS, luacross есть только для float?
     
    Последнее редактирование: 15 янв 2021