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

    文章

    1501

    浏览量

    62024
  • 仪表板
    +关注

    关注

    0

    文章

    35

    浏览量

    9134
收藏 人收藏

    评论

    相关推荐

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

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

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

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

    使用 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 1167次阅读
    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 568次阅读

    哪些关键威廉希尔官方网站 在支撑着数字座舱?

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

    车载HUD系统的三种类型

    C-HUD 更多应用在后装市场,其会在汽车仪表上方、仪表板顶部加装一个半透明树脂,再将该树脂作为投影介质反射出虚像。
    发表于 03-13 11:43 1581次阅读

    为全志D1开发移植LVGL日历控件和显示天气

    利用TCP封装HTTP包请求天气信息 Linux还真是逐步熟悉中,现在才了解到Linux即没有原生的GUI,也没有应用层协议栈,所以要实现HTTP应用,必须利用TCP然后自己封装HTTP数据包。本篇
    发表于 02-21 09:59

    鸿蒙开发实战-OpenHarmony之天气应用

    通过请求免费API获取指定城市七天内相关天气信息
    的头像 发表于 01-24 18:12 921次阅读
    鸿蒙开发实战-OpenHarmony之<b class='flag-5'>天气</b>应用

    Qt助力英飞凌车载MCU引入轻量级高性能图形框架,提升用户体验

    现代MCU实际上相当于微型独立计算机,具备丰富的图形功能,既能设计紧凑、节约成本又能减小能耗。因其满足即时启动、占用空间小且经济高效的实时处理需求,逐渐广泛应用于如汽车、摩托车、建筑设备乃至汽车仪表板、工业与医疗领域等多方领域。
    的头像 发表于 01-23 10:37 638次阅读

    56寸不够!奔驰透露:正开发更大尺寸车用OLED

    WitDisplay消息,如今市场的新车往往都配有大尺寸的触控屏幕,再加上数位仪表板就成为主流的科技内装氛围,其中 Mercedes-Benz 更是特别钟爱大屏幕,先是有 Hyperscreen 的高科技内装,近日品牌高层更表示,正在追求更大尺寸的车内屏幕。
    的头像 发表于 01-17 10:18 1108次阅读

    利用全套解决方案快速构建联网智能现场仪表

    愿景的关键威廉希尔官方网站 ,但设计人员在寻找和实现有效解决方案时一直是孤军奋战。设计人员需要解决方案来简化互联、智能的现场仪表的实现,从而完成加工行业的数字化转型。 本文介绍了 [Analog Devices]提供的一个全面解决方案,该解决方案可有效满足对互联、智能现场仪表日益增长
    的头像 发表于 01-01 13:00 597次阅读
    利用全套解决方案快速<b class='flag-5'>构建</b>联网智能现场<b class='flag-5'>仪表</b>