ESP8266调用心知天气API

2023-05-16

首先我们需要一个可以调用返回天气信息的API,这里以心知天气为例,可以免费注册,虽然功能受限,但对于初学者来说,足够了

 心知天气api:https://api.seniverse.com/v3/weather/now.json?key=your_private_key&location=beijing&language=zh-Hans&unit=c

调用的时候只需要将your_private_key换成自己的密钥即可。具体内容参考心知天气API接口文档。

第一步我们需要准备一个热点可以访问网络,路由器,手机热点均可;

第二步获取即将访问的服务器IP地址。我们在PC端实现,win+r 后输入cmd进入操作终端,输入 ping api.seniverse.com 回车

116.62.81.138 就是我们需要使用的心知天气API

 

第三步配置获取天气信息的AT指令,创建TCP连接

AT+CWMODE=1      设置为sta模式,作为客户端使用

AT+RST    重启模块使模式更改生效

AT+CWJAP="account","password"    连接准备好的AP

AT+CIPMUX=0    设置为单路连接模式

AT+CIPSTART=”TCP”,”116.62.81.138”,80    创建TCP连接    

AT+CIPMODE=1    开启透传模式

AT+CIPSEND    向服务器发送数据,模块收到此指令后先换行后返回“>”,之后AT指令失效

然后发送 GET https://api.seniverse.com/v3/weather/now.json?key=your_private_key&location=beijing&language=zh-Hans&unit=c 即可获取天气信息

以下服务器返回给我们的内容:

