0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用DarkSkyAPI构建天气仪表板

454398 来源:工程师吴畏 2019-08-27 09:18 次阅读

第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
    API
    +关注

    关注

    2

    文章

    1531

    浏览量

    62802
  • 仪表板
    +关注

    关注

    0

    文章

    35

    浏览量

    9200
收藏 人收藏

    评论

    相关推荐

    通过STM32CubeMonitor,实现对MCU数据监控

    的 STM32CubeMonitor 还提供基于流程的图形编辑器,可以轻松构建自定义仪表板,并快速添加仪表、条形图和绘图等小部件。通过非侵入式监控,STM32CubeMonitor 保留了应用程
    的头像 发表于 01-27 08:00 253次阅读
    通过STM32CubeMonitor,实现对MCU数据监控

    NAGIOS XI概览

    支持,可确保全面覆盖您的内部系统。 全面 IT 可视性:全面了解您的 IT基础架构和业务流程 量身定制的仪表板:使用对您最重要的指标创建自定义仪表板 可视化您的数据:利用图形、仪表和地图等强大的可视化功能轻松理解 身临其境的 N
    的头像 发表于 01-16 17:24 153次阅读

    Flexus 云服务器 X 实例部署 Docker 管理仪表板 DweebUI

    引言 在当今的数字化业务环境中,华为云以其卓越的技术实力脱颖而出。华为云 Flexus 云服务器 X 实例,作为新一代云服务器专为中小企业和开发者精心打造,具备柔性算力且能智能感知业务负载,彰显出强大的运算和适应能力。当这样强大的云服务器与 DweebUI 这个功能丰富的容器管理 WebUI 相结合时,必然为容器管理带来高效、便捷且创新的解决方案。 一、Flexus 云服务器 X 实例介绍 1.1 Flexus 云服务器 X 实例简介 华为云 Flexus 云服务器 X 实例官网:Fle
    的头像 发表于 01-14 09:27 624次阅读
    Flexus 云服务器 X 实例部署 Docker 管理<b class='flag-5'>仪表板</b> DweebUI

    Flexus 云服务器 X 实例实践:安装 Dashdot 开源服务器仪表板

    的性能脱颖而出。而 Dashdot 作为一款特色的开源服务器仪表盘,当我们尝试将其安装在华为云 Flexus 云服务器 X 实例上时,又会开启怎样的创新体验呢? 一、Flexus 云服务器 X 实例介绍 1.1 Flexus 云服务器 X 实例简介 华为云 Flexus 云服务器 X 实例官网:
    的头像 发表于 01-13 15:51 417次阅读
    Flexus 云服务器 X 实例实践:安装 Dashdot 开源服务器<b class='flag-5'>仪表板</b>

    使用小安派DSL制作天气

    用小安派 DSL做天气站 用户分享DIY   前言 小安派-DSL(AiPi-DSL) 是安信可开源团队专门为Ai-M61-32S设计的一款屏幕驱动开发,支持2.8/3.5寸等30Pin SPI
    的头像 发表于 01-03 11:18 277次阅读
    使用小安派DSL制作<b class='flag-5'>天气</b>站

    中国气象局推出“中国天气小助手”智能体

    近日,中国气象局华风气象传媒集团携手支付宝,正式推出了首个国家级天气智能体——“中国天气小助手”。这一创新服务由中国气象局提供权威的气象数据支持,旨在为用户提供多元化的气象领域服务。 用户只需在
    的头像 发表于 12-02 18:06 813次阅读

    英伟达与阿联酋G42合作开发天气预测AI模型

    英伟达近期宣布与阿联酋的领先AI应用开发企业G42达成战略合作,共同探索天气预测技术的新前沿。双方将整合各自的技术优势,依托英伟达的Earth-2项目,构建高性能的天气预测AI模型。
    的头像 发表于 09-24 15:41 367次阅读

    使用 TPS1HC100-Q1 高效驱动汽车仪表板负载应用说明

    电子发烧友网站提供《使用 TPS1HC100-Q1 高效驱动汽车仪表板负载应用说明.pdf》资料免费下载
    发表于 09-12 10:41 0次下载
    使用 TPS1HC100-Q1 高效驱动汽车<b class='flag-5'>仪表板</b>负载应用说明

    做一个智能天气闹钟用什么芯片合适?

    需要实时接收网络API接口的天气数据并实时展示,主要包括温湿度,天气预报,天气预警信息等重要的气象信息。请各位大佬指点指点!!!
    发表于 08-06 15:22

    ESP8266网络天气时钟OLED显示

    基于ESP8266实现网络获取天气和时钟并OLED显示
    的头像 发表于 06-28 04:46 1597次阅读
    ESP8266网络<b class='flag-5'>天气</b>时钟OLED显示

    ISL28633EV2Z输入/输出零漂移可编程增益仪表放大器评估

    电子发烧友网站提供《ISL28633EV2Z输入/输出零漂移可编程增益仪表放大器评估.rar》资料免费下载
    发表于 06-07 16:28 0次下载

    带远程信息处理的 TFT 仪表盘数据手册

    电子发烧友网站提供《带远程信息处理的 TFT 仪表盘数据手册.rar》资料免费下载
    发表于 05-14 17:18 0次下载
    带远程信息处理<b class='flag-5'>板</b>的 TFT <b class='flag-5'>仪表</b>盘数据手册

    微软MSN天气服务引入全新AI模型

    微软在天气预测领域取得了突破性的进展,为MSN天气服务引入了全新的AI预测模型。该模型由微软Start团队精心研发,并基于他们在arXiv上发表的最新论文。这一创新模型结合了五种不同的人工智能模型和三种深度学习架构,形成了一个强大而精准的
    的头像 发表于 05-07 09:25 680次阅读

    哪些关键技术在支撑着数字座舱?

    数字座舱是车辆中一系列显示技术的集成,主要包括信息娱乐系统、驾驶舱仪表板仪表盘)、抬头显示器(HUD)和其他数据输出(如时钟或温度)显示器等。
    发表于 04-17 10:35 569次阅读
    哪些关键技术在支撑着数字座舱?

    鸿蒙实战开发:【7日天气预报】

    我想要实现的一个功能是,查询当前城市的实时天气
    的头像 发表于 03-25 16:19 999次阅读
    鸿蒙实战开发:【7日<b class='flag-5'>天气</b>预报】