esp8266初级入门实用教程一之访问心知天气读取实时天气数据

adminadmin 五联赛真钱买球充值 2024-02-18 26 0

  ESP8266作为一款功能强大的的物联网模块,已经被应用到了很多实用的物联网项目中。作为一个菜鸟,本人也捣鼓这个东西很长时间了,在捣鼓这个东西的同时我也总结了一些使用经验。在此借助CSDN平台出几个教程,将这些经验分享给大家,同时也做为个人的实践经验总结。

  ESP8266的主要开发方式有三种:官方SDK(深圳乐鑫的官方库+深圳安信可的类eclipse开发环境),lua语言以及arduino的ESP8266库。楼主经常使用第一种和第三种(对lua不太熟悉),对于新手而言官方的SDK开发还是比较晦涩难懂的,教程也不是很多(B站技新课堂基于官方SDK的ESP8266视频教程比较不错,有兴趣的可以去了解),因此本esp8266初级入门实用教程还是使用arduino进行开发,需要大家配置好arduino中ESP8266的开发环境并对arduino的ESP8266库有一定的了解。(大家可以去搜单片机菜鸟博哥的教程,私以为是我看过的基于arduino的最好的ESP8266文本教程)。

  第一个实践教程当然是从大家喜闻乐见的读取网络实时天气开始,这个搞明白的话,大家基本上也就会对物联网有一个感性的认识了。实现该项目的主要步骤如下:

  (一)注册心知天气账户,申请天气数据AP免费版并记下访问私钥。

  esp8266初级入门实用教程一之访问心知天气读取实时天气数据

  打开心知天气官网后进行注册和登录。

  esp8266初级入门实用教程一之访问心知天气读取实时天气数据

  申请天气数据API免费版

  esp8266初级入门实用教程一之访问心知天气读取实时天气数据

  记下访问私钥

  完成上述三个步骤我们就拥有了读取心知天气实时天气状况的权限,注意:免费版的访问数据是有限制的,访问频次每分钟只有20次,但对于我们而言已经够用了。

  (二)了解HTTP协议,获取URL并确定最终访问格式。

  HTTP协议(超文本传输协议)是互联网上应用最为广泛的一种应用层网络协议,用作客户端和服务器之间的请求 - 响应协议,具体可参考此篇博文https://blog.csdn.net/weixin_34259559/article/details/87951549

  HTTP协议中客户端的数据请求和上传主要依靠GET请求和POST请求进行。此次教程中我们只需要向服务器进行数据的请求,所以只讲GET请求及其请求格式。

  HTTP协议中数据的请求格式包含请求行(request line)、请求头部(header)、空行和请求数据四个部分,下图给出了请求报文的一般格式:

  esp8266初级入门实用教程一之访问心知天气读取实时天气数据

  HTTP协议使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息。我们想读取心知天气的数据资源也必须知道它的URL,心知天气的文档中给我们提供了它的URL格式,如下图:

  知道了HTTP报文的格式和心知天气的URL我们就可知得到最终的访问格式,如下:

  (三)程序编写,实现ESP8266访问心知天气并读取当前实时天气。

  由于心知天气返回的是JSON字符串,需要进行数据解析,自写解析函数的话比较麻烦,这里我们使用前辈们已经为我们造好的轮子,JSON库。程序中的JSON数据解析我已经附上了B站的教程地址。

  (四)实际演示;

  esp8266初级入门实用教程一之访问心知天气读取实时天气数据

  我们可以清楚的看到ESP8266成功的读取到了当前天气数据,并通过串口打印了出来。

  (五)总结

  本次教程只是做了一个走马观花式的粗略演示(有错误也请各位指出,相互交流),无论是其中的HTTP协议还是JSON解析都可以再引出一大波知识点,这些都需要各位自己去搜索资料学习。 接下来我会更新一些ESP8266使用HTTP和MQTT协议与ONENET交互的教程(楼主作为懒癌晚期患者,就随缘吧)。

esp8266初级入门实用教程一之访问心知天气读取实时天气数据

esp8266初级入门实用教程一之访问心知天气读取实时天气数据

版权声明

本文仅代表作者观点,不代表xx立场。
本文系作者授权xx发表,未经许可,不得转载。

喜欢0发布评论

评论列表

发表评论

  • 昵称(必填)
  • 邮箱
  • 网址