恶心我!总说我是广告!这辈子吃不上四个菜!


用心知天气获取天气信息都是老生常谈的事情了吧。基本上能看到的开源项目都是用心知的API获取的天气信息。


心知天气网站:

https://www.seniverse.com/

又不需要访问那么多次,使用免费版就好了。

访问频次:20次/分钟        对我来说足够了

直接点申请,会申请到API密钥

API 秘钥 就是所需要的 (注意:' - ' 不能去掉)


选择文档→产品文档查看调用API

下面以天气实况为例子:

 由API接口说明可以知道

//心知天气提供APIhttps://api.seniverse.com/v3/weather/now.json?key=your_api_key&location=beijing&language=zh-Hans&unit=c//修改后加入aip_key和城市名称即可构成可用APIhttps://api.seniverse.com/v3/weather/now.json?key=SKmg2uxKdER08RUk-&location=北京&language=zh-Hans&unit=c

直接将修改好的API复制到浏览器网址,可获得天气信息

此时,可直接使用GET请求数据。

源码可参考获取B站粉丝数项目来修改代码

ESP32超详细学习记录:获取B站粉丝数_喜暖知寒的博客-CSDN博客

串口输出

 可见显示多云,和JSON显示的相同。

代码

代码已经验证成功!

函数介绍可参考获取B站粉丝数,基本一样!

ESP32超详细学习记录:获取B站粉丝数_喜暖知寒的博客-CSDN博客

各位不要用我的API-KEY,自己申请哈~

我把API-KEY一改就不能获取天气了!

(已验证,可直接复制编译)

