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

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

  1. ИгорьК

    ИгорьК Оракул Модератор

    upload_2019-8-14_15-54-53.png


    upload_2019-8-14_15-48-14.png

    upload_2019-8-14_15-59-16.png
     
    Последнее редактирование: 14 авг 2019
  2. DimaCh

    DimaCh Нуб

    Ох уж эти интерпретируемые языки =) Это про do end. В си такого небыло )

    Запустил mqtt на новом SDK 2.2.1. Исправил код в файле setmqtt.lua
    Вместо
    Код (C++):
    tmr.stop(getmq)
            tmr.unregister(getmq)
    Заменил на
    Код (C++):
    getmq:stop()
            getmq:unregister()
    Правда варнинг получил:
    Warning, deprecated API! autoreconnect is deprecated. It will be removed in the next version. See documentation for details.
    Но к брокеру соединился, оправка и получение пакетов работает.
     
  3. ИгорьК

    ИгорьК Оракул Модератор

    В си своих заморочек хватает - каждый чих надо расписывать. Я туда уже ни ногой.
     
  4. RotaryF

    RotaryF Нерд

    И я тоже интересовался, но что-то не то, у меня, к примеру, FS на SD-картах артачится.
    Но вот, что меня сейчас интересует. А с каким софтом, прошивкой приходит девственная ESP32, как это смотреть?
     
  5. ИгорьК

    ИгорьК Оракул Модератор

    Подключиться в любом терминале и нажать кнопку ресет - смотреть что будет написано и разбираться.
     
  6. RotaryF

    RotaryF Нерд

    Коль скоро это так, подскажите, пожалуйста, удачные, безглючные реализации/прошивки самой JavaScript на ESP-8266/ESP32.
    Разумеется, интересует JavaScript-программирование в этой среде.
     
    Последнее редактирование: 21 авг 2019
  7. ИгорьК

    ИгорьК Оракул Модератор

    Боюсь, вы поняли сказанное мной слишком буквально. Lua не равен JavaScript, здесь имеется в виду лишь ОБЩАЯ логика программирования. Привыкнув писать на Lua вы не встретите особых затруднений при написании на JavaScript, исключая много удивления "а зачем на JS так все сложно устроено".

    В целом, ИМХО, Lua для этого модуля - более легкая система, нежели Espruino.

    Что касается лучшей прошивки JavaScript, то я ничего не посоветую. Я сделал один проект на ESP32 на той прошивке, что была в тот момент и он работал.
     
  8. RotaryF

    RotaryF Нерд

    С этим соглашусь.
    С реализацией же и JS, и Python на ESP32 у меня постоянно возникают какие-то недоразумения, которые заканчиваются "кивками" разработчиков в сторону Espressif.
    Кстати, интересно прошивка
    ------------
    NodeMCU ESP32 build unspecified powered by Lua 5.1.4 on SDK IDF
    lua: cannot open init.lua
    > ets Jun 8 2016 00:22:57
    ------------
    самая свежая на этот момент? :(
     
  9. ИгорьК

    ИгорьК Оракул Модератор


    upload_2019-8-21_18-24-26.png

    Здесь смотрите.
     
  10. ИгорьК

    ИгорьК Оракул Модератор

    upload_2019-8-21_18-28-45.png

    Не знаю, к сожалению.
     
  11. ИгорьК

    ИгорьК Оракул Модератор

    43. Модуль BH1750.
    Даташит.
    Кому нравится - берем от NodeMCU.
    Кто увидит там проблемы (пишите :) ) - применяет мой так:

    Код (Lua):
    do
        tbl = {} -- Склад данных
        local SDA_PIN = 6 -- sda pin, GPIO12
        local SCL_PIN = 5 -- scl pin, GPIO14
        bh1750 = require("bh1750")
        bh1750.init(SDA_PIN, SCL_PIN)
        local work = function()
            print('Work Done!')
            bh1750 = nil
            package.loaded["bh1750"]=nil
            table.foreach(tbl,print) -- Что в таблицу занесли?
        end
        bh1750.getlux(work, tbl)
        --bh1750.readdt(0x20, 2)
    end

    upload_2019-8-21_19-3-51.png

    Самые ленивые применяют так:
    Код (Lua):
    do
        bh1750 = require("bh1750")
        local work = function(lux)
            print('Work Done:', lux)
            bh1750 = nil
            package.loaded["bh1750"]=nil
        end
        bh1750.getlux(work)
    end
    Ибо ноги sda, scl забиты там по-умолчанию как выдает скрипт, а без таблицы можно обойтись.

    upload_2019-8-21_19-18-29.png
     

    Вложения:

    • bh1750.zip
      Размер файла:
      1,2 КБ
      Просмотров:
      9
    Последнее редактирование: 21 авг 2019
  12. RotaryF

    RotaryF Нерд

    Извините мою непонятливость, это где? :confused:
    Ведь на этом ресурсе (https://nodemcu-build.com/) кастомные прошивки только под ESP8266.
    Я же воспользовался Вашей прошивкой из поста #776
     
    Последнее редактирование: 21 авг 2019
  13. ИгорьК

    ИгорьК Оракул Модератор

    Я ошибся. Дата сборки прошивки из поста примерно соответствует дате поста.
     
  14. RotaryF

    RotaryF Нерд

    Придется кастомными ESP32-прошивками заняться несколько тщательнее.
    Куда смотреть пока толком не знаю, не подскажите ли? :rolleyes:
     
  15. ИгорьК

    ИгорьК Оракул Модератор

  16. RotaryF

    RotaryF Нерд

    Видно легким этот путь не будет :D
     
  17. ИгорьК

    ИгорьК Оракул Модератор

    Не совсем понимаю, чего вы хотите достичь.

    ИМХО, для домашних поделок любого рода Lua хватает за глаза. Я упирался в возможности железа только два раза, один - когда делал управление инкубатором и нужно было получить плавное управление нагревом от лампочки, и второй - делал управление климатом в подвале и от туда wifi не брал, поэтому сделал на Iskra JS + HC-12 433 мгц.

    Заниматься теми прошивками, куда вы собираетесь, надо только если этим зарабатываешь.
     
  18. RotaryF

    RotaryF Нерд

    Простой пример.
    В означенной прошивке нет модуля SPI, как по-Вашему, чего я могу хотеть?
     
  19. SergeiL

    SergeiL Гуру

    SPI есть в среде Arduino IDE.
     
  20. RotaryF

    RotaryF Нерд

    Мы же говорим о Lua, o NodeMCU! :)