[LattePanda] 使用Weather API、Google 雲服務打造氣象預報機器人

本文說明如何使用 LattePanda搭配 python語言去使用雲服務來打造一個簡單的氣象預報機器人。

作者/攝影  袁佑緣
時間   1小時
成本
  • LattePanda = 5,950
  • 螢幕
  • 鍵盤
  • 滑鼠
  • 喇叭
  • 麥克風
難度   * *
材料表
  • LattePanda = 5,950
  • 螢幕
  • 鍵盤
  • 滑鼠
  • 喇叭
  • 麥克風

 

本文說明如何使用 LattePanda搭配 python語言去使用雲服務來打造一個簡單的氣象預報機器人本範例的操作環境是以LattePanda的Windows10為主如果想要一般的PC上操作也可以另外對於linux與mac os的使用者建議用您的系統的軟件管理員來安裝以下的程式套件。

 

  1. 安裝python3 https://www.python.org/downloads/windows/記得在安裝時要選擇將python加入系統變數喔

  1. 執行Windows命令列

按下”win+R”的快捷鍵並輸入cmd便會叫出windows的命令提示字元 如果是windows10的使用者建議改輸入powershell。

 

  1. 安裝python套件

請在命令列中輸入以下的指令

pip install SpeechRecognition pyaudio python-forecastio gtts

  1. 從github上下載本專案 https://github.com/YuanYouYuan/weather-bot

  1. 從下列網址中下載mpv播放器如果您想要用windows media player也是可以但是要記得在第6步中程式碼修改播放器的檔案位置。

mpv 下載網址 https://mpv.srsfckn.biz/

如果您無法解壓縮7z檔案可以從以下的網址中下載7z的解壓縮安裝檔。

7z安裝檔下載網址 http://www.developershome.com/7-zip/

最後請記得將解壓縮後的mpv.exe移動到剛剛從github下載並解壓縮的專案資料夾中。

  1. 執行程式碼

請點開本專案資料夾並用python IDLE編輯器打開weather-test.py

請將裡面的api_key改成你在darkskyhttps://darksky.net/dev/上取得的api key。

請註冊一個新的帳號並取得一個weather api key。

本專案程式碼 weather-test.py

# This version is for windows, and there must be a mpv application in this work directory

import forecastio 引入python氣象互動函式庫from gtts import gTTS 引入google文字轉語音函式庫import subprocessapi_key = 'Enter your api key' 請輸入您的api key

# the following coordinate is Taipei/Taiwan
lat = 25.0391667 #在此您可以設定所要查詢的地點的經緯度
lng =  121.525
lang = 'zh-TW' 設定語言為繁體中文
file_name = 'weather.mp3'
player = './mpv' #設定播放器為mpv

forecast = forecastio.load_forecast(api_key, lat, lng)

by_hour = forecast.hourly()

for data in by_hour.data:
    text = '在' + str(data.time) + '氣溫是' +  str(data.temperature) + '度西' 取出預報時間與氣溫
    print(text)
    tts = gTTS(text, lang) 
    tts.save(file_name)
    subprocess.call([player, file_name]) 啟動一個子程序來播報氣象預報音檔

7.youtube影片範例

  1. 延伸應用

如果您想要再玩玩更多進階的功能可以參考python-forecastio的github網站裡面有詳細的說明跟應用比如說想要知道當下的氣溫、或者是知道今天的氣象概況甚至還能做到降雨率的預報有興趣的朋友不妨去試一試吧

 

相關文章:

Leave a comment

Your email address will not be published.


*