Файл wifi.lua
Организация модульности проекта на lua позволяет выделить неизменные фрагменты кода в отдельный файл и использовать его на различных устройствах. Данный подход уменьшает вероятность допустить случайную ошибку по невнимательности.
Создадим новый файл и добавим туда следующий код:
print("NodeMCU (esp lua) - Wifi Script")
--Задаем режим клиента для wifi и подключаемся к сети
local cfg={}
cfg.ssid="ИМЯ СЕТИ"
cfg.pwd="ПАРОЛЬ"
wifi.setmode(wifi.STATION)
print("<WIFI> Подключение к точке доступа Wifi: \""..cfg.ssid.."\".")
wifi.sta.config(cfg)
print("<WIFI> IP\t\tMASK\t\t\tGATEWAY")
print(wifi.sta.getip())
На строках 1, 8, 10 и 11 осуществляется отладочная печать по этапам подключения.
На строках 4-6 задается информация о искомой сети (имя сети и пароль).
На строке 7 — wifi.setmode(wifi.STATION) — производит смену режима на «клиент» вайфай адаптера.
На строке 9 подключается конфиг заполненный ранее.
Из дополнительных функций можно использовать:
- wifi.sta.connect — используется для принудительного подключения если в конфигурации отключено автоподключение:
- cfg.auto=false,
- wifi.sta.autoconnect(0);
- wifi.sta.setip — устанавливает ip адрес устройства, маску и шлюз сети;
- wifi.sta.setmac — изменяет MAC адрес устройства.
Подробнее об использованных функциях можно прочесть в документации NodeMCU lua.
Файл init.lua
В прошлой заметке был приведен пример простого скрипта init.lua,который ожидал 10 секунд и загружал скрипт main.lua. Добавим загрузку скрипта wifi.lua перед пользовательским скриптом.
print("Wait. . .")
mytimer = tmr.create()
mytimer:register(10000, tmr.ALARM_SINGLE, function(t)
mytimer:unregister();
print("Starting. . .\n")
dofile("wifi.lua")
dofile("main.lua")
end)
mytimer:start()
Теперь перед запуском пользовательского скрипта main.lua NodeMCU будет подключаться к выбранной сети.