• 没时间做获取天气的实验 三分钟! 给您看清如何通过HTTP GET请求 获取天气预报


     

     

    1. 注册心知天气账号,获取私钥

        下面这篇文章是图示讲解的,好东西,何不转载为快?

        http://www.taichi-maker.com/homepage/iot-development/iot-platform/seniverse/preparation/

     

        "GET https://api.seniverse.com/v3/weather/now.json?key=这里加上你的私钥&location=你要查询的城市中文拼音&language=zh-Hans&unit=c "

        这串字符就是你的HTTP的GET请求。

       GET请求的详细使用去新知天气的官网,这里面可以玩的花样也多的,支持最近几天的天气预报、湿度、风向风力等等,所以GET请求的复杂度也不一样。

       但是如果只查询一个城市的温度值,那么上面这个GET请求一般就够用了。这里为什么说一般够用?因为也有特例,例如全国内肯定有两个城市的名字的中文拼音是一样的,那么前面还可以加上省份的拼音的,所以,具体详情还是参考心知天气的官网( https://www.seniverse.com )最权威了。

     

    2.那么在不写代码的情况下,我们怎么来快速获取天气预报体验一下呢?

     

    方法1,笨方法 使用通信软件发送GET请求

       打开通信猫软件

       按图示1处输入和我一样的IP地址和端口号,  2处勾选好,  3处填入上述GET请求,注意,最后要空两行(敲两个回车键)! 4处点击发送, 然后就可以收到5处所示的信息了。

       我查询了杭州温度(location=hangzhou),可以看到返回的温度(temperature)是8度。 GET请求内,unit=c表示返回的单位是摄氏度。

     

    方法2,使用浏览器发送GET请求

        打开浏览器,以我当前实验为例,输入 https://api.seniverse.com/v3/weather/now.json?key=SwwwfskBjB6fHVRon&location=hangzhou&language=zh-Hans&unit=c

        就可以收到返回的天气数据了。注意,这里就不需要前缀GET 和 后缀俩空行了, 就是普通的访问网站而已,相比使用通信猫软件就方便多了。

        PS:或者,你只要鼠标左键点击上述网址就可以实时查看到杭州现在的温度了。

     

    3.写代码来获取天气预报

      我当前的实验基于ESP32,只需要简单修改ESP32的IDF内的一个Http的Demo就可以了。

      为什么只需要简单修改就可以了?因为这个功能本来就很简陋,我们刚才用浏览器获取天气预报的实验,其实就是输入了一个网址而已,然后就成事了,核心步骤就这么一步。

      所以说,基本上只要调通网络,不管是什么平台,实现这个功能都是不复杂的。

      继续正题,环境准备可以看这篇:

      ESP32的Linux开发环境搭建,将示例程序编译、下载、运行 

      https://www.cnblogs.com/happybirthdaytoyou/p/13996072.html

     

     打开该虚拟机, 将上图的http_request文件夹拷贝到下图路径内:

     

    代码修改三处,见下图:

     

    ESP32板子经过USB转TTL接入到ubuntu虚拟机内,

    然后执行make flash monitor  ,  即执行程序烧录,打开串口

    程序运行效果:

     

    PS:心知天气返回的数据是UTF-8编码的

     

     

    现在就收到了这串表示天气的字符串了,这是JSON格式的,需要解析,常见的有cJSON库。

     

    江湖很大,你我相遇在此有一定缘分,可以考虑加个QQ群聊聊人生,技术离不开生活,生活离不开聊聊。
     
     

    .

    /************* 社会的有色眼光是:博士生、研究生、本科生、车间工人; 重点大学高材生、普通院校、二流院校、野鸡大学; 年薪百万、五十万、五万; 这些都只是帽子,可以失败千百次,但我和社会都觉得,人只要成功一次,就能换一顶帽子,只是社会看不见你之前的失败的帽子。 当然,换帽子决不是最终目的,走好自己的路就行。 杭州.大话西游 *******/
  • 相关阅读:
    高级数据结构实现——自顶向下伸展树
    优先队列——二项队列(binominal queue)
    优先队列——左式堆
    近似装箱问题(两种脱机算法实现)
    近似装箱问题(三种联机算法实现)
    Instruments
    CALayer之 customizing timing of an animation
    PKCS填充方式
    使用Xcode和Instruments调试解决iOS内存泄露
    apple网址
  • 原文地址:https://www.cnblogs.com/happybirthdaytoyou/p/14086833.html
Copyright © 2020-2023  润新知