智慧型機器手臂–第二部分:程式設計

目錄

第5步:天氣API

通過天氣API,我們可以根據以下方式收集城市資料:城市名稱、城市ID、地理座標甚至郵遞區號。該API的優點是免費且易於使用。但是該API有一個限制:使用次數或者流量不能超過60次/分鐘或50k/天,如果違反該規定,您的帳戶將被封鎖。

在本教材中,我們選擇根據城市ID調用API。每個城市都有一個ID,詳細資訊請參見 http://bulk.openweathermap.org/sample/city.list.json.gz。副檔名.json 用於在瀏覽器和伺服器之間進行交換資料。只有當資料是文本格式時才能進行通訊。

我們已經將資料用作WebClient類—這使得文件下載更加輕鬆。在我們的例子中,構造函數WebClient用於初始化一個新的範例:

WebClient client = new WebClient();

我們需要將資料編碼為UTF8格式,這意味著系統用8位元塊來表示字元,具體指令如下:client.Encoding = System.Text.Encoding.UTF8

如果網路連線出現問題時,程式會自動顯示以下訊息 “Internet Connection failed – “throw new WeatherDataServiceException” 。通過throw我們可以建立一個異常。

在C#中,我們可以使用try catch來解決部分代碼無法成功的情況。

藉由語音合成API,如果使用者詢問天氣情況,系統會發出以下聲音:“The weather in Boston is(波士頓的天氣是)…”。

第6步:語音合成

當您使用語音合成API時,您需要一個可以快速處理的檔案—這就是我們需要使用伺服器的原因。對於BING API,我們需要授權記號,具體資訊請參閱https://api.cognitive.microsoft.com/sts/v1.0/issueToken.

該API的有效期為10分鐘。這是一個非常棒的計時器,可以計數到9,同時每9分鐘更新一次連線。

如下圖所示,您可以看到語音合成的最終結果是“Testing the app for Device Plus”。

robotic arm

圖13 測試API

總體來說,這是一個有趣的研究專案。該專案讓我了解到硬體和軟體之間好的同步配合,對於實現最佳性能是非常重要的。使用大量Visual Studio公用程式雖然使專案有點複雜,但最終結果是令人滿意的。

我認為這種專案可以透過多種方式進行開發和改進,以滿足每個使用者的需求。