本帖最后由 xukangkkgg 于 2017-11-17 22:16 编辑
项目介绍
本项目是一个便携的物联网设备,它可以轻松的安装在你的办公室桌子上/家里的门旁/寝室的门旁,设备会显示你所在城市的天气实况,天气预报,出行建议等信息,同时它还可以同步你的云备忘录/云笔记等重要的提醒事项,这样你在出门前扫一眼它的屏幕,所有信息尽在掌握!
最终效果图
相关链接
更新
原理:利用fetchweather.py获取到今日实时天气后,将其转化为字符串,然后调用百度ttsAPI,该API返回了一个MP4文件,然后利用树莓派系统中的mplayer播放器播放出来。 树莓派需要安装mplayer2 .方法:sudo apt-get install mplayer2 (注意api中需要加入自己的token信息,所以有需要测试的请自己去申请百度tts的token然后填进去。)
项目方案
- 硬件:树莓派+lcd显示器
- 软件:天气获取方案:(1)访问和风天气api或知心天气api获取实时天气预报(2)使用网络爬虫获取中国天气网的实时数据
- 云笔记方案:leanote云笔记
- 语音播报方案:(1)谷歌tts(2)百度tts
制作过程
在确定软硬件方案后,首先要完成硬件平台的搭建,我选用了啃萝卜提供的树莓派3B并自己购买了一块3.5树莓派lcd显示器,搭配外壳使用,硬件平台的搭建工作就完成了。
图1
图2
图3
接下来为树莓派插入刷有最新系统内存卡,树莓派即可启动,最后进行了基本的设置,树莓派就可以使用了。
软件开发过程
首先要实现的功能是获取天气预报,备选方案有两个:
方案一:利用心知天气API接口获取天气预报信息,优点:数据以json格式传输,解析简单方便。缺点:需要提前设定预报城市,部分api接口收费。
方案二:利用网络爬虫直接从中国天气网抓取天气信息,优点:不需要手动设置预报城市,免费使用,预报信息丰富等。缺点:软件设计复杂,软件稳定性下降。
由于方案一获取的数据不够丰富且需要手动设定预报城市等缺点,我最终选择了方案二。
方案二获取天气详细过程:
首先打开中国天气网,我们可以看到该网站自动返回本地天气预报信息,切预报信息极其丰富。如图4,5,6
图4
图5
图6
利用python编写爬虫程序:天气代码和运行结果截图如图7,图8
图7
图8
其次是云笔记同步方案:
方案一,有道云笔记,优点:方案成熟,数据安全,缺点:仅针对企业客户。
方案二,leanote蚂蚁笔记,优点:开源,开放api接口,缺点:数据安全性稍差
最终我选择了方案二:获取云笔记程序及运行截图如图9,图10所示
图9
图10
蚂蚁笔记
蚂蚁笔记
最后是gui显示程序:gui框架有tkiner,wxGui,pygame等
pygame是一个python游戏开发库,它功能强大,维护简便。所以本项目选择pygame。
pygame
pygame程序及运行截图如图11,图12,图13
图11
图12
图13
视频展示
视频演示:视频地址
源码地址:代码地址
由于本项目代码超过1M无法上传,又实在是不熟悉使用github,导致上传到github上的代码没有层次结构,全在一级目录里,需要测试的朋友请把下载下来的文件重新组织。
注意!
测试时务必保证以下运行环境:
- python2.7
- beautifulsoup最新版,lxml最新版(树莓派安装lxml需要先安装ptyhon-dev等库,否则安装失败),pygame最新版,请确保以上库全部安装正确。
- fetchweather.py,fetchnote.py和main.py代码中使用了大量的绝对路径,运行代码之前请先修改路径并确保正确。
- 云笔记同步功能需要事先输入leanote蚂蚁的账号与密码,请在fetchnote.py中修改成自己的。
源码目录结构和截图 感谢: 感谢啃罗卜的大力支持!!! 树莓派3b及T恤!!! |