当前位置:  开发笔记 > 编程语言 > 正文

使用Wifi将Lua脚本上传到NodeMCU

如何解决《使用Wifi将Lua脚本上传到NodeMCU》经验,为你挑选了1个好方法。

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

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



1> Eyal..:

我通过wifi上传所有模块.我首先bootstrap.lua以通常的方式上传程序(通过USB).然后,该程序可用于上载实际(较大)有效载荷.这是引导程序:

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服务器.第二行设置要上载的程序的port(80),path(/upload)和name(u.lc).然后它获取文件并最终运行它(最后一行).

在运行此功能之前,您必须激活无线连接,并且您的Web服务器当然应该处于活动状态,并且您的有效负载位于/upload/u.lc.

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

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

顺便说一句,压缩格式是为了使初始上传速度快,我luatool.py使用该--dofile选项上传.

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

u.lc是一个阶段2引导程序,上传了一长串文件(主要是.lc).对于这个简短的回答可能也太过牵扯.

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

HTH

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有