打印
[STM32F1]

WIFI模块_ESP82xx常用命令整理

[复制链接]
429|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
vivilyly|  楼主 | 2024-4-19 17:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
连接wifi
1.设置wifi工作模式
发送:(AP+STATION模式)

AT+CWMODE=3
返回:

AT+CWMODE=3

OK

2.连接wifi
发送:

AT+CWJAP="XXXXX","YYYYY"
1
返回:
1.SSID或者密码错误:

WIFI DISCONNECT

busy p...
+CWJAP:4

ERROR

注意在输出 busy p… 会有一定的延时

2.成功:

WIFI CONNECTED
WIFI GOT IP

OK

3.已连接再次连接(正确的SSID和密码):

WIFI DISCONNECT
WIFI CONNECTED
WIFI GOT IP

OK

注意在DISCONNECT 后会有一定延时

3.查询本地ip地址和MAC地址
发送:

AT+CIFSR
返回:

+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"c6:4f:33:d6:45:fb"
+CIFSR:STAIP,"192.168.3.241"
+CIFSR:STAMAC,"c4:4f:33:d6:45:fb"
OK

注意一般取STAIP

4.电脑连接模块发出的wifi (可选)
后续可以搭配手机客户段,完成一些对单片机的配置。

连接后会输出mac和ip:

+STA_CONNECTED:"08:5b:d6:91:41:82"
+DIST_STA_IP:"08:5b:d6:91:41:82","192.168.4.3"
5.扫描当前可用AP
AT+CWLAP
1
返回

AT+CWLAP
+CWLAP:(3,"HUAWEI-B315-E82C",-49,"30:45:96:2f:e8:2c",7)
+CWLAP:(4,"TP_LINK",-59,"08:bd:43:c8:5f:6f",11)
。。。。

OK

6.断开wifi
AT+CWQAP
返回

WIFI DISCONNECT

OK

7.上电自动连接到AP
发送

AT+CWAUTOCONN=1
或者
AT+CWAUTOCONN=0

1.自动连接 0不连接
8.查看当前连接AP信息(信号强度)
发送

AT+CWJAP?

返回

+CWJAP:"wifi-ssid","04:40:a9:4d:a5:10",11,-62,0,0,0,0

OK

含义:

+CWJAP:<ssid>,<bssid>,<channel>,<rssi>,<pci_en>,<reconn_interval>,<listen_interval>,<scan_mode>,<pmf>
OK

9.Airkiss配网
发送

AT+CWSTARTSMART=3   //支持ESP-Touch和Airkiss智能配网
1
返回

OK
1
然后手机连接要配网的无线wifi,打开安信可公众号,选择微信配网,点击开始配置按钮,等待配网完成,再次过程中,esp芯片会输出想干信息,如下:

smartconfig type:AIRKISS
Smart get wifi info
ssid:xxxxxxxxxxx   //wifi名称
password:yyyyyyyyyyy  //wifi 密码
WIFI CONNECTED
WIFI GOT IP
smartconfig connected wifi
AT+CIPSTATUS
STATUS:2

OK

TCP 客户端
以 连接通信猫服务器为例进行测试,连接远端服务器于此相同。

通信猫测试网页为:http://tongxinmao.com/App/Detail/id/1

打开后获取端口和ip信息

1.连接服务器
发送

AT+CIPSTART="TCP","120.76.100.197",10002

返回:

失败:


ERROR

成功:

CONNECT

OK

2.发送数据
发送分两步,与ec20相同,先发配置和字节长度, 等到收到>号后再发具体的数据,超过字节长度的数据会被截断。

发送第一步(配置):

AT+CIPSEND=10

返回:

错误:

ERROR

正确:

OK

>

发送第二步(数据):

0123456789

返回:

busy p...

Recv 10 bytes

SEND OK

注意有一定的延时,可以根据 是否具有 SEND OK来判断发送是否成功。

3.接收数据
收到数据格式为:++IPD,长度:数据,比如:

+IPD,10:0123456789
1
表示收到10个字节,数据为:0123456789

MQTT 连接
1.配置参数
发送

AT+MQTTUSERCFG=<LinkID>,<scheme>,<"client_id">,<"username">,<"password">,<cert_key_ID>,<CA_ID>,<"path">
1
其中

