Помогите.

Тема в разделе "ESP8266, ESP32", создана пользователем Airat777, 2 фев 2023.

  1. Airat777

    Airat777 Нерд

    Привет всем! Учусь луа. Учусь и здесь, и по видео урокам. Хотел создать сервер. Прилагаю код, сразу скажу что он не мой. Получается есп печатает ip, светодиод тухнет, но по адресу ip нельзя подключиться. Понаставил везде print, и почему переменная t не сравнивается с while, и дальше не идет. Что может быть?
    Код (Text):
    pin = 4 — Регистрация в сети
    gpio.mode(pin, gpio.OUTPUT)
    —WiFi Settup
    wifi.setmode(wifi.STATION)
    local cfg={}
    cfg.ssid=»*****»
    cfg.pwd=»*****»
    collectgarbage()
    wifi.sta.config(cfg)
    — Подключаемся к роутеру
    wifi.sta.autoconnect(1)

    cfg = nil

    blinktime = 1000
    mytimer = tmr.create()
    mytimer:register(blinktime, tmr.ALARM_AUTO, function()
    ip = wifi.sta.getip()
    if ip == nil then
    print(«*»)
    t = 0
    gpio.write(pin, gpio.LOW)
    else
    ip = wifi.sta.getip()
    print(ip)
    gpio.write(pin, gpio.HIGH)
    t = 1
    end
    end)
    mytimer:start()

    while t == 1 do
    srv=net.createServer(net.TCP)
    print(«Start Web»)

    srv:listen(80, function(conn)
    conn:on(«receive»,function(conn,payload)
    print(payload)
    conn:send(‘HTTP/1.1 200 OK\r\nConnection: keep-alive\r\nCache-Control: private, no-store\r\n\r\n \
    <!DOCTYPE HTML> <html><head> <center><h1> Hello Word</h1></center> </html>/<head>’)
    conn:on(«sent»,function(conn) conn:close() end)
    end)
    end)
    end
     
  2. serg3295

    serg3295 Гик

    Ну, что тут можно сказать...
    Не всё у нас ещё хорошо, кое-что просто замечательно!
    У меня несколько вопросов есть.
    1. Какими видеоуроками вы пользуетесь при обучении. Мне правда интересно, дайте ссылку пожалуйста. Я бы посмотрел.
    2. Чем закончилась ваша работа с кодом ESP от батарейки. Удалось запустить?
    3. Что курил автор того текста, который вы привели здесь под видом программы?

    Вот вам рабочий код, но вряд ли что-то кардинально изменится. :(
    Код (C++):
    pin = 4

    blinktime = 1000
    mytimer = tmr.create()
    mytimer:register(blinktime, tmr.ALARM_AUTO, function()
      ip = wifi.sta.getip()
      if ip == nil then
        print('*')
        t = 0
        gpio.write(pin, gpio.LOW)
      else
        ip = wifi.sta.getip()
        print(ip)
        gpio.write(pin, gpio.HIGH)
        t = 1
          srv=net.createServer(net.TCP)
        print('Start Web')

        srv:listen(80, function(conn)
          conn:on('receive',function(conn,payload)
            print(payload)
            conn:send('HTTP/1.1 200 OK\r\nConnection: keep-alive\r\nCache-Control: private, no-store\r\n\r\n <!DOCTYPE HTML> <html><head> <center><h1> Hello Word</h1></center></head> </html>')
            conn:on('sent',function(conn) conn:close() end)
          end)
      end)
      mytimer:stop()
      end
    end)
    mytimer:start()
     
     
  3. Airat777

    Airat777 Нерд

    https://texnohelp.com/lua-1/ отсюда уроки, но по луа еще тока начинает. Ну автор чуть спешил может. В конце он говорил, что надо переделать. Esp от батарейки максимум два месяца, и то в тепле лежало. Как и говорил друг Иерусалимского Игорь. Код там я переделывал, работало, потом интерес пропал. Надо чтоб вайфай ловил, на морозе нельзя. @serg3295 А вот по коду автора видео, у него же работало. Почему переменная t в цикле while не проверяется на равность 1?
     
  4. serg3295

    serg3295 Гик

    Спасибо за ссылку на сайт.
    Будем надеяться, что автор в своем следующем видео объяснит почему у него работает этот пример. К сожалению, я не знаю что хотел сделать автор, и не могу оценить корректность реализации задуманного им алгоритма.
     
  5. ИгорьК

    ИгорьК Гуру

    С удовольствием поучусь.

    Иерусалимски читать вредно, надо высшее образование получать по видосикам и тому коду. Только недавно понял истину.
     
    Airbus нравится это.
  6. ostrov

    ostrov Гуру

    Что за язык такой?
     
  7. Airbus

    Airbus Радиохулиган Модератор

    LUA
     
  8. ostrov

    ostrov Гуру

    Спасибо, но пока нет. )