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

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

  1. swc

    swc Гик

    Последнее редактирование: 21 апр 2019
  2. Ferdinand

    Ferdinand Нерд

    Спасибо огромное, буду копать!
    Но вот ещё проблема, всю ночь бился, не пойму в чем соль((
    Не могу с помощью браузера подключиться к IP 192.168.1.250, подключаюсь как Клиент, нахожусь внутри сети (все гаджеты подключены к одному роутеру = AP)


    Код (Lua):
    wifi.setmode(wifi.STATION)
        wifi.sta.clearconfig()
        local scfg = {}
        scfg.auto = true
        scfg.save = false
        scfg.ssid = 'qwerty'
        scfg.pwd = 'qwerty123'
        wifi.sta.setip({ip = "192.168.1.250", netmask = "255.255.255.0", gateway = "192.168.1.1"})
        wifi.sta.config(scfg)
        wifi.sta.connect()

        wifi.eventmon.register(wifi.eventmon.STA_GOT_IP, function(T)
        print("\n\tWI-FI - ПОДКЛЮЧЕН!".."\n\tСтатический IP: "..T.IP.."\n\tМаска подсети: "..
        T.netmask.."\n\tШлюз IP: "..T.gateway)
    end)
        wifi.eventmon.register(wifi.eventmon.STA_DISCONNECTED, function(T)
        print("\n\tWI-FI - НЕ ПОДКЛЮЧЕН !!!".."\n\tSSID: "..T.SSID)
    end)

    srv = net.createServer(net.TCP)
    srv:listen(80,function(conn)
        conn:on("receive",function(sck, data)
           print(data)
            conn:send("<h1> Hello, NodeMCU!!! </h1>")
       end)
        conn:on("sent",function()
            conn:close()
       end)
    end)

    123.jpg
     
  3. ИгорьК

    ИгорьК Гуру

    А что говорят там, где этот код изготовили?
     
  4. Ferdinand

    Ferdinand Нерд

    Только осваиваю азы, по этому собирал сам, так как понял, по мануалам тут: nodemcu.readthedocs.io
    Из Ваших статей выдернул это:

    Код (Lua):

    srv = net.createServer(net.TCP)
    srv:listen(80,function(conn)
        conn:on("receive",function(sck, data)
           print(data)
            conn:send("<h1> Hello, NodeMCU!!! </h1>")
       end)
        conn:on("sent",function()
            conn:close()
       end)
    end)
     
     
  5. ИгорьК

    ИгорьК Гуру

    Поделитесь ссылкой.
    Насколько я помню, я не делал серверов в принципе, а если делал, то так: https://goo.gl/TDPkdK
     
  6. ИгорьК

    ИгорьК Гуру

    А, ну да. Было такое.

    Позже.
    Пока сделайте так, чтобы модуль входил в сеть сам, без всяких дополнительных действий.
    Просто - включили, а он вошёл.

    Проверьте и убедитесь что модуль в сети.

    Обратите внимание, что вы в коде даёте модулю команду на подключение к сети, а затем немедленно создаёте сервер, когда железно этого соединения еще нет.
     
    Последнее редактирование: 22 апр 2019
  7. Ferdinand

    Ferdinand Нерд

    Сделал, при включении коннектится к роутеру.
    Сейчас попробую выждать и дать команду на создание сервера.

    123.jpg 1234.jpg
     
  8. ИгорьК

    ИгорьК Гуру

    Ужас :)
    А не проще дать в терминале
    =node.sta.getip()

    Код (Lua):
    =wifi.sta.getip()
     
    Последнее редактирование: 22 апр 2019
  9. Ferdinand

    Ferdinand Нерд

    Не хочет ((

    123.jpg 1234.jpg
     
  10. ИгорьК

    ИгорьК Гуру

    Разберёмся чуть позже :)

    Как до компа доберусь
     
  11. Ferdinand

    Ferdinand Нерд

    Ok !
     
  12. ИгорьК

    ИгорьК Гуру

    Ну, не знаю что вам сказать:

    upload_2019-4-22_9-56-22.png
     
  13. Ferdinand

    Ferdinand Нерд

    Возможно дело в подключаемых модулях?
    Взгляните, может у меня чего-то не хватает.

    Мои:
    adc, bloom, cron, crypto, enduser_setup, file, gpio, http, net, node, pwm, rotary, rtcmem, sjson, switec, tmr, uart, websocket, wifi.

    Сама прошивка:
    - integer: https://nodemcu-build.com/builds/nodemcu-master-19-modules-2019-04-22-02-27-08-integer.bin
     
  14. ZAZ-965

    ZAZ-965 Гуру

    @Ferdinand, посмотрите в "Раздел WLAN" на вашем роутере - не включена ли опция Изоляции WiFi клиентов.
     
    ИгорьК нравится это.
  15. Ferdinand

    Ferdinand Нерд

    ОГРОМНОЕ СПАСИБО!
    Заработало! В жизни бы, не сообразил) :eek:

    123.jpg
     
    ИгорьК нравится это.
  16. ИгорьК

    ИгорьК Гуру

    Аналогично!
     
  17. ИгорьК

    ИгорьК Гуру

    Вот правильный код сервера:
    Код (Lua):

    srv = net.createServer(net.TCP)
    srv:listen(80,function(conn)
        conn:on("receive",function(sck, data)
            local count = 0
            for _ in pairs(debug.getregistry()) do  count = count + 1 end
            print(data)
            sck:send("<h1> Hello, NodeMCU!!! HEAP:"..node.heap().." Reg: "..count.." </h1>")
       end)
        conn:on("sent",function(sck)
            sck:close()
       end)
    end)
    Разборка на эту тему еще предстоит. Надо подчищать свои (мои) ошибки.
     
    Последнее редактирование: 22 апр 2019
  18. Ferdinand

    Ferdinand Нерд

    СПАСИБО! :)
     
  19. ИгорьК

    ИгорьК Гуру

    ИМХО, самая бесполезная вещь в хозяйстве.
    У меня нет ни одного устройства с сервером, поэтому в нем есть ошибки, к сожалению.
     
  20. ИгорьК

    ИгорьК Гуру

    Абсолютно Верно!
    Но нужно время, чтобы это осознать и инструментарий чтобы почувствовать. :)
     
    Последнее редактирование: 22 апр 2019