:当前仅支持 link ID 0。


1: MQTT over TCP;
2: MQTT over TLS(不校验证书);
3: MQTT over TLS(校验 server 证书);
4: MQTT over TLS(提供 client 证书);
5: MQTT over TLS(校验 server 证书并且提供 client 证书);
6: MQTT over WebSocket(基于 TCP);
7: MQTT over WebSocket Secure(基于 TLS,不校验证书);
8: MQTT over WebSocket Secure(基于 TLS,校验 server 证书);
9: MQTT over WebSocket Secure(基于 TLS,提供 client 证书);
10: MQTT over WebSocket Secure(基于 TLS,校验 server 证书并且提供 client 证书)。
<client_id>:MQTT 客户端 ID,最大长度:256 字节。

:用户名,用于登陆 MQTT broker,最大长度:64 字节。

:密码,用于登陆 MQTT broker,最大长度:64 字节。

<cert_key_ID>:证书 ID,目前 ESP-AT 仅支持一套 cert 证书,参数为 0。

<CA_ID>:CA ID,目前 ESP-AT 仅支持一套 CA 证书,参数为 0。

:资源路径,最大长度:32 字节。

普通使用:

发送:

AT+MQTTUSERCFG=0,1,"i_am_esp_wif","username","password",0,0,""
返回:

OK

2.连接
发送:

AT+MQTTCONN=0,"你的服务器ip",1883,1
1
最后一个1 表示自动重连mqtt
返回

正确

+MQTTCONNECTED:0,1,"你的服务器ip","1883","",1

OK

错误:

+MQTTDISCONNECTED:0

ERROR

注意:有一定的时间延迟

3.订阅
发送

AT+MQTTSUB=0,"rcv_topic",1
返回

OK

当收到订阅主题的消息时:

+MQTTSUBRECV:0,"rcv_topic",195,{
    "device_addr":"868704043803038",
    "device_version":"20210106_v_1.0.12",
    "device_commond":"05",
    "device_packageno":3,
    "data":{
    "pos_speed":"?",
    "num_3_col":"?"
    }
}

包含主题、字节长度、具体数据

4.发布数据
发送第一步:

AT+MQTTPUBRAW=0,"pc_topic",10,2,0
1
返回

正确

OK
>

错误

ERROR

发送第二步(发送具体的数据):

0123456789

返回

成功

+MQTTPUB:OK

失败

+MQTTPUB:FAIL

4. 主动断开连接
AT+MQTTCLEAN=0

返回

OK
1
断开连接后发送发布订阅指令返回的都是ERROR

5.意外断开
如果mqtt被服务器主动提出,那么会收到

+MQTTDISCONNECTED:0

6.通信时间说明
一般来说,AT MQTT 命令都会在 10 秒内响应,但 AT+MQTTCONN 命令除外。例如,如果路由器不能上网,命令 AT+MQTTPUB 会在 10 秒内响应,但 AT+MQTTCONN 命令在网络环境不好的情况下,可能需要更多的时间用来重传数据包。
如果 AT+MQTTCONN 是基于 TLS 连接,每个数据包的超时时间为 10 秒,则总超时时间会根据握手数据包的数量而变得更长。
当 MQTT 连接断开时,会提示 +MQTTDISCONNECTED:<LinkID> 消息。
当 MQTT 连接建立时,会提示 +MQTTCONNECTED:<LinkID>,<scheme>,<"host">,port,<"path">,<reconnect> 消息。
HTTP 通信
主要用于OTA下载固件

1.获取url资源大小
发送:

AT+HTTPGETSIZE="http://www.fengfengiot.cn/box-wifi/output-crc_new.bin"

返回:

+HTTPGETSIZE:4755

OK

2.GET数据
发送

AT+HTTPCLIENT=2,1,"http://www.fengfengiot.cn/box-wifi/output-crc_new.bin",,,1
1
返回

+HTTPCLIENT:262,数据
+HTTPCLIENT:512,数据

...

OK

如果返回的资源数据总数大于512,那么会分多次返回,第一次先返回总数对512取余数的个数,然后再返回剩下的n个512个字节。


使用特权

评论回复
沙发
呐咯密密| | 2024-4-19 17:14 | 只看该作者
应该不完整把,感觉好少

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

71

主题

1456

帖子

0

粉丝