让树莓派播报实时天气
最近一段时间天气总是多变,经常需要查手机,于是希望树莓派能够实时播报天气,这样可以让家里的老人小孩了解到天气变化。因为原来有弄过一些功能,比如文字转语音、播放语音等,因此过程相对简单,具体如下
步骤一. 获取天气
提供天气预报的API还是挺多的,这里选择和风天气,有免费版,而且文档还比较完善,提供了实时天气、生活指数、未来3天预报等;使用步骤也比较简单,注册、激活、获取key;这里只用到了实时天气及生活指数
# 获取实时天气
whether=`curl -s 'https://free-api.heweather.com/v5/now?city=城市名&key=你的key'|jshon -e HeWeather5 -e 0 -e now`
cond=`echo $whether|jshon -e cond -e text`
# 获取温度
tmp=`echo $whether|jshon -e tmp`
# 获取舒适度指数
comf=`curl -s 'https://free-api.heweather.com/v5/suggestion?city=城市名&key=你的key'|jshon -e HeWeather5 -e 0 -e suggestion -e comf -e txt`
PS:城市名可以中文、拼音,jshon是json解析工具
步骤二. 拼接字符串
为了比较正式,我添加了日期,具体如下
week=`date +星期%w|sed 'y/1234567/一二三四五六天/'`
echo "今天是`date +%Y年%-m月%-d号`$week $cond $tmp摄氏度 $comf"
最终出来的结果是:今天是2017年4月7号星期五 晴 22摄氏度 白天有雨,从而使空气湿度加大,会使人们感觉有点儿闷热,但早晚的天气很凉爽、舒适。
步骤三. 文字转成语音
利用百度语音,将文字转成语音,并利用音频播放软件进行播放
/user/local/bin/pi whether fuzhou|/user/local/bin/pi say
PS: pi say 可以将文字转成语音并播放
步骤四. 定点播报
可以利用cron设定每天7点进行播报
* 7 * * * /user/local/bin/pi whether fuzhou|/user/local/bin/pi say