{"results":[{"location":{"id":"W
X4FBXXFKE4F","name":"鍖椾含","country":"CN","path":"鍖椾含,鍖椾含,涓浗","timezone":"Asia/Shanghai","timezone_offset":"+08:00"},"now":{"text":"鏅?,"code":"0","temperature":"22"},"last_update
":"2019-10-01T08:25:00+08:00"}]}

中文字乱码是串口助手的设置问题,对比心知天气api正常访问的内容我们就可以大概了解当前地区的天气状况

{"results":[{"location":{"id":"WX4FBXXFKE4F","name":"北京","country":"CN","path":"北京,北京,中国","timezone":"Asia/Shanghai","timezone_offset":"+08:00"},"now":{"text":"晴","code":"0","temperature":"22"},"last_update":"2019-10-01T08:25:00+08:00"}]}

因为心知天气返回的数据是JSON格式,所以我们还需要解析才能得到想要的东西,但通过分析心知天气接口的通用参数,我们也能掌握天气信息,以下是借助转换工具完成JSON格式化

不过这一步完成我们已经实现了和服务器交互,下一步的学习我将解析json的数据,并在屏幕上显示出来直观的数据。

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ESP8266调用心知天气API 的相关文章

  • 如何使用 json 谷歌翻译 api?

    我正在尝试使用来自 python 的 google 翻译和 utf 8 文本 如何调用json api 他们有一个将其嵌入 html 的文档 但我在任何地方都找不到合适的 API 或 wsdl 谢谢 拉斐尔 这是最终对我有用的代码 使用没有
  • 国际天气 API (PHP) [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找最好的 免费 便宜 国际天气 PHP API 有什么建议么 看看这个答案 https sta
  • 使用 Python API 2.0.0.1 运行 Ansible Playbook

    安塞布尔版本 2 0 0 1 我现在已经四处寻找了很多 我发现的大多数文档要么不完整 要么已弃用 这篇文章适用于1 8 4版本 即 https stackoverflow com questions 27590039 running ans
  • Lua userdata:无法同时进行数组访问和方法

    我遇到了这个人的问题 Lua userdata数组访问及方法 https stackoverflow com questions 26970316 lua userdata array access and methods 其中 当我设置用
  • 在 ASP.net 中使用 NVP API 时 Paypal SetExpressCheckout 出现问题

    Hi 我正在实现 Facebook 游戏和 Paypal 快速结账支付服务之间的集成 我的网站是在 ASP net 中开发的 我使用 NVP API 进行集成 我的问题是我不断收到 10400 错误 订单总计丢失 我的代码是 Set the
  • 从 Django Rest Framework 中的令牌获取经过身份验证的用户

    我是 Django 新手 我已经成功使用 DRF 构建了一个小型 API 我的 angular js 客户端发布了用户身份验证详细信息 DRF 返回一个令牌 如下所示 token 9944b09199c62bcf9418ad846dd0e4
  • 同步和异步 API

    我正在开发一个库 它提供一些耗时的服务 我需要每个 API 有两个版本 一个用于同步函数调用 另一个用于异步 图书馆用户应决定使用哪个版本 服务结果可能对于系统继续运行 同步调用 至关重要 可能需要在不同的工作线程中完成相同的操作 因为结果
  • iOS 应用程序上的 Youtube API v3。我的 API 密钥不起作用,但其他人的密钥可以在同一应用程序上起作用。错误403

    这可能是 Google 的 Youtube 团队直接提出的问题 但我想先在这里问 以防将来也能帮助其他人 我在 iOS 应用程序上使用简单的 API 密钥 没有 OAuth 2 0 该应用程序只是从特定的播放列表 ID 返回视频 ID 列表
  • 使用 PHP 发布到 Blogger

    我在使用 PHP 的 Blogger API 时遇到问题 我需要的是能够将新的博客文章发布到我的博客帐户 我使用的代码取自 Google API 页面 http code google com intl nl apis blogger do
  • 通过 Office API 将多个 Word 文档保存为 HTML

    我有大量的Word文档需要解析 由于它们都是从同一个模板创建的 我认为最好的方法是将它们保存为 HTML 文件并解析 HTML 本身 虽然将单个 Word 文档保存为 HTML 相当容易 但我还没有找到从 Word 内部执行批量过程的方法
  • PayPal Rest API for Payments 在沙箱中返回 NULL

    我有一个 PayPal 沙盒帐户 我可以在 PHP 上使用curl 通过 api 检索令牌 但是处理测试卡只会返回 null 有人看到代码有问题吗 这是 PayPal 沙盒的已知问题吗 下面代码片段中的客户端是伪造的 但是 如前所述 使用我
  • 删除 Google Maps API Premier 使用条款/徽标/等。链接?

    删除我的集成谷歌地图 谷歌地图总理 上显示的徽标 使用条款链接是否合法 问题是 当我放大地图时 链接往往会变得更长并记录并覆盖整个网站 这非常难看 当然可以给div容器一个 overflow hidden 标志有一点帮助 但仍不令人满意 T
  • 使用 C#.net 中的私有存储库的身份验证读取 BitBucket API

    我已经尝试了几天让 BitBucket API 为我工作 但是当涉及到让它为具有身份验证的私有存储库工作时 将问题设置为私有 当它们设置为公开 无需身份验证 一切正常 代码示例如下 static void Main string args
  • 如何在WCF Rest服务中从流上传图像

    我正在尝试创建 wcf 服务 该服务将上传 pdf doc xls 图像等文件 但 pdf txt 文件正在上传并正确打开 但是当我尝试上传图像文件时 文件正在上传 但是图像不可见 OperationContract WebInvoke M
  • 使用 PHP 将表单数据发送/发布到 URL [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有一个通过 POST 提交的表单 提交表单后我捕获变量 如何连接表单数据 然后将其 POST 到 url 然后重新定向到感谢页面 这不是确
  • API Gateway POST 方法在测试期间工作,但不适用于邮递员

    我会尽力清楚地解释我的问题 我有一个 API 它使用 Node js 编写的 lambda 函数在 DynamoDB 中编写一些内容 当我在 AWS 控制台中调用它时 API 按预期工作 我发送这样的正文 user id 4dz545zd
  • 无法在 Angular 10 中的“pdf-viewer”=>“ng2-pdf-viewer”中显示 blob url

    我有一个 API 它将上传的文件作为 blob 返回 当我尝试绑定时src如果使用 blob URL 则它不会显示任何内容 但是 当我尝试绑定直接 URL 时 它可以显示 PDF 文件 这是我下面给出的代码 我的 TS 代码 downloa
  • 使用 PRAW 帮助获取 Reddit 帖子链接到的 URL

    我正在尝试使用 Praw 获取 Reddit 提交标题中链接的帖子 例如提交 http www reddit com r AdviceAnimals comments 1adu71 apparently people still need
  • PHP 版本如何匹配“API=yyyymmdd”签名/标签?

    是否有明确且可靠的来源来找出哪个 PHP 发行版本 x y z 携带 使用哪个 API yyyymmdd 签名 标签 PHP 的版本控制存储库是 PHP 版本与其 API 日期版本之间相关性的权威来源 请记住 仅主要版本PHP 的版本 例如
  • 如何在flutter项目中使用http拦截器?

    我必须向我的所有 Api 添加标头 有人告诉我为此使用 http 拦截器 但我无法理解如何做到这一点 因为我是颤振的新手 谁能帮我举个例子吗 您可以使用http 拦截器 https pub dev packages http interce

随机推荐