衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用DarkSkyAPI構(gòu)建天氣儀表板

454398 ? 來源:工程師吳畏 ? 2019-08-27 09:18 ? 次閱讀

第1步:入門

我們已經(jīng)為您將大量代碼放在一起并組織信息。我們只需要你一路做一些調(diào)整。如果您想要對(duì)我們的代碼進(jìn)行一些更改并發(fā)送天氣數(shù)據(jù),那么就有無限可能!

要檢索我們?yōu)槟鷾?zhǔn)備的所有內(nèi)容,您需要從GitHub克隆存儲(chǔ)庫(kù)。 GitHub是一項(xiàng)服務(wù),允許我們存儲(chǔ),修改和管理這樣的項(xiàng)目。您將需要在專用設(shè)備上運(yùn)行此腳本。 Raspberry Pi是運(yùn)行像本教程這樣的應(yīng)用程序的完美選擇。

要克隆存儲(chǔ)庫(kù),我們需要做的就是進(jìn)入我們的Pi終端,或者通過SSH連接到你的pi的計(jì)算機(jī)終端并輸入以下命令:

$ git clone https://github.com/InitialState/darksky.git

按Enter鍵,你會(huì)看到這個(gè)信息:

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.

一旦你看到這個(gè),那么恭喜你,你已經(jīng)成功地克隆了GitHub Repo并擁有構(gòu)建這個(gè)項(xiàng)目的所有必要文件。在我們繼續(xù)下一步之前,讓我們花一些時(shí)間來探索這個(gè)目錄并學(xué)習(xí)一些基本的命令行命令。

在終端中輸入以下命令:

$ ls

此命令列出您當(dāng)前所在目錄中可用的所有內(nèi)容。此列表顯示我們的GitHub Repo已成功克隆到我們的目錄中,名稱為“darksky”。讓我們看一下該目錄中的內(nèi)容。要移動(dòng)到目錄,您只需鍵入“cd”,然后鍵入要轉(zhuǎn)到的目錄的名稱。

在這種情況下,我們將輸入:

$ cd darksky

點(diǎn)擊Enter后,您會(huì)看到我們現(xiàn)在位于darksky目錄中。讓我們?cè)俅屋斎搿發(fā)s”,看看我們?cè)趐i上安裝了哪些文件。

README.md darksky.py 。..

在這里,我們看到我們有自述文件和python文件。讓我們使用“nano”命令查看darksky.py。 nano命令允許我們打開納米文本編輯器,我們擁有該項(xiàng)目每個(gè)部分的所有python代碼。繼續(xù)輸入:

$ nano darksky.py

在這里,您可以看到我們?yōu)榇隧?xiàng)目準(zhǔn)備的所有代碼。我們暫時(shí)不會(huì)對(duì)此文檔進(jìn)行任何更改,但可以隨意滾動(dòng)查看本教程后面的內(nèi)容。

步驟2:使用Dark Sky API

要使用Dark Sky API,您首先需要自己的API密鑰。不用擔(dān)心,獲取API密鑰很快且免費(fèi)。您只需訪問該網(wǎng)站并點(diǎn)擊“免費(fèi)試用”即可創(chuàng)建一個(gè)帳戶。

每天免費(fèi)獲得1,000次API調(diào)用。每個(gè)免費(fèi)每日限額的API請(qǐng)求費(fèi)用為0.0001美元。

此限制會(huì)在UTC午夜自動(dòng)重置。

預(yù)測(cè)請(qǐng)求會(huì)返回下周的當(dāng)前天氣預(yù)報(bào)。

Time Machine請(qǐng)求返回過去或?qū)砟硞€(gè)日期的觀察或預(yù)測(cè)天氣狀況。

您的秘密Dark Sky API密鑰將如下所示: 0123456789abcdef9876543210fedcba。

您可以通過以下格式在瀏覽器中輸入U(xiǎn)RL來對(duì)Dark Sky進(jìn)行API調(diào)用:

https://api.darksky.net/forecast/[key]/[latitude],[longitude]

用Dark Sky API替換“key”隨心所欲的關(guān)鍵和經(jīng)度/緯度。您可以訪問Google地圖并搜索您的位置來查找經(jīng)度和緯度。這些值將在URL中。使用您的訪問鍵復(fù)制并粘貼上面的黑暗天空URL,并將值添加到地址欄中。

