本帖最后由 gaoyang9992006 于 2018-8-9 22:37 编辑
找了半天没有找到显示屏,没法了,只能交个不合格的了。不过功能是可以实现的,目前只是通过串口发出来。
找了一天终于找到了合适的信息接口了,哈哈。
硬件:NodeMCU(ESP8266+NodeMCU:lua)+USB串口设备
这个就是esp8266烧录的嵌入式Lua解释器NodeMCU固件。
项目分为两个代码文件:init.lua 负责模块入网以及启动另外一个文件 tianqi.lua 这个实现跟服务器通信并get回json数据
由于设备简陋,串口线也没,找了个STM32的开发板,用上面的串口顶一下,非常好用,STM32的这个系列开发板就是好啊。哈哈,其实我可以通过32扩展一堆东西利用这个ESP8266的,不过我没传感器了,之前一个DIY用掉了。
蓝色灯闪烁代表已经连接网络并正式工作。
--init.lua
print("set up wifi mode")
wifi.setmode(wifi.STATION)
sta_cfg={}
sta_cfg.ssid="360WiFi-SJB"
sta_cfg.pwd="shejibu123"
wifi.sta.config(sta_cfg)
wifi.sta.connect()
print("IP unavaiable, Waiting...")
tmr.alarm(1, 1000, 1, function()
if wifi.sta.getip()~= nil then
tmr.stop(1)
print("Config done, IP is "..wifi.sta.getip())
dofile("tianqi.lua")
end
end)
这是第一个文件
————————————————————————————————————————————————————————————————————————————led1 = 4 --蓝色LED在GPIO4
stat=1
host = "api.avatardata.cn" --天气网站
gpio.mode(led1, gpio.OUTPUT)
tmr.alarm(2, 1000, 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 蓝色LED 1秒循环闪烁
tmr.alarm(3, 10000, tmr.ALARM_AUTO,function() --每10秒到网站获取数据
conn=net.createConnection(net.TCP, 0)
conn:connect(80,host)
conn:on("receive", function(conn, payload)
print(payload)
end )
conn:on("connection", function(conn, payload)
conn:send("GET /Constellation/Query?key=e7d7d7968de9414bb79421c6b6c504f6&consName=%E5%A4%A9%E8%9D%8E%E5%BA%A7&type=today".." HTTP/1.1\r\n".."Host: "..host.. "\r\n".."Connection: close\r\n\r\n")
end
)
end)
tmr.alarm(4, 50000, tmr.ALARM_AUTO,function() --每50秒到网站获取数据
conn=net.createConnection(net.TCP, 0)
conn:connect(80,host)
conn:on("receive", function(conn, payload)
print(payload)
end )
conn:on("connection", function(conn, payload)
conn:send("GET /Weather/Query?key=8f4048cb00d24692bd0fa6898ad811d9&cityname=%E5%95%86%E6%B0%B4".." HTTP/1.1\r\n".."Host: "..host.. "\r\n".."Connection: close\r\n\r\n")
end
)
end)
大家不要抄我的key啊,要不然我就没法玩了,可以自己去注册一个。
串口打印出来的数据,为了容易区分,我把两个频率设置的不同。另外一天只有1000次访问数据限制,因此可以算好,87秒访问一次刚好够用。其实这种数据你120秒访问一次就够了。
|