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

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

  1. ИгорьК

    ИгорьК Гуру

    k - это ключи таблицы, те что в квадратных скобках. Перебираются они.
    В результате - добавил вывод min, max после каждого цикла:

    upload_2021-9-10_14-47-6.png

    И добавляем ключ с "0":

    upload_2021-9-10_14-49-1.png
     
    SergeiL нравится это.
  2. ИгорьК

    ИгорьК Гуру

    Логика фильтра очень простая:
    1. в циклах определяем ближайшие ключи, между которыми лежит пришедшая с датчика температура. Первый определяет меньший ключ, второй - бОльший;
    2. (та странная строка, что валилась) (1) вычисляем пропорцию температуры от датчика между ключами и через нее (2) рассчитываем температуру между значениями ключей.
    upload_2021-9-10_15-41-5.png
     
    Последнее редактирование: 10 сен 2021
    SergeiL нравится это.
  3. ИгорьК

    ИгорьК Гуру

    upload_2021-9-22_14-26-52.png

    Проект NodeMCU некоторое время назад заимел ветку dev-esp32-idf4
    Прошивку из нее нельзя заказать в облаке, но можно компилировать локально.
    При компиляции есть возможность выбора Lua 5.1 / Lua 5.3.

    На картинке график кучи - код опроса счетчика Энергомера.

    1. Lua 5.3 без явного вызова collectgarbage() в конце каждого цикла опроса.
    2. Lua 5.3 тот же код с добавлением единственной строки collectgarbage().
    3. Lua 5.1 без вызова collectgarbage(), то есть код, идентичный п.1.
     
  4. serg3295

    serg3295 Гик

    Сборщик мусора Lua5.3 в esp8266 вёл себя также. Этот новый алгоритм TerryE описывал в документации,
    а в ветку esp32-idf4 Lua5.3 просто портировали.
    Также перенесли LFS с синтаксисом, полностью совпадающим с esp8266.
    Добавлен модуль heaptrace для трассировки кучи. Но с ним я еще не разбирался.
     
    ИгорьК нравится это.
  5. ИгорьК

    ИгорьК Гуру

    О, увидел. Чет все сложнее и сложнее и (мне) не очевидна полезность всего этого для МК :-(
     
  6. serg3295

    serg3295 Гик

    Для отладки, возможно, heaptrace и полезна. В IDF от Espressif эта функция встроена, вот к ней интерфейс и прикрутили.
    Из полезных, на мой взгляд, вещей уже давно была добавлена возможность хранения произвольных файлов в LFS (только esp8266) благодаря добавлению модуля file_lfs.lua
    То есть, теперь файл favicon и подобные могут лежать в LFS, если кто-то пишет сайты на esp8266.
     
  7. ИгорьК

    ИгорьК Гуру

    Новички, если касается DIY. Те которые "из любой точки мира".
    У меня сейчас к роутеру штук 20 espшек подключено, если к каждой вебморду приделывать - убьешься IP-адреса вбивать.
    И LFS толком не пользуюсь: хватает ресурсов даже на 8266, не говоря о ESP32 .
     
    SergeiL нравится это.