執(zhí)行此操作后,您將看到如下內(nèi)容:

{“l(fā)atitude”:37.8267,“l(fā)ongitude”:-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},。..

它可能有點(diǎn)壓倒性且難以閱讀,因此我建議使用JSON Formatter來幫助使數(shù)據(jù)更具可讀性。當(dāng)你這樣做時(shí),它看起來像這樣:

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

你剛剛進(jìn)行了API調(diào)用!看看這有多容易?你甚至不必寫一行代碼。現(xiàn)在您已經(jīng)掌握了API,我們可以轉(zhuǎn)到數(shù)據(jù)流部分。

第3步:初始狀態(tài)

我們我們希望將所有天氣數(shù)據(jù)流式傳輸?shù)皆品?wù),并將該服務(wù)轉(zhuǎn)換為我們可以從筆記本電腦或移動(dòng)設(shè)備訪問的漂亮儀表板。我們的數(shù)據(jù)需要目的地。我們將使用初始狀態(tài)作為該目的地。

步驟1:注冊(cè)初始狀態(tài)帳戶

轉(zhuǎn)到https://iot.app.initialstate。 com并創(chuàng)建一個(gè)新帳戶。您可以獲得14天的免費(fèi)試用,任何擁有edu電子郵件地址的人都可以注冊(cè)免費(fèi)的學(xué)生計(jì)劃。

步驟2:安裝ISStreamer

將初始狀態(tài)Python模塊安裝到Raspberry Pi上。在命令提示符下,運(yùn)行以下命令:

$ cd /home/pi/

$ \curl -sSL https://get.initialstate.com/python -o - | sudo bash

步驟3:進(jìn)行一些Automagic

在步驟2之后,您將看到類似于以下輸出的內(nèi)容到屏幕:

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:

當(dāng)系統(tǒng)詢問您是否要自動(dòng)獲取示例腳本時(shí),將“y”設(shè)置為yes并按Enter鍵將腳本保存在默認(rèn)位置。有關(guān)您使用的應(yīng)用程序的問題,請(qǐng)選擇2(除非您在2018年11月之前注冊(cè))并輸入您的用戶名和密碼。

步驟4:運(yùn)行示例腳本

運(yùn)行測(cè)試腳本以確保我們可以為您的初始狀態(tài)帳戶創(chuàng)建數(shù)據(jù)流。編寫以下命令:

$ python is_example.py

步驟6:示例數(shù)據(jù)

在Web瀏覽器中返回初始狀態(tài)帳戶。一個(gè)名為“Python Stream Example”的新數(shù)據(jù)桶應(yīng)該出現(xiàn)在日志架的左側(cè)(您可能需要刷新頁(yè)面)。點(diǎn)擊此桶查看您的數(shù)據(jù)。

步驟4:Dark Sky天氣儀表板

現(xiàn)在為有趣的部分。我們已準(zhǔn)備好開始使用Dark Sky API創(chuàng)建天氣儀表板并捕獲我們選擇的位置的天氣歷史記錄。為此,我們將使用Python腳本:https://github.com/initialstate/darksky/blob/master/darksky.py。此腳本只需使用您的API密鑰調(diào)用Dark Sky API,并在指定的時(shí)間間隔內(nèi)檢索天氣信息。它還將該數(shù)據(jù)流式傳輸?shù)侥某跏紶顟B(tài)帳戶,這將允許您創(chuàng)建Dark Sky天氣儀表板。

您可以將此腳本復(fù)制到Pi,或通過我們克隆的GitHub存儲(chǔ)庫(kù)訪問它早。您可以通過鍵入以下命令更改為darksky目錄來執(zhí)行此操作:

$ cd darksky

從這里,您將能夠訪問我們將運(yùn)行的python文件以創(chuàng)建我們的天氣儀表板。在運(yùn)行之前,您需要設(shè)置所需的參數(shù)并插入密鑰。通過鍵入以下內(nèi)容將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

# ---------------------------------

