高德气象数据显示
实验环境:PT8.2
实验目标:通过实验了解基于PT8.2实现高德气象数据显示方法,了解http协议
实验拓扑:
实验过程:
-
高德地图账号注册、认证和key获取
(1)高德地图账号注册https://lbs.amap.com
(2)认证
如上图1、2、3步完成账号认证(支付宝认证快捷)
(3)key创建
-
设备连接
如图完成设备连接
-
程序设计
在sbc或者mcu中的程序设计如下
main.py
from realhttp import *
from time import *
from json import *
from gpio import *
url = "https://restapi.amap.com/v3/weather/weatherInfo?city=630000&key=你的key"
def onHTTPDone(status, data):
print("status: " + str(status))
print("data: " + data)
city=loads(data) #城市信息
city=city["lives"][0]['city']
customWrite(4,city)
humidity=loads(data)
humidity=humidity["lives"][0]['humidity_float'] #湿度信息
customWrite(2,humidity)
temp=loads(data)
temp=temp["lives"][0]['temperature'] #温度信息
customWrite(0,temp)
wind=loads(data)
wind=wind["lives"][0]['winddirection'] #风向
customWrite(3,wind)
if int(temp)>=25:
analogWrite(1,1023)
else:
analogWrite(1,0)
def main():
http = RealHTTPClient()
http.onDone(onHTTPDone)
# don't let it finish
while True:
http.get(url)
sleep(1)
if __name__ == "__main__":
main()
4.测试
运行程序得到青海省的问题。
可以尝试西宁市城中区:630103
玉树州:632700
若出现如下信息:
IndexError: list index out of range in file main.py on line 13
说明你添加的城市在高德没有气象数据。
拓展:循环显示地区重点城市的气象数据。
城市代码:进入查看
2023年6月23日
参考文档:陈水生老师《Packet Tracer 网络实验实训指南之物联网案例实训》