基于RTT-MicroPython制作自带BGM的新型肺炎晴雨表

简要说明

基于 RTT-MicroPython 制作自带BGM的新型肺炎晴雨表,主要使用的板子是"麻雀1号开发板",通过“MicroPython”语言编程实现联网和循环查询全国新型肺炎疫情的实时数据,再把数据循环刷新显示到 LCD 屏上,并且循环播放“武汉加油”的背景音乐,达到 BGM 响起,LCD 动态刷新数据的效果,让我们一起为“武汉加油”

硬件准备

基于 “All in one ”的思想,采用 “麻雀1号开发板”,板载 wifi 、 LCD 屏小喇叭麦克风摄像头等众多功能于一体,是 DIY 的首选利器。

在本次的 DIY 中主要基于 RTT-MicroPython来实现,需要参考前面的一篇文章来烧录固件和同步工程,参考链接:https://www.rt-thread.org/qa/thread-423393-1-1.html 关于示例代码的使用需要参考该链接的文章进行操作。

软件准备

接口调用说明

关于数据的更新主要使用全国新型肺炎疫情的实时数据接口:

https://lab.isaaclin.cn/nCoV/(以上链接请复制至外部浏览器打开)

具体的接口使用可自行查看更详细的说明,这里只使用到查询广东省的数据。

根据上述说明:请通过外部浏览器访问 https://lab.isaaclin.cn/nCoV/api/area?latest=1&province=%E5%B9%BF%E4%B8%9C%E7%9C%81

可以获得关于广东省的数据,如下:

网页返回的数据结果

确认数据接口没有问题后就可在"麻雀1号开发板"上动手了。

特别说明一下该接口返回的疑似感染人数返回值一直为'0',为该接口的原因,避免大家入坑,这里重点说明一下,此时确认数据接口没有太大问题后就可在"麻雀1号开发板"上动手了。

注意:这里必须要严格按照参考链接中的文章操作,烧录对应的固件和同步项目工程。

示例代码

可以在同步的项目工程中添加一个 py 文件,如命名为"comeon_wuhan.py",复制下面的示例代码,再运行该文件即可。

 1import userfunc
 2import utime as time
 3import rtthread
 4import json
 5from machine import LCD     # Import the LCD class from machine
 6from player import player
 7try:
 8    import urequests as requests
 9except ImportError:
10    import requests
11def func():
12    lcd = LCD()                             # Create a LCD object
13    #lcd.fill(lcd.WHITE)
14    url = 'https://lab.isaaclin.cn/nCoV/api/area?latest=1&province=%E5%B9%BF%E4%B8%9C%E7%9C%81'
15    resp_body = requests.get(url)
16    #print(resp_body.text)
17    resjson = json.loads(resp_body.text)
18    #print(resjson)
19    res = str(resjson['results'][0]['provinceName']+':'+'confirmedCount:'+str(resjson['results'][0]['confirmedCount'])+' curedCount:'+str(resjson['results'][0]['curedCount'])+' deadCount:'+str(resjson['results'][0]['deadCount']))
20    print(res)
21    data = "广东省"
22    #data = str(resjson['results'][0]['provinceName'])
23    data1 = "累计确诊:"+str(resjson['results'][0]['confirmedCount'])
24    data2 = "治愈人数:"+str(resjson['results'][0]['curedCount'])
25    data3 = "死亡人数:"+str(resjson['results'][0]['deadCount'])
26    c_data_list = ["深圳","广州","珠海","佛山","东莞","中山","惠州","汕头","湛江","江门","肇庆","阳江","梅州","清远","揭阳","韶关","茂名","汕尾","潮州","河源"]
27    for i in range(20):
28        c_data = c_data_list[i]
29        c_data1 = "累计确诊:"+str(resjson['results'][0]['cities'][i]['confirmedCount'])
30        c_data2 = "治愈人数:"+str(resjson['results'][0]['cities'][i]['curedCount'])
31        c_data3 = "死亡人数:"+str(resjson['results'][0]['cities'][i]['deadCount'])
32        lcd.fill(lcd.BLACK)
33        userfunc.show_chinese(40,20,'武汉加油,中国加油!',0xFFE0,0x0000)
34        userfunc.show_chinese(20,50,data,0xFFFF,0x0000)
35        userfunc.show_chinese(0,70,data1,0xF800,0x0000)
36        userfunc.show_chinese(0,90,data2,0x07E0,0x0000)
37        userfunc.show_chinese(0,110,data3,0X8430,0x0000)
38        userfunc.show_chinese(20,130,c_data,0xFFFF,0x0000)
39        userfunc.show_chinese(0,150,c_data1,0xF800,0x0000)
40        userfunc.show_chinese(0,170,c_data2,0x07E0,0x0000)
41        userfunc.show_chinese(0,190,c_data3,0X8430,0x0000)
42        time.sleep(3)
43    resp_body.close()
44
45def main():
46    print("Welcome to RT-Thread MicroPython!")
47    while True:
48        play = player()
49        play.opensong("http://music.163.com/song/media/outer/url?id=1418684451.mp3") #播放武汉加油的歌曲
50        play.play()
51        time.sleep(1)
52        func()
53        time.sleep(10)
54
55if __name__ == '__main__':
56    #注意这里需要替换为自己的手机热点的名称和密码
57    rtthread.wifi_join("w0","test","12345678")
58    #使用适当的延时,等待 WIFI 连接成功
59    time.sleep(5)
60    main()
效果演示:

伴随着“武汉加油”的 bgm 响起,LCD 屏就会循环刷新数据,相信不少的小伙伴,在自我居家隔离的时候,一个人挺无聊的,听听音乐,看看实时数据一起为“武汉加油”,希望早点恢复往日的平静。

往期回顾

1.开源项目|RT-Thread 软件包应用作品:水墨屏桌面台历

2.一站式开发工具:RT-Thread Studio 正式发布

3.熊大:致社区小伙伴们的信

4.STM32 上使用 USB Host 读写 U 盘

5.智能家居 DIY 教程连载4——手把手教你连云

6.社区专访|王君杰:软件包制作经验及使用体验分享

7.“新冠”之下,如何安全返程?如何安全居家办公?

你可以添加微信17775982065为好友,注明:公司+姓名,拉进 RT-Thread 官方微信交流群!

RT-Thread


让物联网终端的开发变得简单、快速,芯片的价值得到最大化发挥。Apache2.0协议,可免费在商业产品中使用,不需要公布源码,无潜在商业风险。

长按二维码,关注我们

点击阅读原文,进入RT-Thread GitHub首页

你点的每个“在看”,我都认真当成了喜欢

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值