本帖最后由 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秒访问一次就够了。
|