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

发布于 2020-02-08 18:32:37
制作一个基于 RTT-MicroPython 制作自带BGM的新型肺炎晴雨表
硬件准备
基于 “All in one ”的思想,采用 “麻雀1号开发板”,板载 wifi 、 LCD 屏、小喇叭、麦克风、摄像头等众多功能于一体,是 DIY 的首选利器。在本次的 DIY 中主要基于 RTT-MicroPython来实现,需要参考前面的一篇文章来烧录固件和同步工程,参考链接:https://fastadmin.rt-thread.org/ask/question/423393.html关于示例代码的使用需要参考该链接的文章进行操作。软件准备
接口调用说明
关于数据的更新主要使用全国新型肺炎疫情的实时数据接口:https://lab.isaaclin.cn/nCoV/数据接口.png具体的接口使用可自行查看更详细的说明,这里只使用到查询广东省的数据。查询广东省的数据接口.png根据上述说明:通过浏览器访问 https://lab.isaaclin.cn/nCoV/api/area?latest=1&province=%E5%B9%BF%E4%B8%9C%E7%9C%81可以获得关于广东省的数据,如下:网页返回的数据结果.png确认数据接口没有问题后就可在"麻雀1号开发板"上动手了。注意:这里必须要严格按照参考链接中的文章操作,烧录对应的固件和同步项目工程。示例代码
可以在同步的项目工程中添加一个 py 文件,如命名为"comeon_wuhan.py",复制下面的示例代码,再运行该文件即可。import userfunc
import utime as time
import rtthread
import json
from machine import LCD # Import the LCD class from machine
from player import player
try:
import urequests as requests
except ImportError:
import requests
def func():
lcd = LCD() # Create a LCD object
#lcd.fill(lcd.WHITE)
url = 'https://lab.isaaclin.cn/nCoV/api/area?latest=1&province=%E5%B9%BF%E4%B8%9C%E7%9C%81'
resp_body = requests.get(url)
#print(resp_body.text)
resjson = json.loads(resp_body.text)
#print(resjson)
res = str(resjson['results'][0]['provinceName']+':'+'confirmedCount:'+str(resjson['results'][0]['confirmedCount'])+' curedCount:'+str(resjson['results'][0]['curedCount'])+' deadCount:'+str(resjson['results'][0]['deadCount']))
print(res)
data = "广东省"
data1 = "累计确诊:"+str(resjson['results'][0]['confirmedCount'])
data2 = "治愈人数:"+str(resjson['results'][0]['curedCount'])
data3 = "死亡人数:"+str(resjson['results'][0]['deadCount'])
c_data_list = ["深圳","广州","珠海","佛山","东莞","中山","惠州","汕头","湛江","肇庆","江门","阳江","梅州","清远","揭阳","韶关","茂名","汕尾","潮州","河源"]
for i in range(20):
c_data = c_data_list

    c_data1 = "累计确诊:"+str(resjson['results'][0]['cities']
      ['confirmedCount'])
      c_data2 = "治愈人数:"+str(resjson['results'][0]['cities']
        ['curedCount'])
        c_data3 = "死亡人数:"+str(resjson['results'][0]['cities']
          ['deadCount'])
          lcd.fill(lcd.BLACK)
          userfunc.show_chinese(40,20,'武汉加油,中国加油!',0xFFE0,0x0000)
          userfunc.show_chinese(20,50,data,0xFFFF,0x0000)
          userfunc.show_chinese(0,70,data1,0xF800,0x0000)
          userfunc.show_chinese(0,90,data2,0x07E0,0x0000)
          userfunc.show_chinese(0,110,data3,0X8430,0x0000)
          userfunc.show_chinese(20,130,c_data,0xFFFF,0x0000)
          userfunc.show_chinese(0,150,c_data1,0xF800,0x0000)
          userfunc.show_chinese(0,170,c_data2,0x07E0,0x0000)
          userfunc.show_chinese(0,190,c_data3,0X8430,0x0000)
          time.sleep(3)
          resp_body.close()

          def main():
          print("Welcome to RT-Thread MicroPython!")
          for i in range(30):
          play = player()
          play.opensong("http://music.163.com/song/media/outer/url?id=1418684451.mp3") #播放武汉加油的歌曲
          play.play()
          func()
          time.sleep(10)

          if __name__ == '__main__':
          #注意这里需要替换为自己的手机热点的名称和密码
          rtthread.wifi_join("w0","test","12345678")
          #使用适当的延时,等待 WIFI 连接成功
          time.sleep(5)
          main()效果演示:伴随着“武汉加油”的 bgm 响起,LCD 屏就会循环刷新数据,相信不少的小伙伴,在自我居家隔离的时候,一个人挺无聊的,听听音乐,看看实时数据一起为“武汉加油”,希望早点恢复往日的平静。武汉加油.png

          下载附件[comeon_wuhan.py]

          查看更多

关注者
0
被浏览
936
3 个回答
aozima
aozima 2020-02-08
拒绝白嫖,拒绝键盘侠!
武汉加油,中国加油!
我夏了夏天
我夏了夏天 认证专家 2020-02-08
厉害了厉害了~

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览