您需要設(shè)置所需的GPS坐標(biāo)和城市名稱。您還必須插入您的Dark Sky API密鑰和您的初始狀態(tài)帳戶訪問密鑰,否則您的數(shù)據(jù)將無處可去。 MINUTES_BETWEEN_READS參數(shù)將設(shè)置腳本輪詢Dark Sky API獲取天氣信息的頻率。 15分鐘長(zhǎng)期提供良好的間隔。為了進(jìn)行短期測(cè)試,您可以將其設(shè)置為0.5分鐘。進(jìn)行更改,然后輸入control + X退出并保存。

設(shè)置好參數(shù)后,就可以運(yùn)行腳本了:

$ python darksky.py

如果你是ssh’ing到你的Pi并希望讓這個(gè)腳本長(zhǎng)時(shí)間不間斷地運(yùn)行,你可以使用nohup命令(沒有掛斷),如下所示:

$ nohup python darksky.py &

這個(gè)腳本正在運(yùn)行要做的不僅僅是閱讀天氣數(shù)據(jù)并將其發(fā)送到初始狀態(tài)。該腳本將利用Initial State工具中內(nèi)置的表情符號(hào)支持,使儀表板更加酷炫。您可以看到用于從當(dāng)前 - 》圖標(biāo)獲取天氣狀態(tài)的邏輯,并將其轉(zhuǎn)換為weather_icon功能中的表情符號(hào)標(biāo)記。類似于moon_icon函數(shù)中的月相和wind_dir_icon函數(shù)中的風(fēng)向。

步驟5:結(jié)論

轉(zhuǎn)到您的初始狀態(tài)帳戶并查看您的數(shù)據(jù)。我將所有百分比值更改為電弧規(guī),將液體壓力降至液位計(jì),將溫度更改為溫度計(jì)。您可以更改為任何類型的瓷磚類型,并選擇您的顏色和儀表。折線圖。您可以將儀表板設(shè)置為暗或亮,并使用嵌入式iFrame將最終產(chǎn)品嵌入到網(wǎng)站中。

