行空板之上海确诊小区查询器

2022-04-121750
AI 快速预览详细 收起
本文介绍了如何使用行空板和Mind+软件制作一个上海确诊小区查询器。该项目的主要功能是通过爬取上海卫健委官网的数据,并实时显示在行空板屏幕上。首先需要注册百度AI开放平台账号,获取必要的API密钥。然后,通过编写Python代码,实现网页信息的爬取和存储。最后,利用语音识别技术,可以通过语音指令进行查询。整个项目不仅方便快捷,还能帮助用户及时了解疫情动态。

# 创意起源

我是一个普普通通的打工人,受疫情影响导致在在家办公,再此期间最关心无非就是病例的增加以及自身小区是否有阳性病例!!

因为每次在上海发布看大区确诊名单都要翻好久才能确认自己小区是否上榜,因此做了一款快捷方便查询器。
# 效果预览

# 行空板介绍以及Mind+使用

https://makelog.dfrobot.com.cn/article-311576.html

大家可以先看看这篇帖子,大致了解什么是行空板,以及使用行空板的主要软件。然后再具体学习以下内容。


# 功能介绍

此项目主要功能是查询上海卫健委官网确诊新冠数据,实时显示屏幕上面。

# 注册账号


## 具体步骤如下:

1、登录百度AI开放平台,[https://ai.baidu.com],点击页面右上角“控制台”,然后**注册**或者**登录**自己的百度账号。

project-image
project-image
project-image
project-image

**从上面可以看到我们应用(APP_ID,API_KEY ,SECRET_KEY)等信息,这个要留着我们后面会用到。 **


# 爬取内容

**一定要先让板子连接WIFI,不然爬取不了网上内容的**

## 爬取网页信息存储到txt文本中

代码
from urllib import request
from urllib import parse
import re
def get_url(word,url):
  url = url

  #此处使用urlencode()进行编码
  params = parse.urlencode({'wd':word})

  url = url.format(params)
  return url

def request_url(url,filename):
  headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0'}
  # 请求对象 + 响应对象 + 提取内容
  req = request.Request(url=url,headers=headers)
  res = request.urlopen(req)
  html = res.read().decode('utf-8')
  # 保存文件至本地
  with open(filename,'w+',encoding='utf-8') as f:
    f.write(html)

while True:

    word = "上海多日数据"
    url = get_url(word1,'https://wsjkw.sh.gov.cn/xwfb/index.html')
    #print(url)
    filename1 = word + '.txt'
    request_url(url,filename1)

    f1 = open(filename1,"r",encoding='utf-8')#设置文件对象
    data = f1.read()  # 读取信息
    # print(data)

    parrern = re.compile('<a href="(https://mp.weixin.qq.com/s/.+)" title="') # 用正则匹配所需要的信息
    str2 = re.findall(parrern, data)  # 查找所有符合条件的信息
    # print(str2)
    f2 = open("各区确诊信息.txt", "w+", encoding="utf-8")  # 打开并写入信息
    # print(";".join(str2).replace(";", "\n"))
    f2.write(";".join(str2).replace(";", "\n") + "\n")  # 先转为非数组类型,再用分行输出

    f2.close()  # 有开就有关
    f1.close()  # 有开就有关

结果如下

project-image

语音识别

部分代码

下面代码中APP_ID、API_KEY、SECRET_KEY填写自己注册即可

代码
from unihiker import GUI,Audio  #导入包
from aip import AipSpeech

gui=GUI()  #实例化GUI类
audio = Audio() # 实例化Audio类

APP_ID = '*****'
API_KEY = ''*****'
SECRET_KEY = ''*****'

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()

def voiceToText():
    res = client.asr(get_file_content('3s.wav'), 'wav', 16000, {
            'dev_pid': 1537,
        })
    #print(res)
    return res.get('result')[0][:-1]

def Record():
    print("开始进行录音(5秒时间)")
    audio.record('3s.wav', 5)

def Recognition():
    print("开始进行语音识别")
    msg = voiceToText()

    #print(msg)
    return msg
gui.draw_text(x=120, y=150, text='录音(A键)',origin='bottom' ,onclick=lambda: Record())

gui.draw_text(x=120, y=240, text='识别(B键)',origin='bottom' ,onclick=lambda: Recognition())    
while True:
    if  gui.wait_a_click()==None:

        Record() 

    if  gui.wait_b_click()==None:

        data = Recognition()

        print(data)

结果如下

project-image

效果展示

电脑远程桌面

1、利用电脑自带的远程桌面连接行空板,操作如下:

project-image

2、输出行空板地址,默认地址:10.1.2.3

project-image

3、连接成功显示,行空板主页面

project-image

界面显示

project-image

查询演示

project-image

全部代码见附件

总结

目前只是做了最基础的效果,后续要丰富功能。还要对外观进行美观,加个外壳看起来美观。大家对这个功能页面有什么更好的建议提出来,进行改进。

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(0)
- 没有更多了 -