在网上找了很多资料,最终成功连上WIFI,网上很多教程在我这里无法测试通过,先将我测试成功的代码记录如下。
一下代码实现了以Station模式连上WIFI,并建立web服务器。
print('Setting up WIFI...')
wifi.setmode(wifi.STATION)
station_cfg={}
station_cfg.ssid="@PHICOMM_AD"
station_cfg.pwd="www.me.tl"
--这一步网上很多教程都没有.
wifi.sta.config(station_cfg)
print(wifi.sta.getip())
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
conn:on("receive",function(conn,payload)
print(payload)
conn:send("<h1> Hello, NodeMcu.</h1>")
end)
end)
这段代码稳定性不是很好,时好时不好,改进版代码如下。
print('Setting up WIFI...')
wifi.setmode(wifi.STATION)
station_cfg={}
station_cfg.ssid="@PHICOMM_AD"
station_cfg.pwd="www.me.tl"
--这一步网上很多教程都没有,经测试将导致错误
wifi.sta.config(station_cfg)
wifi.sta.connect()
-- 定义函数
function reconnect_wifi()
if wifi.sta.getip() == nil then
print('Waiting for IP ...')
else
print('IP is ' .. wifi.sta.getip())
tmr.stop(1) -- 连上了wifi就停止定时器1连接
end
end
tmr.alarm(1, 1000, tmr.ALARM_AUTO, reconnect_wifi) -- 打开定时器1,1000ms重连,自动重连,处理函数
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
conn:on("receive",function(conn,payload)
print(payload)
conn:send("<h1> Hello, NodeMcu.</h1>")
end)
end)
运行状况如下:
> Waiting for IP ...
Waiting for IP ...
Waiting for IP ...
IP is 192.168.2.102
GET / HTTP/1.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134
Accept-Language: zh-Hans-CN,zh-Hans;q=0.5
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Upgrade-Insecure-Requests: 1
Accept-Encoding: gzip, deflate
Host: 192.168.2.102
Connection: Keep-Alive