生活与工作提醒助手-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7474|回复: 6

[项目] 生活与工作提醒助手

[复制链接]
发表于 2017-10-12 23:42 | 显示全部楼层 |阅读模式
本帖最后由 xukangkkgg 于 2017-11-17 22:16 编辑

项目介绍   
本项目是一个便携的物联网设备,它可以轻松的安装在你的办公室桌子上/家里的门旁/寝室的门旁,设备会显示你所在城市的天气实况,天气预报,出行建议等信息,同时它还可以同步你的云备忘录/云笔记等重要的提醒事项,这样你在出门前扫一眼它的屏幕,所有信息尽在掌握!

最终效果图
IMG_0023(20171106-225236).jpg


相关链接

更新
2017/10/12新增语音播报天气功能:新增功能视频演示地址
原理:利用fetchweather.py获取到今日实时天气后,将其转化为字符串,然后调用百度ttsAPI,该API返回了一个MP4文件,然后利用树莓派系统中的mplayer播放器播放出来。
树莓派需要安装mplayer2 .方法:sudo apt-get install mplayer2
百度tts服务介绍链接:百度TTS
(注意api中需要加入自己的token信息,所以有需要测试的请自己去申请百度tts的token然后填进去。

项目方案
  • 硬件:树莓派+lcd显示器
  • 软件:天气获取方案:(1)访问和风天气api或知心天气api获取实时天气预报(2)使用网络爬虫获取中国天气网的实时数据
  • 云笔记方案:leanote云笔记
  • 语音播报方案:(1)谷歌tts(2)百度tts


制作过程

在确定软硬件方案后,首先要完成硬件平台的搭建,我选用了啃萝卜提供的树莓派3B并自己购买了一块3.5树莓派lcd显示器,搭配外壳使用,硬件平台的搭建工作就完成了。

IMG_4518.JPG
图1 IMG_4520.JPG
图2
IMG_4519.JPG
图3
接下来为树莓派插入刷有最新系统内存卡,树莓派即可启动,最后进行了基本的设置,树莓派就可以使用了。


软件开发过程
首先要实现的功能是获取天气预报,备选方案有两个:

方案一:利用心知天气API接口获取天气预报信息,优点:数据以json格式传输,解析简单方便。缺点:需要提前设定预报城市,部分api接口收费。
方案二:利用网络爬虫直接从中国天气网抓取天气信息,优点:不需要手动设置预报城市,免费使用,预报信息丰富等。缺点:软件设计复杂,软件稳定性下降。
由于方案一获取的数据不够丰富且需要手动设定预报城市等缺点,我最终选择了方案二。

方案二获取天气详细过程
首先打开中国天气网,我们可以看到该网站自动返回本地天气预报信息,切预报信息极其丰富。如图4,5,6
中国天气网截图.jpeg

图4

中国天气网截图2.jpeg

图5

中国天气网截图3.jpeg

图6



利用python编写爬虫程序:天气代码和运行结果截图如图7,图8
天气代码1.jpeg

图7

代码1运行结果截图.jpeg

图8


其次是云笔记同步方案:

方案一,有道云笔记,优点:方案成熟,数据安全,缺点:仅针对企业客户。
方案二,leanote蚂蚁笔记,优点:开源,开放api接口,缺点:数据安全性稍差
最终我选择了方案二:获取云笔记程序及运行截图如图9,图10所示

代码31.jpeg

图9

代码32.jpeg

图10


蚂蚁笔记1.jpeg

蚂蚁笔记

蚂蚁笔记2.jpeg

蚂蚁笔记


最后是gui显示程序:gui框架有tkiner,wxGui,pygame等
pygame是一个python游戏开发库,它功能强大,维护简便。所以本项目选择pygame。
logo_lofi.png

pygame

pygame程序及运行截图如图11,图12,图13


图11

代码3运行截图.jpeg

图12

运行截图2.jpeg

图13

视频展示

视频演示:视频地址

源码地址:代码地址
由于本项目代码超过1M无法上传,又实在是不熟悉使用github,导致上传到github上的代码没有层次结构,全在一级目录里,需要测试的朋友请把下载下来的文件重新组织。


注意!

测试时务必保证以下运行环境
  • python2.7
  • beautifulsoup最新版,lxml最新版(树莓派安装lxml需要先安装ptyhon-dev等库,否则安装失败),pygame最新版,请确保以上库全部安装正确。
  • fetchweather.py,fetchnote.py和main.py代码中使用了大量的绝对路径,运行代码之前请先修改路径并确保正确
  • 云笔记同步功能需要事先输入leanote蚂蚁的账号与密码,请在fetchnote.py中修改成自己的。
mulu.jpeg 项目目录结构’.jpeg
源码目录结构和截图
感谢:
感谢啃罗卜的大力支持!!!
树莓派3b及T恤!!!
未命名.png
代码32.jpeg
mulu.jpeg
发表于 2017-10-13 20:00 | 显示全部楼层
我也搞过和楼主类似的东西:https://github.com/XAS-712/iDeskView
发表于 2017-10-19 22:48 | 显示全部楼层
1.感谢对社区比赛的支持,开发者积分和贡献值已发放,请点击以下链接领取纪念衫并参与抽奖~http://www.arduino.cn/thread-48132-1-1.html
2.比赛结果会在11.15号前公布,请耐心等待。
 楼主| 发表于 2017-11-6 22:48 | 显示全部楼层
NoComment 发表于 2017-10-13 20:00
我也搞过和楼主类似的东西:https://github.com/XAS-712/iDeskView

对js一窍不通
发表于 2017-11-7 13:55 | 显示全部楼层
虽然看不懂 表示楼主666
 楼主| 发表于 2017-11-9 21:23 | 显示全部楼层
单片机菜鸟 发表于 2017-11-7 13:55
虽然看不懂 表示楼主666

过奖过奖  
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-9-20 22:42 , Processed in 0.085783 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表