如果要將公共共享中的儀表板布局用作儀表板,則可以將布局導(dǎo)入按照此處的說明操作您的數(shù)據(jù)桶。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1511

    瀏覽量

    62400
  • 儀表板
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    9172
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    通過STM32CubeMonitor,實(shí)現(xiàn)對(duì)MCU數(shù)據(jù)監(jiān)控

    的 STM32CubeMonitor 還提供基于流程的圖形編輯器,可以輕松構(gòu)建自定義儀表板,并快速添加儀表、條形圖和繪圖等小部件。通過非侵入式監(jiān)控,STM32CubeMonitor 保留了應(yīng)用程
    的頭像 發(fā)表于 01-27 08:00 ?104次閱讀
    通過STM32CubeMonitor,實(shí)現(xiàn)對(duì)MCU數(shù)據(jù)監(jiān)控

    NAGIOS XI概覽

    支持,可確保全面覆蓋您的內(nèi)部系統(tǒng)。 全面 IT 可視性:全面了解您的 IT基礎(chǔ)架構(gòu)和業(yè)務(wù)流程 量身定制的儀表板:使用對(duì)您最重要的指標(biāo)創(chuàng)建自定義儀表板 可視化您的數(shù)據(jù):利用圖形、儀表和地圖等強(qiáng)大的可視化功能輕松理解 身臨其境的 N
    的頭像 發(fā)表于 01-16 17:24 ?90次閱讀

    Flexus 云服務(wù)器 X 實(shí)例部署 Docker 管理儀表板 DweebUI

    引言 在當(dāng)今的數(shù)字化業(yè)務(wù)環(huán)境中,華為云以其卓越的技術(shù)實(shí)力脫穎而出。華為云 Flexus 云服務(wù)器 X 實(shí)例,作為新一代云服務(wù)器專為中小企業(yè)和開發(fā)者精心打造,具備柔性算力且能智能感知業(yè)務(wù)負(fù)載,彰顯出強(qiáng)大的運(yùn)算和適應(yīng)能力。當(dāng)這樣強(qiáng)大的云服務(wù)器與 DweebUI 這個(gè)功能豐富的容器管理 WebUI 相結(jié)合時(shí),必然為容器管理帶來高效、便捷且創(chuàng)新的解決方案。 一、Flexus 云服務(wù)器 X 實(shí)例介紹 1.1 Flexus 云服務(wù)器 X 實(shí)例簡(jiǎn)介 華為云 Flexus 云服務(wù)器 X 實(shí)例官網(wǎng):Fle
    的頭像 發(fā)表于 01-14 09:27 ?295次閱讀
    Flexus 云服務(wù)器 X 實(shí)例部署 Docker 管理<b class='flag-5'>儀表板</b> DweebUI

    Flexus 云服務(wù)器 X 實(shí)例實(shí)踐:安裝 Dashdot 開源服務(wù)器儀表板

    的性能脫穎而出。而 Dashdot 作為一款特色的開源服務(wù)器儀表盤,當(dāng)我們嘗試將其安裝在華為云 Flexus 云服務(wù)器 X 實(shí)例上時(shí),又會(huì)開啟怎樣的創(chuàng)新體驗(yàn)?zāi)兀?一、Flexus 云服務(wù)器 X 實(shí)例介紹 1.1 Flexus 云服務(wù)器 X 實(shí)例簡(jiǎn)介 華為云 Flexus 云服務(wù)器 X 實(shí)例官網(wǎng):
    的頭像 發(fā)表于 01-13 15:51 ?299次閱讀
    Flexus 云服務(wù)器 X 實(shí)例實(shí)踐:安裝 Dashdot 開源服務(wù)器<b class='flag-5'>儀表板</b>

    使用小安派DSL制作天氣

    用小安派 DSL做天氣站 用戶分享DIY ? 前言 小安派-DSL(AiPi-DSL) 是安信可開源團(tuán)隊(duì)專門為Ai-M61-32S設(shè)計(jì)的一款屏幕驅(qū)動(dòng)開發(fā),支持2.8/3.5寸等30Pin SPI
    的頭像 發(fā)表于 01-03 11:18 ?190次閱讀
    使用小安派DSL制作<b class='flag-5'>天氣</b>站

    中國(guó)氣象局推出“中國(guó)天氣小助手”智能體

    近日,中國(guó)氣象局華風(fēng)氣象傳媒集團(tuán)攜手支付寶,正式推出了首個(gè)國(guó)家級(jí)天氣智能體——“中國(guó)天氣小助手”。這一創(chuàng)新服務(wù)由中國(guó)氣象局提供權(quán)威的氣象數(shù)據(jù)支持,旨在為用戶提供多元化的氣象領(lǐng)域服務(wù)。 用戶只需在
    的頭像 發(fā)表于 12-02 18:06 ?634次閱讀

    英偉達(dá)與阿聯(lián)酋G42合作開發(fā)天氣預(yù)測(cè)AI模型

    英偉達(dá)近期宣布與阿聯(lián)酋的領(lǐng)先AI應(yīng)用開發(fā)企業(yè)G42達(dá)成戰(zhàn)略合作,共同探索天氣預(yù)測(cè)技術(shù)的新前沿。雙方將整合各自的技術(shù)優(yōu)勢(shì),依托英偉達(dá)的Earth-2項(xiàng)目,構(gòu)建高性能的天氣預(yù)測(cè)AI模型。
    的頭像 發(fā)表于 09-24 15:41 ?325次閱讀

    使用 TPS1HC100-Q1 高效驅(qū)動(dòng)汽車儀表板負(fù)載應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《使用 TPS1HC100-Q1 高效驅(qū)動(dòng)汽車儀表板負(fù)載應(yīng)用說明.pdf》資料免費(fèi)下載
    發(fā)表于 09-12 10:41 ?0次下載
    使用 TPS1HC100-Q1 高效驅(qū)動(dòng)汽車<b class='flag-5'>儀表板</b>負(fù)載應(yīng)用說明

    做一個(gè)智能天氣鬧鐘用什么芯片合適?

    需要實(shí)時(shí)接收網(wǎng)絡(luò)API接口的天氣數(shù)據(jù)并實(shí)時(shí)展示,主要包括溫濕度,天氣預(yù)報(bào),天氣預(yù)警信息等重要的氣象信息。請(qǐng)各位大佬指點(diǎn)指點(diǎn)?。。?
    發(fā)表于 08-06 15:22

    ISL28633EV2Z輸入/輸出零漂移可編程增益儀表放大器評(píng)估

    電子發(fā)燒友網(wǎng)站提供《ISL28633EV2Z輸入/輸出零漂移可編程增益儀表放大器評(píng)估.rar》資料免費(fèi)下載
    發(fā)表于 06-07 16:28 ?0次下載

    帶遠(yuǎn)程信息處理的 TFT 儀表盤數(shù)據(jù)手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《帶遠(yuǎn)程信息處理的 TFT 儀表盤數(shù)據(jù)手冊(cè).rar》資料免費(fèi)下載
    發(fā)表于 05-14 17:18 ?0次下載
    帶遠(yuǎn)程信息處理<b class='flag-5'>板</b>的 TFT <b class='flag-5'>儀表</b>盤數(shù)據(jù)手冊(cè)

    微軟MSN天氣服務(wù)引入全新AI模型

    微軟在天氣預(yù)測(cè)領(lǐng)域取得了突破性的進(jìn)展,為MSN天氣服務(wù)引入了全新的AI預(yù)測(cè)模型。該模型由微軟Start團(tuán)隊(duì)精心研發(fā),并基于他們?cè)赼rXiv上發(fā)表的最新論文。這一創(chuàng)新模型結(jié)合了五種不同的人工智能模型和三種深度學(xué)習(xí)架構(gòu),形成了一個(gè)強(qiáng)大而精準(zhǔn)的
    的頭像 發(fā)表于 05-07 09:25 ?615次閱讀

    哪些關(guān)鍵技術(shù)在支撐著數(shù)字座艙?

    數(shù)字座艙是車輛中一系列顯示技術(shù)的集成,主要包括信息娛樂系統(tǒng)、駕駛艙儀表板儀表盤)、抬頭顯示器(HUD)和其他數(shù)據(jù)輸出(如時(shí)鐘或溫度)顯示器等。
    發(fā)表于 04-17 10:35 ?527次閱讀
    哪些關(guān)鍵技術(shù)在支撐著數(shù)字座艙?

    車載HUD系統(tǒng)的三種類型

    C-HUD 更多應(yīng)用在后裝市場(chǎng),其會(huì)在汽車儀表上方、儀表板頂部加裝一個(gè)半透明樹脂,再將該樹脂作為投影介質(zhì)反射出虛像。
    發(fā)表于 03-13 11:43 ?1793次閱讀

    為全志D1開發(fā)移植LVGL日歷控件和顯示天氣

    利用TCP封裝HTTP包請(qǐng)求天氣信息 Linux還真是逐步熟悉中,現(xiàn)在才了解到Linux即沒有原生的GUI,也沒有應(yīng)用層協(xié)議棧,所以要實(shí)現(xiàn)HTTP應(yīng)用,必須利用TCP然后自己封裝HTTP數(shù)據(jù)包。本篇
    發(fā)表于 02-21 09:59
    兰桂坊百家乐的玩法技巧和规则 | 百家乐厅| 百家乐庄闲当哪个好| 百家乐几点开奖| 百家乐算号软件| 马牌百家乐娱乐城| 百家乐的注码技巧| 百家乐网上漏洞| 米其林百家乐的玩法技巧和规则| 涂山百家乐的玩法技巧和规则| 明溪百家乐的玩法技巧和规则| 金杯百家乐的玩法技巧和规则 | 博彩策略| 汉川市| 澳门百家乐官网网址| 百家乐官网赢钱心得| 百家乐官网象棋玩法| 风水24山分房图| 百家乐赌博破解| 威尼斯人娱乐城信誉最好| 大众百家乐的玩法技巧和规则| 大发888bet| 网上百家乐官网真实吗| 澳门百家乐官网技术| 红桃K百家乐官网的玩法技巧和规则| 百家乐官网怎么| 百家乐太阳城| 博客| 百家乐官网统计| 联合百家乐官网的玩法技巧和规则 | 百家乐官网游戏下裁| 风水24山对应的字为吉| 百家乐赌大小| 凌龙棋牌游戏大厅| 大丰收娱乐城官网| 博E百百家乐官网娱乐城| 累积式百家乐官网的玩法技巧和规则 | 百家乐电脑赌博| 大发888游戏平台88| 百家乐官网有哪些注| 苹果百家乐官网的玩法技巧和规则 |