【智控万物】疫情播报器

2021-01-196811
AI 快速预览详细 收起
本文介绍了如何使用掌控板制作疫情播报器。项目利用网络模块从互联网获取实时疫情数据,并通过语音合成模块进行播报。硬件连接包括掌控宝集成供电、人体红外运动传感器和实时时钟模块。为了处理大量字符数据,作者使用了PHP抓取并处理疫情数据,解决了字符处理问题。最终实现了整点播报功能,并增加了屏幕显示。这个项目不仅有助于STEM教育和编程启蒙,还能帮助孩子了解疫情信息并提升编程技能。
【项目背景】
【智控万物】疫情播报器图28

身在河北,每天都在关心河北的疫情,去年用树莓派制作过一个疫情播报器,体积有些大。今年用掌控板制作一个。
【项目设计】
掌控板用掌控宝集成供电,引脚使用方便。Mind+中扩展中有网络模块“http”,可用来从互联网获取实时疫情数据。人体红外运动传感器触发,语音合成模块播报。利用实时时钟模块,实现整点播报。
【硬件连接】
【智控万物】疫情播报器图24

【成品照片】

【智控万物】疫情播报器图25
【功能演示】

【疫情数据】

从网络寻找合适的疫情实时数据,利于抓取。
查看https://voice.baidu.com/act/newp ... -%E6%B2%B3%E5%8C%97网页源码。(%E6%B2%B3%E5%8C%97-%E6%B2%B3%E5%8C%97    为“河北-河北”的url编码。)
【智控万物】疫情播报器图3

源码中的“中文”使用“unicode”编码
【智控万物】疫情播报器图1

使用在线unicode转中文工具
【智控万物】疫情播报器图2



在源码中查找“河北”(\u6cb3\u5317)
【智控万物】疫情播报器图4

查找“"area":"\u6cb3\u5317"”更能准备定位。
掌控板读取内容
【智控万物】疫情播报器图5

出现问题,应该是处理不了这么多字符
【智控万物】疫情播报器图6


241KB字节数据量
【智控万物】疫情播报器图7

【智控万物】疫情播报器图8

【分析问题】
1、从上面网站获取的源代码乱,换一个网站。https://interface.sina.cn/news/w ... 1094932140955446096
可直接得到如下数据:
【智控万物】疫情播报器图9

且只有一个“hebei”字符串,有利于截取相关内容。
【智控万物】疫情播报器图10

将这一区域的字符串,放入在线json工具中去分析,得到如下数据:
【智控万物】疫情播报器图11

但这些内容对于掌控板来说还是有些多,处理不了。下面要借助PHP的抓取信息的能力,要使用PHP需要有网络服务器,各种云服务器都是收费,对于我这个小应用来说,性价比不值。找到一个免费的,稳定性还可以。https://freewha.com/
注册时注意,免费子域的选择,有的无法访问。我选择的是
【智控万物】疫情播报器图12

注册完成后,登陆。
【智控万物】疫情播报器图13

开启PHP服务
【智控万物】疫情播报器图14

上传文件有两种方式:
一种是通过网页上传。
【智控万物】疫情播报器图15

第二种是通过FTP工具,我采用第二种。FileZilla。
【智控万物】疫情播报器图17


【智控万物】疫情播报器图16


根据之前的数据分析,index.php抓取代码如下:


  1. <?php
  2. //定义url
  3. $url='https://interface.sina.cn/news/wap/fymap2020_data.d.json?1581410367084&&callback=sinajp_15814103671094932140955446096';
  4. //file_get_contents函数远程读取数据
  5. $lines_string=file_get_contents($url);
  6. //输出内容
  7. $content=htmlspecialchars($lines_string);
复制代码
【Mind+编程】因涉及字符替换(http获取的字符“引号”变为“"”),需要转义。获取的字符串简单处理后,形成Json格式,需要进行相应后续处理。所以我修改了之前为使用阿里云物联编写的一个Json库,可以处理简单的Json字符串,获取相应数据。
具体操作,请见DF扩展用户库:https://mindplus.dfrobot.com.cn/extensions-user
提供库源码,在下面附件中:
下载附件yuntian365-json-master.zip

【智控万物】疫情播报器图18


实验一:获取今日“累计确诊”,串口输出
【智控万物】疫情播报器图19

同时显示了获取的原数据,处理之后的数据。显示“累计确诊”——1192
【智控万物】疫情播报器图20

比对——正确
【智控万物】疫情播报器图21

语音播报,一个小时更新一次数据。人体红外运动感应,引脚中断触发,语音合成播报。
【智控万物】疫情播报器图22

增加整点播报功能
【智控万物】疫情播报器图23

增加屏幕显示:
【智控万物】疫情播报器图26

【程序源码】
【演示视频】



创作许可协议

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

评论(2)
rzegkly
rzegkly
好用
hnyzcj
hnyzcj
终于找到用处了,哈哈哈哈
- 没有更多了 -