第1步:入門
我們已經為您將大量代碼放在一起并組織信息。我們只需要你一路做一些調整。如果您想要對我們的代碼進行一些更改并發送天氣數據,那么就有無限可能!
要檢索我們為您準備的所有內容,您需要從GitHub克隆存儲庫。 GitHub是一項服務,允許我們存儲,修改和管理這樣的項目。您將需要在專用設備上運行此腳本。 Raspberry Pi是運行像本教程這樣的應用程序的完美選擇。
要克隆存儲庫,我們需要做的就是進入我們的Pi終端,或者通過SSH連接到你的pi的計算機終端并輸入以下命令:
$ git clone https://github.com/InitialState/darksky.git
按Enter鍵,你會看到這個信息:
Cloning into ‘darksky’。..
remote: Counting objects: 2, done.
remote: Total 2 (delta 0), reused 0 (delta 0), pack-reused 2
Unpacking objects: 100% (2/2), done.
Checking connectivity.。. done.
一旦你看到這個,那么恭喜你,你已經成功地克隆了GitHub Repo并擁有構建這個項目的所有必要文件。在我們繼續下一步之前,讓我們花一些時間來探索這個目錄并學習一些基本的命令行命令。
在終端中輸入以下命令:
$ ls
此命令列出您當前所在目錄中可用的所有內容。此列表顯示我們的GitHub Repo已成功克隆到我們的目錄中,名稱為“darksky”。讓我們看一下該目錄中的內容。要移動到目錄,您只需鍵入“cd”,然后鍵入要轉到的目錄的名稱。
在這種情況下,我們將輸入:
$ cd darksky
點擊Enter后,您會看到我們現在位于darksky目錄中。讓我們再次輸入“ls”,看看我們在pi上安裝了哪些文件。
README.md darksky.py 。..
在這里,我們看到我們有自述文件和python文件。讓我們使用“nano”命令查看darksky.py。 nano命令允許我們打開納米文本編輯器,我們擁有該項目每個部分的所有python代碼。繼續輸入:
$ nano darksky.py
在這里,您可以看到我們為此項目準備的所有代碼。我們暫時不會對此文檔進行任何更改,但可以隨意滾動查看本教程后面的內容。
步驟2:使用Dark Sky API
要使用Dark Sky API,您首先需要自己的API密鑰。不用擔心,獲取API密鑰很快且免費。您只需訪問該網站并點擊“免費試用”即可創建一個帳戶。
每天免費獲得1,000次API調用。每個免費每日限額的API請求費用為0.0001美元。
此限制會在UTC午夜自動重置。
預測請求會返回下周的當前天氣預報。
Time Machine請求返回過去或將來某個日期的觀察或預測天氣狀況。
您的秘密Dark Sky API密鑰將如下所示: 0123456789abcdef9876543210fedcba。
您可以通過以下格式在瀏覽器中輸入URL來對Dark Sky進行API調用:
https://api.darksky.net/forecast/[key]/[latitude],[longitude]
用Dark Sky API替換“key”隨心所欲的關鍵和經度/緯度。您可以訪問Google地圖并搜索您的位置來查找經度和緯度。這些值將在URL中。使用您的訪問鍵復制并粘貼上面的黑暗天空URL,并將值添加到地址欄中。
執行此操作后,您將看到如下內容:
{“latitude”:37.8267,“longitude”:-122.4233,“timezone”:“America/Los_Angeles”,“currently”:{“time”:1550615286,“summary”:“Clear”,“icon”:“clear-
day”,“nearestStormDistance”:57,“nearestStormBearing”:15,“precipIntensity”:0,“precipProbability”:0,“temperature”:53.9,“apparentTemperature”:53.9,
“dewPoint”:29.59,“humidity”:0.39,“pressure”:1022.45,“windSpeed”:3.87,“windGust”:9.25,“windBearing”:259,“cloudCover”:0.01,“uvIndex”:3,
“visibility”:7.8,“ozone”:309.71},“minutely”:{“summary”:“Clear for the hour.”,“icon”:“clear-day”,“data”:[
{“time”:1550615280,“precipIntensity”:0,“precipProbability”:0},。..
它可能有點壓倒性且難以閱讀,因此我建議使用JSON Formatter來幫助使數據更具可讀性。當你這樣做時,它看起來像這樣:
object {9}
latitude: 37.8267
longitude: -122.4233
timezone: America/Los_Angeles
currently {19}
time: 1550615286
summary: Clear
icon: clear-day
nearestStormDistance: 57
nearestStormBearing: 15
precipIntensity: 0
precipProbability: 0
temperature: 53.9
apparentTemperature: 53.9
dewPoint: 29.59
humidity: 0.39
pressure: 1022.45
windSpeed: 3.87
windGust: 9.25
windBearing: 259
cloudCover: 0.01
uvIndex: 3
visibility: 7.8
ozone: 309.71
你剛剛進行了API調用!看看這有多容易?你甚至不必寫一行代碼。現在您已經掌握了API,我們可以轉到數據流部分。
第3步:初始狀態
我們我們希望將所有天氣數據流式傳輸到云服務,并將該服務轉換為我們可以從筆記本電腦或移動設備訪問的漂亮儀表板。我們的數據需要目的地。我們將使用初始狀態作為該目的地。
步驟1:注冊初始狀態帳戶
轉到https://iot.app.initialstate。 com并創建一個新帳戶。您可以獲得14天的免費試用,任何擁有edu電子郵件地址的人都可以注冊免費的學生計劃。
步驟2:安裝ISStreamer
將初始狀態Python模塊安裝到Raspberry Pi上。在命令提示符下,運行以下命令:
$ cd /home/pi/
$ \curl -sSL https://get.initialstate.com/python -o - | sudo bash
步驟3:進行一些Automagic
在步驟2之后,您將看到類似于以下輸出的內容到屏幕:
pi@raspberrypi ~ $ \curl -sSL https://get.initialstate.com/python -o - | sudo bash
Password:
Beginning ISStreamer Python Easy Installation!
This may take a couple minutes to install, grab some coffee :)
But don‘t forget to come back, I’ll have questions later!
Found easy_install: setuptools 1.1.6
Found pip: pip 1.5.6 from /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7)
pip major version: 1
pip minor version: 5
ISStreamer found, updating.。.
Requirement already up-to-date: ISStreamer in /Library/Python/2.7/site-packages
Cleaning up.。.
Do you want automagically get an example script? [y/N]
Where do you want to save the example? [default: 。/is_example.py]
Please select which Initial State app you‘re using:
1. app.initialstate.com
2. [NEW!] iot.app.initialstate.com
Enter choice 1 or 2:
Enter iot.app.initialstate.com user name:
Enter iot.app.initialstate.com password:
當系統詢問您是否要自動獲取示例腳本時,將“y”設置為yes并按Enter鍵將腳本保存在默認位置。有關您使用的應用程序的問題,請選擇2(除非您在2018年11月之前注冊)并輸入您的用戶名和密碼。
步驟4:運行示例腳本
運行測試腳本以確保我們可以為您的初始狀態帳戶創建數據流。編寫以下命令:
$ python is_example.py
步驟6:示例數據
在Web瀏覽器中返回初始狀態帳戶。一個名為“Python Stream Example”的新數據桶應該出現在日志架的左側(您可能需要刷新頁面)。點擊此桶查看您的數據。
步驟4:Dark Sky天氣儀表板
現在為有趣的部分。我們已準備好開始使用Dark Sky API創建天氣儀表板并捕獲我們選擇的位置的天氣歷史記錄。為此,我們將使用Python腳本:https://github.com/initialstate/darksky/blob/master/darksky.py。此腳本只需使用您的API密鑰調用Dark Sky API,并在指定的時間間隔內檢索天氣信息。它還將該數據流式傳輸到您的初始狀態帳戶,這將允許您創建Dark Sky天氣儀表板。
您可以將此腳本復制到Pi,或通過我們克隆的GitHub存儲庫訪問它早。您可以通過鍵入以下命令更改為darksky目錄來執行此操作:
$ cd darksky
從這里,您將能夠訪問我們將運行的python文件以創建我們的天氣儀表板。在運行之前,您需要設置所需的參數并插入密鑰。通過鍵入以下內容將Nano納入darksky.py文件中:
$ nano darksky.py
然后編輯腳本頂部附近的部分:
# --------- User Settings ---------
CITY = “Nashville”
GPS_COORDS = “36.1628414,-86.780199”
DARKSKY_API_KEY = “PLACE YOUR DARK SKY API KEY HERE”
BUCKET_NAME = “:partly_sunny: ” + CITY + “ Weather”
BUCKET_KEY = “ds1”
ACCESS_KEY = “PLACE YOUR INITIAL STATE ACCESS KEY HERE”
MINUTES_BETWEEN_READS = 15
# ---------------------------------
您需要設置所需的GPS坐標和城市名稱。您還必須插入您的Dark Sky API密鑰和您的初始狀態帳戶訪問密鑰,否則您的數據將無處可去。 MINUTES_BETWEEN_READS參數將設置腳本輪詢Dark Sky API獲取天氣信息的頻率。 15分鐘長期提供良好的間隔。為了進行短期測試,您可以將其設置為0.5分鐘。進行更改,然后輸入control + X退出并保存。
設置好參數后,就可以運行腳本了:
$ python darksky.py
如果你是ssh’ing到你的Pi并希望讓這個腳本長時間不間斷地運行,你可以使用nohup命令(沒有掛斷),如下所示:
$ nohup python darksky.py &
這個腳本正在運行要做的不僅僅是閱讀天氣數據并將其發送到初始狀態。該腳本將利用Initial State工具中內置的表情符號支持,使儀表板更加酷炫。您可以看到用于從當前 - 》圖標獲取天氣狀態的邏輯,并將其轉換為weather_icon功能中的表情符號標記。類似于moon_icon函數中的月相和wind_dir_icon函數中的風向。
步驟5:結論
轉到您的初始狀態帳戶并查看您的數據。我將所有百分比值更改為電弧規,將液體壓力降至液位計,將溫度更改為溫度計。您可以更改為任何類型的瓷磚類型,并選擇您的顏色和儀表。折線圖。您可以將儀表板設置為暗或亮,并使用嵌入式iFrame將最終產品嵌入到網站中。
如果要將公共共享中的儀表板布局用作儀表板,則可以將布局導入按照此處的說明操作您的數據桶。
-
API
+關注
關注
2文章
1499瀏覽量
61971 -
儀表板
+關注
關注
0文章
35瀏覽量
9132
發布評論請先 登錄
相關推薦
評論