經(jīng)過兩天的調(diào)試潘飘,下面代碼已經(jīng)可以通過知心天氣網(wǎng)站獲取數(shù)據(jù)肮之。
然后通過字符串操作函數(shù)截取天氣信息,串口輸出卜录,當(dāng)然下一步可以輸出到oled上戈擒。辛苦兩天,終于有所收獲艰毒。網(wǎng)上搜了一堆教程筐高,大多是ESP8266刷的anduino的系統(tǒng)。
我這是直接刷的nodemcu。用lua編輯上傳執(zhí)行柑土。
wifi.setmode(wifi.STATIONAP)--工作在ap+客服端蜀肘,下一步可以通過手機設(shè)置密碼賬號
cfg={}
cfg.ssid="SLF"
-- cfg.pwd="mypassword"
wifi.ap.config(cfg)
station_cfg={}
station_cfg.ssid="NETGEAR2.4" --這里是你的wifi名字
station_cfg.pwd="nidemima" --這里是你的wifi密碼
wifi.sta.config(station_cfg)
tmr.alarm(1, 1000, tmr.ALARM_AUTO,
--延時函數(shù)等待wifi連接
function()
if wifi.sta.getip()== nil then
print("not connected, Waiting...")
--未連接顯示等待
else
tmr.stop(1)
print("Config done, IP is "..wifi.sta.getip())
conn=net.createConnection(net.TCP, 0)
--建立一個連接connection
end
end
)
do
print("\n Current SoftAP configuration:")
for k,v in pairs(wifi.ap.getconfig(true)) do
print(" "..k.." :",v)
end
end --打印AP信息
led1 = 4
stat=1
temp=""
city=""
wea=""
lasttime =""
host = "api.thinkpage.cn" --天氣網(wǎng)站
gpio.mode(led1, gpio.OUTPUT)
tmr.alarm(2, 1500, tmr.ALARM_AUTO,function()
if stat==1 then
gpio.write(led1, gpio.LOW);
stat=0
elseif stat==0 then
gpio.write(led1, gpio.HIGH);
stat=1
end
end
)--設(shè)置led1=D4 1.5秒循環(huán)閃爍
tmr.alarm(3, 10000, tmr.ALARM_AUTO,function() --每10秒到網(wǎng)站獲取數(shù)據(jù)
conn=net.createConnection(net.TCP, 0)
conn:connect(80,"api.thinkpage.cn")
conn:on("receive", function(conn, payload)
print(payload)
--conn:send("GET /v3/weather/now.json?key=24qbvr1mjsnukavo&location=xian&language=en")
--print(payload)
if payload~=nil then
i=string.find(payload,"name")
j=string.find(payload,"country")
end
--print(i,j)
print("CITY:"..string.sub(payload,i+7,j-4).."\r\n")--輸出城市信息
print("WEATHER:"..string.sub(payload,string.find(payload,"text")+7,string.find(payload,"code")-4).."\r\n")--輸出當(dāng)前天氣
print("TEMP:"..string.sub(payload,string.find(payload,"temperature")+14,string.find(payload,"last_update")-5).."\r\n")--輸出當(dāng)前溫度
end )
conn:on("connection", function(conn, payload)
--sss="GET /v3/weather/now.json?key=24qbvr1mjsnukavo&location=xian&language=en".."HTTP/1.1\r\n".."Host: ".."api.thinkpage.cn".. "\r\n".."Connection: close\r\n\r\n"
conn:send("GET /v3/weather/now.json?key=lkvdhpaemyl8vgme&location=xian&language=en".." HTTP/1.1\r\n".."Host: ".."api.thinkpage.cn".. "\r\n".."Connection: close\r\n\r\n")
--print(payload)
end
)
end)