445|0

9

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

【得捷电子Follow me第2期】任务4:分任务1:日历&时钟 [复制链接]

 

又是一周过去了,这个任务四的分任务一确实较前几个比较难,这几个晚自习一直在学习相关方面的知识。

发现实现天气的api调用还是比较麻烦的,看了大佬的示例,了解了可以用高德,心知天气的api,不过这些都要注册获取key,比较麻烦

我们可以用这个网站提供的免费api接口

https://www.sojson.com/api/weather.html

这其中又要我们来获取我们所在城市的城市代码

在这里给大家提供对应表

链接已隐藏,如需查看请登录或者注册
  提取码: u8sk 

我们get到返回到返回的json字符串后,还要进一步进行解析,前面加上各种名称,如空气质量等等,内容才能被正常阅读

这是下面的具体代码

#导入所需的库

import board
import os
import wifi
import ssl
import socketpool
import adafruit_requests
import displayio

from adafruit_display_text import label
from adafruit_bitmap_font import bitmap_font

display = board.DISPLAY

# 连接上Wi-Fi
wifi.radio.connect('你家Wi-Fi的ssid', '你家Wi-Fi的密码') 
 

# 请求获取JSON
JSON_TIME_URL = "http://t.weather.sojson.com/api/weather/city/101210101"    //最后的代码要查那个表来寻找你所在城市所对应的

pool = socketpool.SocketPool(wifi.radio)
requests = adafruit_requests.Session(pool, ssl.create_default_context())


# 解析get到的Json  
response = requests.get(JSON_TIME_URL)



weather = response.json()
cityInfo  = weather['cityInfo']
city_weather = weather['data']
forecast = city_weather['forecast']

#将解析好的数据与名称一一对应
dis_str = ""+cityInfo['parent']+' '+cityInfo['city']
dis_str += '\n' + weather['time'] 
dis_str += '\n 空气质量:'+city_weather['quality'] +" " +forecast[0]['type'] 
dis_str += "\n 最"+forecast[0]['high']+' 最'+forecast[0]['low']
dis_str += "\n 湿度: "+city_weather['shidu']+'\n pm2.5:'+str(city_weather['pm25']) +'\n pm10:'+str(city_weather['pm10'])
dis_str += '\n 提示:'+forecast[0]['notice'] 
 

#与任务一的代码基本没区别,用来显示文字
font = bitmap_font.load_font("/fonts/wenquanyi_9pt.pcf")

color = 0x9499CA
text_group = displayio.Group()
text_area = label.Label(font, text=dis_str, color=color)
text_area.x = 0
text_area.y = 10
text_area.line_spacing = 0.8
text_area.scale = 1


text_group.append(text_area)
display.show(text_group)
while True:
    pass

再多说一句,随着任务的递进,我们所要导入的库文件也越来越多,然而板子的内存实在是有限,2mb,之前的字体文件太大了,导致连库都拖不进去

只好重新换了一个字体,看来还是要自己搞字体啊,用大佬们做好的内存不容易控制住,顾此失彼了。下周再做任务总结和录视频吧😘😘😘

做作业先😔

点赞 关注
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表