nodemcu esp8266 获取天气,截取天气信息,串口输出

经过两天的调试,下面代码已经可以通过知心天气网站获取数据。
然后通过字符串操作函数截取天气信息,串口输出,当然下一步可以输出到oled上。辛苦两天,终于有所收获。网上搜了一堆教程,大多是ESP8266刷的anduino的系统。
我这是直接刷的nodemcu。用lua编辑上传执行。

wifi.setmode(wifi.STATIONAP)--工作在ap+客服端,下一步可以通过手机设置密码账号
 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,
--延时函数等待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" --天气网站
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
)--设置led1=D4 1.5秒循环闪烁
tmr.alarm(3, 10000, tmr.ALARM_AUTO,function() --每10秒到网站获取数据
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")--输出当前天气
print("TEMP:"..string.sub(payload,string.find(payload,"temperature")+14,string.find(payload,"last_update")-5).."\r\n")--输出当前温度

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)

你可能感兴趣的:(nodemcu esp8266 获取天气,截取天气信息,串口输出)