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

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

  1. SergeiL

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

    Да это известный факт!
    Я с ESP в 2015-ом на LUA и начинал. Не было тогда Си!
     
  2. parovoZZ

    parovoZZ Гуру

    это не библиотеки ардуино, а внутренние api вызовы заводского драйвера.

    no comments

    На esp8266 написали файловую помойку для этого чипа. И скорости там очень хорошие достигнуты. Ну и плюс удобство разработки - сайт верстается как обычно, а потом его конвертируешь в webfs.
     
  3. parovoZZ

    parovoZZ Гуру

    Cи или ардуино? Тулчейн был всегда. Вопрос: был ли он доступен для всех - этого я не знаю.
     
  4. ИгорьК

    ИгорьК Гуру

    то есть api справится без падения wifi:
    Код (C++):
    local x = 1;
    while x > 0 do
        x=x+1;
    end
    тыж за полный контроль :)

    ну как тут не согласиться... У тебя же справка есть, что все что ты оценил - все так на самом деле :)
     
  5. SergeiL

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

    Я уже говорил, что познакомился с ардуино, только потому что в ардуино появилась поддержка ESP.
    Начинал разбираться с LUA, но, лично для меня, Си намного удобней.
    Попробовал Ардуино для ESP, попробовал Leonardo ETH, c Ethernet и Ардуино.
    Понял, что даже очень прикольно!
    И то, что раньше писалось долго на "чистом Си" - можно написать гораздо быстрее с частичным использованием библиотек или открытыми исходниками библиотек . ;)
     
  6. AlsPro

    AlsPro Нерд

    Спасибо за подсказку! Я только 3 недели знаком с LUA. Попробую учесть это и посмотреть результат!
     
  7. AlsPro

    AlsPro Нерд

    Я такого не говорил) Просто есть ньюансы! Буду их решать.
     
  8. ИгорьК

    ИгорьК Гуру

    Ну таки не делайте оценок :) тут уже три года вникаешь и чувствуешь себя олухом :)
     
  9. ИгорьК

    ИгорьК Гуру

    Читайте пункт 32 этой темы.
     
  10. AlsPro

    AlsPro Нерд

    Спасибо. Я понял, прочитал, но у меня нет ни циклов, ни функций кроме print, uart.write, да if
     
    Последнее редактирование: 6 дек 2019
  11. AlsPro

    AlsPro Нерд

    У меня такая структура сервера. Может надо часть кода вынести из receiver в отдельные функции?
    Код (C++):
    local function receiver(sck, line)
    --Тут куча кода,
    end

    if sv then
      sv:listen(80, function(conn)
        conn:on("receive", receiver)
       
      end)
    end
     
  12. ИгорьК

    ИгорьК Гуру

    Скорее всего, если wifi падает.
     
  13. AlsPro

    AlsPro Нерд

    Вроде я понял, почему связь рушилась и сбивались настройки. Сервер не виноват. Сами кнопки перезагружаются по ошибке already connected
     
  14. AlsPro

    AlsPro Нерд

    Вот только как проверить, есть ли соединение? Не могу найти такой функции.
     
  15. ИгорьК

    ИгорьК Гуру

    ESP-8266 или ESP32?
     
  16. AlsPro

    AlsPro Нерд

    esp8266 у меня
     
  17. ИгорьК

    ИгорьК Гуру

    https://nodemcu.readthedocs.io/en/master/modules/wifi/#wifistagetip

    Проверяете есть ли у вас ip-адрес или нет.

    Но эта элементарщина присутствует в любом топике здесь, что использует wifi.
     
  18. AlsPro

    AlsPro Нерд

    Спасибо! это я делаю, но wifi то присутствует. А вот если несколько раз вызвать srv:connect(80,"192.168.4.1"), а сервер не ответит на предыдущий вызов и подключение не завершится то появится ошибка already connected. Я не могу сообразить, как проверить, есть ли незавершенный connect, и если есть, то как его завершить принудительно
     
  19. ИгорьК

    ИгорьК Гуру

    - Убедитесь перед вызовом, что на предыдущий получен ответ.
    - Принудительно закройте соединение: https://nodemcu.readthedocs.io/en/master/modules/net/#netserverclose
     
  20. AlsPro

    AlsPro Нерд

    У меня тоже была идея перед вызовом ждать ответа. Но если ответа нет, то само соединение висит довольно долго. Так можно закрыть его с сервера. А закрыть с клиента получается нельзя?