欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ESP8266使用AT指令发送GET方式HTTP请求

程序员文章站 2022-03-19 16:04:23
ESP8266使用AT指令发送GET方式HTTP请求写在前面好的建议正式开始完整流程及演示效果写在前面今天开始调试ESP8266模块,想要使用它以串口AT命令的方式发送GET请求,用来上报信息给服务器端。在查找资料和实验的过程中发现网上的讲解并不是详细,东拼西凑看了几篇才走下来,在此写一个尽量“清楚明白”的文章,欢迎大家一起交流。好的建议1.建议大家现在每次都记事本上写AT命令,然后复制到串口助手上去,这样:不会误操作:有的串口助手会将回车当作发送指令,容易误动作。记录可以保留:调过AT指令的...

ESP8266使用AT指令发送GET方式HTTP请求

写在前面

今天开始调试ESP8266模块,想要使用它以串口AT命令的方式发送GET请求,用来上报信息给服务器端。在查找资料和实验的过程中发现网上的讲解并不是详细,东拼西凑看了几篇才走下来,在此写一个尽量“清楚明白”的文章,欢迎大家一起交流。

好的建议

1.建议大家现在每次都记事本上写AT命令,然后复制到串口助手上去,这样:

  1. 不会误操作:有的串口助手会将回车当作发送指令,容易误动作。
  2. 记录可以保留:调过AT指令的朋友们都知道,我们为了实现一个操作可能会做多次有顺序的AT指令,这时,保留正确的操作指令和顺序是非常重要的。

2.建议大家保留手敲\r\n的习惯,关闭串口助手的“加回车换行”的选项:
这个选项几乎所有串口助手都会带,我建议大家不要勾选,而是手敲\r\n来代替,输入了什么就发送了什么,这样十分有利于将正确的AT指令转移到单片机中,笔者曾经调GSM模块的时候,很多坑就是栽在这里了。

正式开始

以下操作均关闭”加回车换行”选项
0) 与模块试连接:(可选)
  AT\r\n
  响应:OK\r\n
可用于检验模块工作是否正常,波特率是否正确
1) 设置 wifi 模式:
  AT+CWMODE=1\r\n
  响应:OK\r\n
设置为STA模式,对应表如下:

数字 WiFi应用模式
1 STA(Station)模式
2 AP模式
3 AP+Station模式

2) 重启生效:
  AT+RST\r\n
  响应:OK\r\n
一次重启后就不需要重启了(有的模块貌似不重启也行,这个大家就看着来吧)

3) 连接路由:
  AT+CWJAP=“ssid”,“password”\r\n
  响应:OK\r\n(有的模块回的是CONNECT OK\r\n)
稍等1-2秒中,会回一个GOT IP,看到这个就正式连上路由器了。

4) 查询设备IP(可选):
  AT+CIFSR\r\n
  响应:192.168.3.106\r\n

5) 连接到服务器:
  AT+CIPSTART=“TCP”,“192.168.2.178”,8888\r\n
  响应:OK\r\n
传入协议、服务器 IP、端口号,HTTP协议是TCP协议的封装,所以这里写TCP即可。

6)开启透传模式:
  AT+CIPMODE=1\r\n
  响应:OK\r\n
7)通知模块开始数据传输:
  AT+CIPSEND\r\n
  响应:
这一步操作后,模块会回复一个“>”,代表接下来的所有串口数码均为数据,不解析成指令。

8) 发送数据:
  GET /Api/sensor_info_update?id=1&bty=30&temp=0698\r\n\r\n
  响应:服务器返回的数据
几点注意:
1.这是用我搭的服务器测试,上面的http头少写了也并没有报任何错误,貌似也没什么影响,其它博主写的完整版举例为:

GET /api/dgnjd8954 HTTP/1.1\r\n
Content-Type: application/json;charset=utf-8\r\n
Host: www.liefyuan.top\r\n
Connection: Keep Alive\r\n\r\n

2.尤其注意GET之后的空格,空格是有意义的
3.注意结尾是两个\r\n!!!
4.在这里就可以多次与服务器交互了,因为现在是透传模式。
5.有趣的是这个TCP表现的真的很像HTTP,服务器关闭再开启,8266不用进行重连操作,直接在透传界面发数据就可以了。

9)退出透传:
  +++
  响应:无
注意:这里没有\r\n了,就是发送+++就行了
10)还想再开始透传咋办:
  从步骤7执行.

完整流程及演示效果

记事本中:
ESP8266使用AT指令发送GET方式HTTP请求
串口助手中:
ESP8266使用AT指令发送GET方式HTTP请求
服务器后台:
ESP8266使用AT指令发送GET方式HTTP请求
Web前端:
ESP8266使用AT指令发送GET方式HTTP请求

本文地址:https://blog.csdn.net/whstudio123/article/details/106391099