gpt4 book ai didi

lua - 使用 Wifi 将 Lua 脚本上传到 NodeMCU

转载 作者:行者123 更新时间:2023-12-04 22:29:40 25 4
gpt4 key购买 nike

是否可以使用 Wifi 接口(interface)而不是串行将 Lua 脚本上传到 NodeMCU?

我发现的教程和示例都使用串行接口(interface),即电缆,对 NodeMCU 进行编程,但我想在不连接任何东西的情况下更改程序(使用智能手机或浏览器)

最佳答案

我通过wifi上传所有模块。我先上传一个bootstrap.lua以通常的方式(通过 USB)进行编程。然后可以使用该程序上传真实(更大)的有效载荷。这是 Bootstrap :

ip, mask, host = wifi.sta.getip()
port, path, pgm = 80, "/upload", "u.lc"
file.remove(pgm) ; file.open(pgm, "w+") payloadFound = false
local conn = net.createConnection(net.TCP, 0)
conn:on("connection", function(conn)
conn:send("GET "..path.."/"..pgm.." HTTP/1.0\r\n".."Host: "..host.."\r\nConnection: close\r\nAccept: */*\r\n\r\n") end)
conn:on("receive", function(conn, payload)
if (payloadFound) then file.write(payload) file.flush()
else payloadOffset = string.find(payload, "\r\n\r\n")
if (payloadOffset) then
file.write(string.sub(payload, payloadOffset + 4)) file.flush() payloadFound = true
end end end)
conn:on("disconnection", function(conn) file.close() dofile(pgm) end) conn:connect(port,host)

第一行使用网关服务器作为从中上传程序的 Web 服务器。
第二行设置要上传的程序的端口( 80 )、路径( /upload )和名称( u.lc )。
然后它获取文件并最终运行它(最后一行)。

在运行它之前你必须激活你的无线连接,当然你的网络服务器应该是激活的,你的有效载荷在 /upload/u.lc。 .

当然,您可以更改硬连线值,甚至使它们动态化。

标题##This 应该是你想要的一个简单的起点。

顺便说一句,压缩格式可以使初始上传速度更快,我使用 luatool.py 上传使用 --dofile选项。

稍后更新您的程序( u.lc )是 dofile("bootstrap.lua") 的简单重复。 .

我的 u.lc是一个第 2 阶段的 Bootstrap ,它上传一长串文件(主要是 .lc )。对于这个简短的答案,可能太投入了。

最后,我应该提一下,这是基于 https://github.com/Manawyrm/ESP8266-HTTP/ 的。

高温高压

关于lua - 使用 Wifi 将 Lua 脚本上传到 NodeMCU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34266340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com