#include <WiFi.h>#include <ArduinoJson.h>
#include <HTTPClient.h>const char * ID = "NATCAP_0E35";
const char * PASSWORD = "88888888";//天气相关参数
String API = "SKmg2uxKdER08RUk-";
String WeatherURL = "";
String CITY = "北京";
String url_xinzhi = "";
String Weather = "0";long sum = 0;/* 创建实例 */HTTPClient http;String GitURL(String api,String city)
{url_xinzhi =  "https://api.seniverse.com/v3/weather/now.json?key=";url_xinzhi += api;url_xinzhi += "&location=";url_xinzhi += city;url_xinzhi += "&language=zh-Hans&unit=c";return url_xinzhi;
}void ParseWeather(String url)
{  DynamicJsonDocument doc(1024); //分配内存,动态http.begin(url);int httpGet = http.GET();if(httpGet > 0){Serial.printf("HTTPGET is %d",httpGet);if(httpGet == HTTP_CODE_OK){String json = http.getString();Serial.println(json);deserializeJson(doc, json);Weather = doc["results"][0]["now"]["text"].as<String>();  }else{Serial.printf("ERROR1!!");}}else{Serial.printf("ERROR2!!");}http.end();
}void setup()
{Serial.begin(115200);//==================wifi连接==================Serial.println("WiFi:");Serial.println(ID);Serial.println("PASSWORLD:");Serial.println(PASSWORD);WiFi.begin(ID,PASSWORD);while(WiFi.status()!=WL_CONNECTED){delay(500);Serial.println("正在连接...");}Serial.println("连接成功!");//==================wifi连接==================WeatherURL = GitURL(API,CITY); }void loop()
{Serial.println("连接成功!");ParseWeather(WeatherURL);Serial.println(Weather);Serial.print("执行次数: ");Serial.println(sum);sum ++;delay(50000);
}

心知天气天气状况获取,ESP32获取天气信息(含源码)相关推荐

  1. webbrowser抓取php网页源码,获取webbrowser控件 网页的源码(收藏)

    获取webbrowser控件 网页的源码(收藏) 翻译|其它|编辑:郝浩|2005-04-28 09:45:00.000|阅读 3152 次 概述: 我在网上找到使用rft控件保存webbrowse文 ...

  2. php蓝奏云解析源码,PHP获取蓝奏云直链解析源码

    PHP获取蓝奏云直链的源码案例 可以用来做api调用到网站做下载 调用方法: 无密码:http://www.yyob.com/lanzou/?url=https://www.lanzous.com/i ...

  3. 获取PC端微信小程序源码

    获取PC端微信小程序源码 参考文章链接 链接1 链接2 准备工具 解密工具 UnpackMiniApp.exe 下载链接 逆向工具 wxappUnpacker 下载链接1 下载链接2 整体流程 第 1 ...

  4. 企业微信推送天气、课表、纪念日、每日一句等(含源码和详细步骤)

    目录 一.引言与源码 二.企业微信的注册与配置 1.注册 2.配置 (1)加入企业 (2)开启微信插件 (3)测试是否能在微信接收消息 3.创建机器人 三.推送天气模块 (1)注册 (2)创建项目 ( ...

  5. 线上问题:stream获取值抛出空指针及源码分析

    1 场景复现 实体列表,通过stream获取数据,findFirst后,直接使用get获取数据,抛出空指针异常,复现代码如下: @Testpublic void streamGetUnsafeTest ...

  6. php 框架获取服务器,Thinkphp 框架基础之源码获取、环境要求与目录结构分析

    本文实例讲述了Thinkphp 框架基础之源码获取.环境要求与目录结构.分享给大家供大家参考,具体如下: 获取ThinkPHP 获取ThinkPHP的方式很多,官方网站(http://thinkphp ...

  7. python源码提取_Python|第一个python程序(获取音乐下载地址,附源码)

    至少我们曾经在一起过. 来自:一言 软件截图 软件说明: 刚刚开始接触python,做出一个这样的软件,很low.附上源码, 希望大佬可以指点指点,正在琢磨怎么把音乐下载下来... 软件源码 impo ...

  8. android添加购物车动画、天气应用、渐变状态栏、文件选择器等源码

    Android精选源码 支持无限轮播的广告控件,提供gif动图支持. android使用SVGAPlayer播放动画源码 Android添加购物车动画 Android 仿酷欧天气应用源码 一个Andr ...

  9. 商品详情页html代码获取,直播带货小程序源码中,商品详情页是如何获取html图片的...

    在搭建直播带货小程序源码过程中,需要为商品构建详情页,而商品页中的图片是要通过html获取并展示到本地的,那么这个过程是如何实现的?接下来小编将通过代码演示一下: 1.配置webView mWebVi ...

  10. php获取QQ音乐直链,~~~获取qq音乐外链方法+源码~~~

    本帖最后由 流风T回雪 于 2015-6-17 12:36 编辑 超链接不会去,只能把http后面的//用空格分开了,大家注意一下吧... 都有源码啦!!{:1_931:}求热心求评分 MP3接口 h ...

最新文章

  1. RecylerView为item添加点击事件
  2. 密码学摘要算法之MD5
  3. Windows Phone 7新开发工具发布
  4. 要注意页面中加载的第三方脚本
  5. Java Web整合开发(26) -- Spring概述
  6. LeetCode53:最大子序和(分治思想,Python3实现)
  7. 在 Java 中初始化 List 的五种方法
  8. 再问数据中台 - 企业数据中台的团队如何构建?绩效如何评价?
  9. ivy java_Ivy 在eclipse里的配置
  10. get请求是否 csrf认证流程_CORS和CSRF修炼宝典
  11. tcp发送方的发送速度由接收方给出的接收窗口决定_TCP协议的详解
  12. instanceof constructor Object.prototype.tostring.call ( [] )区别 数组和 对象的3中方法
  13. Netty权威指南(第2版)
  14. 【DIY小记】踏平Win10升级之坑——我们无法更新系统保留的分区
  15. ws office excel 基础公式
  16. vant/vue获取商品筛选分类接口以及替换原有的键名
  17. 隔离变压器不触电原因
  18. PIPIOJ1166PIPI的棋盘
  19. 搭建一个socks5代理 解决狗东对ip限制nolanjdc无法获取短信问题(搬运工unke原创)
  20. 【Java编程练习】司机肇事后逃跑,现场三人半瞎系列

热门文章

  1. arm mali 天梯图_2018最新CPU天梯图 2018年2月CPU性能天梯图最新版
  2. 溢出的文字用省略号表示。
  3. 【信息学奥赛】2070:【例2.13】数字对调C++)
  4. 感谢所有的幸运与不幸 --- 致我的2016
  5. android原生组件,RN原生的安卓UI组件
  6. java浪漫之心代码_浪漫桃心的Android表白程序
  7. 日志分析ELK安装日志分析系统
  8. Pull Request 的概述
  9. 亲水性小分子PEG DBCO-PEG4-酸,1416711-60-8可以进行点击化学反应
  10. 如何发布百度离线地图及二次开发API