3208| 2
|
【智控万物】疫情播报器 |
【项目背景】 身在河北,每天都在关心河北的疫情,去年用树莓派制作过一个疫情播报器,体积有些大。今年用掌控板制作一个。 【项目设计】 掌控板用掌控宝集成供电,引脚使用方便。Mind+中扩展中有网络模块“http”,可用来从互联网获取实时疫情数据。人体红外运动传感器触发,语音合成模块播报。利用实时时钟模块,实现整点播报。 【硬件连接】 【成品照片】 【功能演示】 【疫情数据】 从网络寻找合适的疫情实时数据,利于抓取。 查看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编码。) 源码中的“中文”使用“unicode”编码 使用在线unicode转中文工具 在源码中查找“河北”(\u6cb3\u5317) 查找“"area":"\u6cb3\u5317"”更能准备定位。 掌控板读取内容 出现问题,应该是处理不了这么多字符 241KB字节数据量 【分析问题】 1、从上面网站获取的源代码乱,换一个网站。https://interface.sina.cn/news/w ... 1094932140955446096 可直接得到如下数据: 且只有一个“hebei”字符串,有利于截取相关内容。 将这一区域的字符串,放入在线json工具中去分析,得到如下数据: 但这些内容对于掌控板来说还是有些多,处理不了。下面要借助PHP的抓取信息的能力,要使用PHP需要有网络服务器,各种云服务器都是收费,对于我这个小应用来说,性价比不值。找到一个免费的,稳定性还可以。https://freewha.com/。 注册时注意,免费子域的选择,有的无法访问。我选择的是 注册完成后,登陆。 开启PHP服务 上传文件有两种方式: 一种是通过网页上传。 第二种是通过FTP工具,我采用第二种。FileZilla。 根据之前的数据分析,index.php抓取代码如下: 【Mind+编程】因涉及字符替换(http获取的字符“引号”变为“"”),需要转义。获取的字符串简单处理后,形成Json格式,需要进行相应后续处理。所以我修改了之前为使用阿里云物联编写的一个Json库,可以处理简单的Json字符串,获取相应数据。具体操作,请见DF扩展用户库:https://mindplus.dfrobot.com.cn/extensions-user 提供库源码,在下面附件中: yuntian365-json-master.zip 实验一:获取今日“累计确诊”,串口输出 同时显示了获取的原数据,处理之后的数据。显示“累计确诊”——1192 比对——正确 语音播报,一个小时更新一次数据。人体红外运动感应,引脚中断触发,语音合成播报。 增加整点播报功能 增加屏幕显示: 【程序源码】 【演示视频】 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed