ESP8266使用AT指令获取B站粉丝数和天气数据

Posted FILWY_M

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ESP8266使用AT指令获取B站粉丝数和天气数据相关的知识,希望对你有一定的参考价值。

1、什么是AT指令?

AT指令是应用于终端设备与PC应用之间的连接与通信的指令。AT 即Attention。每个AT命令行中只能包含一条AT指令;对于AT指令的发送,除AT两个字符外,最多可以接收1056个字符的长度(包括最后的空字符)。——百度百科
总之AT指令已经给我们实现了底层的部分,然后我们只需要直接发送上层的AT命令,AT指令非常简单易学,因为我们不需要去关注底层是如何实现的。

2、ESP8266的相关资料

安信可官网有相关的资料,可以自行下载查看。https://docs.ai-thinker.com/esp8266
只有里面已经烧录了AT指令的固件我们才能使用AT命令,ESP01S是出厂就烧录好了AT固件的,如果是NODE MCU则需要自行烧录AT固件,关于如何进行烧录网上已经有很多的教程。

3、使用串口助手发送向ESP8266发送AT指令

这里我们用USP-TTL模块连接ESP01S进行演示,下面是接线图。
在这里插入图片描述
在这里插入图片描述
连接好了以后插上电脑,打开串口助手,设置相关参数,端口一定要选择对,波特率设置为115200。
在这里插入图片描述

设置好之后打开串口助手进行指令发送,比如我们发送一个AT(注意每一个命令之后一定要加上换行),然后就会返回一个OK,表示设备就绪。
在这里插入图片描述

4、基本的WIFI AT指令

1、 AT+RST
     功能:重启模块

2、 AT+CWMODE=1
     功能:设置为 Station 模式(接收模式)

3、 AT+CWLAP
     功能:列出当前搜索到的所有 WiFi

4、 AT+CWJAP="Mi10","aaaaaaaa"
      功能:配置 AP 参数(指令只有在 AP 模式开启后有效)
      ssid:接入点名称
      pwd:密码

5、 AT+CIFSR
      功能: 查看本模块的 IP 地址

6、 AT+CWAUTOCONN=1			
      功能:使能上电自动连接AP

7、 AT+CIPMUX=0
      功能:设置为单路连接模式

8、 AT+CIPSTART= <type>,<addr>,<port> (单路链接模式时)
      例如:AT+CIPSTART="TCP","tianqiapi.com",80
      功能:建立 TCP 连接

9、 AT+CIPMODE=1
      功能: 设置为透传模式

10、AT+CIPSEND
       功能:开启发送不定长数据

5、查看王冰冰的粉丝数

B 站 API 接口信息

  • IP addr: api.bilibili.com

  • 端口: 80

  • API: GET /x/relation/stat?vmid=2026561407&jsonp=jsonp HTTP/1.1 Host:
    api.bilibili.com (注意这里还有一个\\r\\n)

  • 注意我们这里查看的王冰冰的粉丝数,我们打开他的B站个人页面,看到连接ULR上面的id=2026561407,想查看其他的UP主的页面,自己替换即可。

举例:获取王冰冰的粉丝数量,在步骤7之后添加发送指令
AT+CIPSTART="TCP","api.bilibili.com",80
AT+CIPMODE=1
AT+CIPSEND
GET /x/relation/stat?vmid=2026561407&jsonp=jsonp HTTP/1.1
Host: api.bilibili.com
(这里还有一个换行)

发送完相关的命令后,我们就得到了如图所示,网站返回的JSON数据
在这里插入图片描述

将得到的JSON数据进行解析,https://oktools.net/json
在这里插入图片描述

6、通过API获取天气

API 接口信息

  • IP addr: tianqiapi.com
  • 端口: 80 API: GET
  • https://tianqiapi.com/api?version=v61&appid=*****&appsecret=*****
  • 注意:其中的*****是我们要替换为自己的id和密钥,我们需要去官网注册tianqiapi.com,当然我们选择白嫖啦,使用免费接口,然后在个人页面可以看到密钥和ID了。
    在这里插入图片描述

举例:在步骤7之后添加发送指令
AT+CIPSTART="TCP","tianqiapi.com",80
AT+CIPMODE=1
AT+CIPSEND
GET https://tianqiapi.com/api?version=v61&appid=*****&appsecret=*****
或者 GET https://www.tianqiapi.com/free/day?appid=94884853&appsecret=N6dqdtkp

发送完命令之后就得到了相关的数据,
在这里插入图片描述
将返回的JSON数据进行解析。
在这里插入图片描述

8.总结

通过这次学习,发现了AT指令的强大和方面,并且易学习,上面全都是用电脑直接发送数据的, 然后我们可以用其他的控制器如51、STM32之类的,将ESP8266连接到串口,控制器通过串口发送命令到ESP8266,这样就具有了上网的功能了,后期还可以连接到mqtt服务器之类的。通过这一次的学习,也掌握了一些API方面的知识,通过一些网站提供的开放API接口, 就可以实现很多有趣的功能了。

以上是关于ESP8266使用AT指令获取B站粉丝数和天气数据的主要内容,如果未能解决你的问题,请参考以下文章

基于STM32的ESP8266天气时钟---------AT指令获取天气数据

STM32天气数据获取

ESP8266 + STC15基于AT指令通过TCP通讯协议获取时间

求大神帮忙:ESP8266调试串口的时候,还没发AT指令,为啥一直自动接收数据,还是循环的?

ESP8266|ESP8266入门教程-AT指令视频教程(基于ESP-01S/ESP8266-01S)

ESP8266ESP8266通讯使用的AT指令