基于esp32 C3的micropython星座风格的桌面时钟制作保姆级教程(5)

这一节来说说怎么显示天气和星座图标。

首先说说天气部分,和各位大佬一样我用的也是心知天气,前期工作也是和其他大佬的一样,注册、登录、获取私钥,这里链接附上:心知天气 - 高精度气象数据 - 天气数据API接口 - 行业气象解决方案

然后是下载心知天气的天气现象图标,我数了一下,一共是40中天气,链接附上:天气现象代码说明 | 心知天气文档

然后是处理天气现象图标,把它们全部转化成dat文件。转化方法我在第(4)节已经说的很详细了,这里我直接把文件附上,大家拿来即用即可。

同理的还有十二星座的图标,我也一起放在压缩包里面。十二星座的图标还是我从一张图片里一张一张截图出来的,制作成的。

心知天气的api:"https://api.seniverse.com/v3/weather/now.json?key=你的私钥&location=ningbo&language=en&unit=c"

见链接:天气实况 · 心知科技

接下来写我们的获取天气函数:

import network,time,urequests,ujson

def tianqi():
    data = urequests.get("https://api.seniverse.com/v3/weather/now.json?key=你的私钥&location=你的城市&language=en&unit=c")
    weth=ujson.loads(data.text)
    print(weth)
    return weth["results"][0]["now"]["text"]

print('ye'+tianqi())

用request请求的方式获取该城市的天气信息。

weth["results"][0]["now"]["text"]就是现实天气现象。

显示天气现象的代码:

def show_img(m):
    with open("selwe_dat/"+str(m)+".dat", "rb") as f:
        for row in range(64):
            buffer = f.read(128)
            tft.show_img(160,row+30,224,row+30, buffer)

代码很好理解,不赘述,但是我们还要处理下,因为:

很显然,白天和晚上的表示方式是不一样的。我数了下,就是'Fair'、'Partly Cloudy'、'Mostly Cloudy'三种,白天和晚上有区别。

把代码完善下:

def tianqi_show(m):
    if str(tianqi())!='Fair' and str(tianqi())!='Partly Cloudy' and str(tianqi())!='Mostly Cloudy':
        show_img(str(tianqi()))       
    else:
        if m>=6 and m<=18:
            show_img(str(tianqi()))
        else:
            show_img('ye'+tianqi())

这里的大于6小于18,很好理解,代表白天嘛!

接下来是显示星座,很简单:

def star_img(m):
    with open("star_dat/star"+str(m)+".dat", "rb") as f:
        for row in range(64):
            buffer = f.read(128)
            tft.show_img(30,row+20,94,row+20, buffer)

当然星座要判断下:

if timeshow[4]<=21:
        if timeshow[3]>=4:
            star_img(timeshow[3]-3)
        else:
            star_img(timeshow[3]+9)
    
else: 
        if timeshow[3]>=4:
            star_img(timeshow[3]-2)
        else:
            star_img(timeshow[3]+10)

比如白羊座是第一个星座,3.21~4.21,如果是3月的白羊座,必然是21号以后。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大初哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值