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指令获取天气数据
ESP8266 + STC15基于AT指令通过TCP通讯协议获取时间
求大神帮忙:ESP8266调试串口的时候,还没发AT指令,为啥一直自动接收数据,还是循环的?