ePy-Lite上內建藍芽5.0的模組,因此我可以透過藍芽與手機app溝通。
但今天我想要做更多的應用......
當我們提到物聯網+Python,我不得不提到一個有趣的應用:Open Data
開放資料指的是一種經過挑選與許可的資料。這種資料不受著作權、專利權,以及其他管理機制所限制,可以開放給社會公眾,任何人都可以自由出版使用,不論是要拿來出版或是做其他的運用都不加以限制。
Open data 運動希望達成的目標與開放原始碼、內容開放、開放獲取等其他「開放」運動類似。Open data 背後的核心思想由來已久,但 Open data 這名詞直到近代才出現,拜網際網路崛起而為人所知,尤其是 Data.gov 等 Open data 政府組織的設立。(資料源自於維基百科)
我們可以透過開放資料來抓一些有用的資訊,例如電影院訂票、天氣預報等等
因此我就想來做一個天氣預報的app,並可以將天氣預報的結果經由藍芽傳送給ePy-Lite,並在ePy-Lite上做出不同的顯示。如此,即便是ePy-Lite依然可以製作物聯網的專題!
首先,我要做出一個可擷取各縣市天氣的app
我選的是OpenWeatherMap這個平台,我個人無論是在做Arduino或Python都很常使用到的Open Data之一。
網址:https://openweathermap.org/
先申請一個帳號密碼,參考申請帳號的網址:https://ithelp.ithome.com.tw/articles/10240748 申請好了之後,可以在「My API Key」看到自己的API
這個Key很重要,等等會用到
接下來我回到API的介面
這裡我們可以看到如何使用這個API的資料,我們往下看到「Current Weather Data」,點選「API Doc」
點進去之後我們就可以看到官方提供許多可以讀取資料的範例,我這邊就選最簡單的城市和API。
複製這段網址,貼到新的分頁網址欄位中,將紅色的字體修改成你所居住的城市,將後面的API Key改成自己的API Key。
但是有可能當你輸入之後,網頁會出現錯誤的訊息,這通常是有兩個原因造成的
第一個原因是打錯城市的英文或是輸入錯誤的API Key
另一個原因是沒有該城市的資訊,我們可以從官網上的「Map」看到全世界地圖,有標出順序號碼的就是代表有相關的數據。
然後我們回到資訊這邊,密密麻麻的資訊是JSON格式,其實它表示的是天氣的各項資訊,也包括時間。
我只列出一些顯而易見的數值,但我們一定會發現溫度的數值怪怪的,不是我們平常看到的數值對吧,這是因為它的單位預設是華氏溫度,這邊我們只要在網址列輸出幾個英文字,它就會進行轉換,如下。
https://api.openweathermap.org/data/2.5/weather?q=Kaohsiung&units=metric&appid=57247ff65f6b1c064ba9ba9b2b5624c0
我們就會發現溫度就會改變成我們熟悉的數值。
當然,在官網中它也有整理好JSON檔案的資料的模式給大家看。
因為這不是我的專長,所以有關於JSON的部分我就不說明了,但關鍵就是「字典」
講了這麼久,我們大致上了解資料的表示型態,接著我們就可以透過APP Inventor來製作一個可以抓取這些資料的APP。