经过两天的调试,下面代码已经可以通过知心天气网站获取数据。 然后通过字符串操作函数截取天气信息,串口输出,当然下一步可以输出到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) --建立一个连接connectionendend) do print("\n Current SoftAP configuration:") for k,v in pairs(wifi.ap.getconfig(true)) do print(" "..k.." :",v) endend --打印AP信息led1 = 4stat=1temp=""city=""wea=""lasttime =""host = "api.thinkpage.cn" --天气网站gpio.mode(led1, gpio.OUTPUT)tmr.alarm(2, 1500, tmr.ALARM_AUTO,function()if stat==1 thengpio.write(led1, gpio.LOW);stat=0elseif stat==0 thengpio.write(led1, gpio.HIGH);stat=1endend)--设置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 theni=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)