如何在 NodeMCU 重置后自动开始运行 Lua 程序

我想要在 NodeMCU 存储器上保存一个 Lua 程序。当 NodeMCU 在重置后启动完成并且准备好接收命令时,该脚本应自动开始执行,无需将 NodeMCU 附加到任何外部计算机(通过 ESPlorer 等)。我仍然可以通过 ESPlorer 终止执行。非常感谢您提供一个可行的示例。

点赞
用户131929
用户131929

init.lua 是你的好朋友。在https://nodemcu.readthedocs.io/en/latest/en/upload/#initlua可以看到完整的文档。

-- 加载凭证,“SSID”和“PASSWORD”在其中声明和初始化
dofile(“credentials.lua”)

function startup()
    if file.open(“init.lua”)== nil then
        print(“init.lua已删除或重命名”)
    else
        print(“运行”)
        file.close(“init.lua”)
        --实际应用程序存储在'application.lua'中
        --dofile(“application.lua”)
    end
end

print(“连接到WiFi接入点...”)
wifi.setmode(wifi.STATION)
wifi.sta.config(SSID,PASSWORD)
-- 不必wifi.sta.connect(),因为config()默认使用auto-connect = true
tmr.alarm(1,1000,1,function()
    if wifi.sta.getip()== nil then
        print(“等待IP地址...”)
    else
        tmr.stop(1)
        print(“WiFi连接已建立,IP地址:” .. wifi.sta.getip())
        print(“你有3秒钟来取消”)
        print(“等待...”)
        tmr.alarm(0,3000,0,startup)
    end
end)

更新

wifi.sta.config的当前语法如下:

station_cfg = {}
station_cfg.ssid = SSID
station_cfg.pwd = PASSWORD
wifi.sta.config(station_cfg)
2016-08-20 20:27:39