我有一个项目正在使用两个NodeMCU和LUA . 一个NodeMCU(服务器)托管一个简单的Web服务器,它响应特定的URL参数 . 例如,我转到:http://192.168.1.179/?pin=ON1在我的浏览器中,它的指示灯亮起等 . 我想通过按下按钮重新创建与其他NodeMCU(客户端)这样做 . 阻止我的唯一部分就是这个HTTP GET请求 .
对于初学者,我提供了最新的固件版本 . 我不打算 Build 最新的 - 最新的 . 2版本的差异...我已经提交了自定义版本 .
require('http')stdin:1:找不到模块'http':没有字段package.preload ['http']没有文件'http.lc'没有文件'http.lua'
显然还有其他更老的方法:
conn=net.createConnection(net.TCP, false)
conn:on("receive", function(conn, pl) print(pl) end)
conn:connect(80,"192.168.1.179")
conn:send("GET /?pin=ON1 HTTP/1.1\r\nConnection: keep-alive\r\nAccept: */*\r\n\r\n")
我一直在努力让它发挥作用 . DNS以完整路径失败 . 原样,它只为输出部分输出0 . 请注意,这是一个本地服务器,它的地址是直接指定的 . 我从路由器获得DHCP,我尝试了静态IP . 我很茫然,不知道还能做什么 . 这是完成这个项目的最后一步,所以它让我疯了!任何帮助,将不胜感激 . 我应该注意我丢失了服务器的脚本,所以我不能引用它 . 虽然它有效 . X_X”
2 回答
根据https://github.com/nodemcu/nodemcu-firmware#releases,你不能再下载最近的二进制文件了(就像> 2y那样) . 最简单的是转到https://nodemcu-build.com/并为您构建二进制文件 . 确保选择HTTP模块 .
但请注意,HTTP模块是HTTP客户端!
至于使用此HTTP模块进行简单的GET请求,我建议看一下https://nodemcu.readthedocs.io/en/latest/en/modules/http/#httpget:
这产生如下:
要构建服务器,您需要net模块和
net.createServer(net.TCP)
. 我们在https://nodemcu.readthedocs.io/en/latest/en/modules/net/#example_6有一些例子 .我建议虽然不构建自己的服务器,但使用https://github.com/marcoskirsch/nodemcu-httpserver/代替除了琐碎的项目之外的任何东西 .
使用Arduino ESP8266WiFi和ESP8266HTTPClient库,系统运行正常 . 我打算将此标记解决,因为我拒绝再处理LUA http选项了 .