LUA перебор WiFi сетей

Тема в разделе "ESP8266, ESP32", создана пользователем alpaleser, 27 мар 2019.

  1. alpaleser

    alpaleser Нуб

    Добрый день. Подскажите, как можно осуществить перебор WiFi сетей (например домашняя и рабочая), чтобы прописать 2 SSID и соответственно 2 пароля и если например через 5 попыток соединения рабочая сеть не подхватывается, пробовать домашнюю и так по циклу, пока не поймает сеть? Сети прописываю в модуле. Файл config.lua
    Код (C++):
    local module = {}
    station_cfg_work={}
    station_cfg_work.ssid="ASUS_2G" -- название сетки
    station_cfg_work.pwd="12345678"-- пароль сетки
    station_cfg_home={}
    station_cfg_home.ssid="ASUS" -- название сетки
    station_cfg_home.pwd="87654321"-- пароль сетки
    return module
     
    Файл setup.lua
    Код (C++):
    local module = {}

    local function wifi_wait_ip()

      if wifi.sta.getip()== nil then
        print("IP unavailable, Waiting...")
      else
        tmr.stop(1)

        local mode = wifi.getmode()
        local mac = wifi.ap.getmac()
        local ip = wifi.sta.getip()
       
        print("====================================")
        print("ESP8266 mode is: " .. mode)
        print("MAC address is: " .. mac)
        print("IP is "..ip)
        print("====================================")
       
        app.start()

      end
    end

    function module.start()
    print("Configuring Wifi ...")
    wifi.setmode(wifi.STATION) -- установка режима

    wifi.sta.clearconfig() -- очистка от барахла
    wifi.sta.config(station_cfg_work) -- конфигурируем сеть
    --wifi.sta.config(station_cfg_home) -- конфигурируем сеть
    wifi.sta.connect() -- старт соединения
    print("Connecting to " .. station_cfg_work.ssid .. " ...")
    tmr.alarm(1, 2500, tmr.ALARM_AUTO, wifi_wait_ip)
    end

    return module
     
    Последнее редактирование: 27 мар 2019
  2. ИгорьК

    ИгорьК Гуру

  3. alpaleser

    alpaleser Нуб