FSC-BW256B 指令手册

介绍

[English]

描述

本设计指南适用于工程师开发 BW256B Wi-Fi SoC 模组

硬件说明

引脚图

_images/BW256B_pin_map.png

引脚描述

Pin

Pin Name

Type

Pin Descriptions

1

UART_TX

O

串口TX

2

UART_RX

I

串口RX

3

UART_CTS

I

串口流控脚(高电平流控)

4

UART_RTS

O

串口流控脚(高电平流控)

9

UART_LOG_OUT

O

模块调试串口TX

10

UART_LOG_IN

I

模块调试串口RX

11

Pwrkey

I/O

power key(软件复位脚)

12

VDD_3V3

VDD

3.3V供电

13

GND

VSS

接地

21

GND

VSS

接地

22

GND

VSS

接地

32

LED0

I/O

蓝牙已连接输出高电平

33

LED1

I/O

Wi-Fi已连接输出高电平

35

GND

VSS

接地

36

EXT_ANT

ANT

天线

硬件设计说明

  • 模组简易测试只需要连接VDD/GND/UART_RX/UART_TX即可使用

  • 编程手册只提供简单的IO口说明, 更详细的说明及注意事项请参考设计文档

  • 画完原理图后请发给飞易通进行审核, 避免蓝牙或Wi-Fi距离达不到最佳效果

硬件接口

  • GPIO

  • PWM

  • UART

  • USB 2.0

  • SPI

  • SDIO 3.0

  • I2S Master/Slave

  • Analog Input/Output

已支持蓝牙协议

  • SPP Client (Serial Port Profile)

  • SPP Server (Serial Port Profile)

  • GATT Server (Generic Attribute Profile)

已支持Wi-Fi协议

  • TCP (Transmisson Control Protocol)

  • UDP (USER Datagram Protocol)

  • HTTP (Hypertext Transfer Protocol)

  • HTTPS (Hypertext Transfer Protocol Secure)

  • MQTT (Message Queuing Telemetry Transport)

  • SSL (Secure Socket Layer)

模块默认参数

Wi-Fi默认设置

Wi-Fi Mode

STA Mode

Local AP SSID

FSC-BW256B-AP

Local AP Password

12345678

Local AP Channel

1

Local AP IP Address

192.168.1.1

蓝牙默认设置

BLE Name

FSC-BW256B-LE

BLE Mode

LE-Peripheral

SPP Name

FSC-BW256B

SPP PAIRCODE

0000

SPP COD

0x680

串口默认设置

Baudrate

921600bps

Data Bits

8

Parity

None

Stop Bits

1

指令表

规范说明

适用于整个文档

  • {} : 包括与{…}中的内容为可选项

  • << : 主机发给模组的 COMMAND

  • >> : 模组回复主机的 RESPONSE/EVENT

指令格式

AT+Command{=Param1{,Param2{,Param3…}}}<CR><LF>
  • 所有的指令以 “AT” 开始,以 <CR><LF> 结束

  • <CR> 对应 HEX 为 0x0D

  • <LF> 对应 HEX 为 0x0A

  • 如果指令带有参数,应放在 = 后面

  • 如果指令包含多项参数,应以 , 分隔

  • 如果指令有回复,回复以 <CR><LF> 开始,以 <CR><LF> 结束

Error Code

Meaning

001

Failed

002

Invalid parameter

003

Invalid state

004

Command mismatch

005

Busy

006

Command not supported

007

Profile not turned on

008

No memory

Others

Reserved for future use

Event格式

<CR><LF>+Indication{=Param1{,Param2{,Param3…}}}<CR><LF>
  • 所有的事件使用<CR><LF>开始, 使用<CR><LF>结束

  • 若事件包含参数, 参数应位于 “=” 后面

  • 若事件包含多项参数, 参数应使用 “,” 分割

Example:
手机端通过GATT协议发送”1234567890”
>> +GATTDATA=10,1234567890

通用指令

AT - 串口测试指令

Command

AT

Response

OK

Description

通过AT指令测试串口通信是否正常

Example:
<< AT
>> OK

AT+VER - 读取固件版本

Command

AT+VER

Response

+VER=Param1,Param2

Param1

模块类型

Param2

固件版本

Example:
<< AT+VER
>> +VER=FSC-BW256B,V4.4.6
>> OK

AT+BAUD - 查询/设置串口波特率

Command

AT+BAUD{=Param}

Param

2400/4800/9600/19200/38400/57600/115200/128000/
230400/256000/460800/512000/921600/1000000/1382400
2000000/3000000/3250000

Response

+BAUD=Param

Param

返回当前所设置的波特率

Example:
读取波特率
<< AT+BAUD
>> +BAUD=921600
>> OK

设置波特率
<< AT+BAUD=115200
>> OK

AT+TPMODE-查询/设置透传模式

Command

AT+TPMODE{=Param}

Param

1:开启透传模式
0:关闭透传模式

Response

+TPMODE=Param

Param

返回当前透传模式设置

Description

当透传模式开启,并建立了 TCP, GATT 等连接,模块串口将输出从远端收到的原始数据,模块串口接收到的数据也将直接发送至远端。
当透传模式关闭,任何状态下,模块串口对接收到的数据只做指令处理,模块从远端接收的数据,将从串口以指令格式输出。
Example:
读取当前透传模式设置
<< AT+TPMODE
>> +TPMODE=0
>> OK
设置为透传模式
<< AT+TPMODE=1
>> OK

AT+REBOOT-模块重启

Command

AT+REBOOT

Response

OK

Description

模块释放与远端设备的所有连接,然后重启

Example:
模块重启
<< AT+REBOOT
>> OK

AT+RESTORE-恢复出厂设置

Command

AT+RESTORE

Response

OK

Description

模块恢复到出厂设置,然后重启

Example:
恢复出厂设置
<< AT+RESTORE
>> OK

AT+STAT-查询连接状态

Command

AT+STAT

Response

+STAT=Param1, Param2, Param3, Param4, Param5, Param6, Param7,Param8

Param1

WIFI STA 模式下的连接状态

Param2

模块作为 TCP server 时的连接状态

Param3

模块作为 TCP client 时的连接状态

Param4

模块 BLE 从端的连接状态

Param5

模块 SPP 的连接状态

Param6

模块 SSL Client 的连接状态

Param7

模块 MQTT 的连接状态

Description

0: 未初始化
1 :空闲
2: 正在连接
3: 已连接
Example:查询当前模块连接状态
<< AT+STAT
>> +STAT=0,1,3,1,0,0,0
>> OK

AT+NAME - 查询/设置蓝牙BR/EDR名称

Command

AT+NAME{=Param1{,Param2}}

Param1

BR/EDR蓝牙名称(1~25 Bytes ASCII)

Param2

使能MAC地址后缀(0/1,default:0)
0: 关闭后缀
1: 开启后缀“-XXXX”(MAC地址后4Byte)

Response

+NAME=Param

Description

如果存在参数则设置蓝牙名称,否则只是读取

Example:
查询BR/EDR蓝牙名称
<< AT+NAME
>> +NAME=FSC-BW256-XXXX
>> OK

设置BR/EDR蓝牙名称,且关掉后缀
<< AT+NAME=ABC,0
>> OK

设置BR/EDR蓝牙名称为“ABC”并自动添加地址后缀
<< AT+NAME=ABC,1
>> OK

AT+LENAME - 查询/设置BLE蓝牙名称

Command

AT+LENAME{=Param1{,Param2}}

Param1

BLE蓝牙名称(1~25 Bytes ASCII)

Param2

使能MAC地址后缀(0/1,default:0)
0: 关闭后缀
1: 开启后缀“-XXXX”(MAC地址后4Byte)

Response

+LENAME=Param

Description

如果存在参数则设置蓝牙名称,否则只是读取

Example:
查询BLE蓝牙名称
<< AT+LENAME
>> +LENAME=FSC-BW256B-XXXX
>> OK

设置BLE蓝牙名称,且关掉后缀
<< AT+LENAME=ABC,0
>> OK

设置BLE蓝牙名称为“ABC”并自动添加地址后缀
<< AT+LENAME=ABC,1
>> OK

AT+DSCA - 断开WIFi或蓝牙连接

Command

AT+DSCA

Response

OK

Description

模块断开Wifi或蓝牙的连接

Example:
断开与AP的连接
<< AT+DSCA=1
>> OK
断开与BLE的连接
<< AT+DSCA=2
>> OK

SPP指令

AT+ADDR-查询蓝牙BR/EDR地址码

Command

AT+ADDR

Response

+ADDR=Param

Param

模块蓝牙BR/EDR的MAC地址(12 Bytes ASCII)

Description

蓝牙地址码只支持查询,不支持设置

Example:
<< AT+ADDR
>> +ADDR=DC0D300016F4
>> OK

AT+SPPSTAT-读SPP状态

Command

AT+SPPSTAT

Response

+SPPSTAT=Param

Param

0:未初始化
1:未连接
2:连接中
3:已连接

Description

查询SPP连接状态

AT+SPPDISC-断开SPP连接

Command

AT+SPPDISC

Response

OK

Description

断开当前与远程设备的SPP连接

AT+SPPSEND-发送 SPP 数据

Command

AT+SPPSEND=Param1,Param2

Param1

需要发送的数据长度

Param2

需要发送的数据内容

Response

OK:发送完成
ERR002:参数或格式不正确
ERR003:蓝牙未连接

Description

数据长度应小于1000

Example:
模块发送”123”
<< AT+SPPSEND=3,123
>> OK

AT+SSP-查询/修改BT配对模式

Command

AT+SSP{=Param}

Param

0:配对码模式
1:简易配对模式(默认)

Response

OK

Description

Example:
查询配对模式
<< AT+SSP
>> +SSP=0
>> OK
设置为配对码模式
<< AT+SSP=0
>> OK

AT+PIN-查询/修改BT配对码

Command

AT+PIN{=Param}

Param

配对码

Response

OK

Description

配对码默认为”0000”,数据长度不超过15位,仅在配对码模式下有效即SSP=0
Example:
查询BT配对码
<< AT+PIN
>> +PIN=0000
>> OK
设置配对码为12345678
<< AT+PIN=12345678
>> OK

AT+COD-查询/修改BT设备类型

Command

AT+COD{=Param}

Param

设备类型(16进制)

Response

OK

Description

默认打印机(0x680)
Example:
查询蓝牙设备类型
<< AT+COD
>> +COD=680
>> OK
修改蓝牙设备类型为HeadPhone(0x418)
<< AT+COD=418
>> OK

BLE指令

AT+LEADDR-查询蓝牙BLE地址码

Command

AT+LEADDR

Response

+LEADDR=Param

Param

模块的BLE蓝牙MAC地址(12 Bytes ASCII)

Description

蓝牙地址码只支持查询,不支持设置

Example:
<< AT+LEADDR
>> +LEADDR=DD0D300016F4
>> OK

AT+GATTSEND-发送 BLE 数据

Command

AT+GATTSEND=Param1,Param2

Param1

需要发送的数据长度

Param2

需要发送的数据内容

Response

OK: 发送完成
ERR002:参数或格式不正确
ERR003:蓝牙未连接

Description

数据长度应小于1000

Example:
从端发送”123”给蓝牙主端
<< AT+GATTSEND=3,123
>> OK

AT+GATTSTAT-查询BLE连接状态

Command

AT+GATTSTAT

Response

+GATTSTAT=Param

Param

0:未初始化
1:未连接
2:连接中
3:已连接

Description

Example:
查询BLE连接状态
<< AT+GATTSTAT
>> +GATTSTAT=3
>> OK

AT+ADVDATA-查询/修改BLE广播数据

Command

AT+ADVDATA=Param

Param

BLE广播内容

Response

OK: 设置完成
ERR002:参数或格式不正确

Description

数据长度应小于31字节

Example:
修改BLE广播数据
<< AT+ADVDATA=1234
>> OK
查询BLE广播数据,返回为16进制
<< AT+ADVDATA
>> +ADVDATA=31323334
>> OK

AT+ADVCLR-恢复默认BLE广播数据

Command

AT+ADVCLR

Response

OK: 设置完成

Description

Example:
恢复默认BLE广播数据
<< AT+ADVCLR
>> OK

Wi-Fi指令

AT+ROLE-查询/设置 Wi-Fi 模式

Command

AT+ROLE{=Param}

Param

1: STA 模式
2: AP 模式

Response

+ROLE=Param

Description

设置完成后模块会自动重启

Example:
查询Wi-Fi模式
<< AT+ROLE
>> +MODE=1
>> OK
Example:
设置Wi-Fi模式为AP模式
<< AT+ROLE=2
>> OK

AT+SCAN-扫描周围设备

Command

AT+SCAN=5(扫描周围热点)

Response

+SCAN=Param1,Param2,Param3,Param4,Param5,Param6

Param1

扫描序号

Param2

固定值 5,代表扫描热点

Param3

热点的地址码

Param4

模块与热点之间的信号值

Param5

信道

Param6

热点名称

Description

Example:
扫描周围热点
<< AT+SCAN=5
>> +SCAN=1,5,F0B4292428F0,-42,11,Feasycom_D710_2.4G
>> +SCAN=2,5,F0B4292428F1,-44,153,Feasycom_D710_5G
>> +SCAN=3,5,98BB991F6B45,-48,13,GOCLOUD_1F6B46

AT+RAP-连接热点

Command

AT+RAP=<Param1>,<Param2>,<Param3>

Param1

热点的名称

Param2

热点的密码

Param2

指定加密方式

Response

OK

Description

1. 需在STA模式或共存模式下发送该指令,即+ROLE=1 或 3
2. 模块默认以 WPA/WPA2/WPA3 Personal的加密方式连接热点
3. 若需要连接加密方式为 OPEN 的热点,只设置第一个参数即可,如
AT+RAP=Feasycom
4. 发送 AT+RAP,可查询设置的热点名称
4. 如需连接WEP加密方式的热点,需要设置第三个参数为WEP
Example:
连接名为test,密码为12345678的热点
<< AT+RAP=test,12345678
>> OK
查询当前已设置热点
<< AT+RAP
>> +RAP=test,12345678
>> OK
连接名为test,无密码的热点
<< AT+RAP=test
>> OK
连接名为test,密码为123456789abcd,WEP加密方式的热点
<< AT+RAP=test,123456789abcd,WEP
>> OK

AT+CAP-清除热点信息

Command

AT+CAP

Response

OK

Description

只会清除当前连接热点信息,不会主动断开连接,下次重启不会再连接
Example:
<< AT+CAP
>> OK

AT+LIP-查询模块 IP 地址

Command

AT+LIP

Response

+LIP=Param

Param

IP 地址

Description

当模块成功连上热点后,会获取到一个 IP 地址,否则返回”0.0.0.0”

Example
查询当前模块IP地址
<< AT+LIP
<< +LIP=192.168.1.100
>> OK

AT+MDNSEN - 查询/设置MDNS功能

Command

AT+MDNSEN{=Param}

Param

0:关闭MDNS功能(default)
1:开启MDNS功能

Response

+MDNSEN=Param

Example:
查询MDNS开关
<< AT+MDNSEN
>> +MDNSEN=0
>> OK
打开MDNS功能
<< AT+MDNSEN=1
>> OK

AT+DHCP - 查询/设置DHCP模式

Command

AT+DHCP{=Param}

Param

0:使用静态IP
1:使用动态IP(default)

Response

+DHCP=Param

Description

使用静态IP进行连接时,需设置并保证静态IP、掩码、网关、DNS设置正确,否则网络通信可能存在问题

Example:
查询DHCP模式
<< AT+DHCP
>> +DHCP=1
>> OK
设置为静态IP模式
<< AT+DHCP=0
>> OK

AT+SIP - 查询/设置静态IP

Command

AT+SIP{=Param}

Param

IPV4地址

Response

+SIP=Param

Description

只在静态IP模式下生效,即+DHCP=0

Example:
查询设置的静态IP地址
<< AT+SIP
>> +SIP=0.0.0.0
>> OK
设置静态IP为192.168.0.23
<< AT+SIP=192.168.0.23
>> OK

AT+GW - 查询/设置网关

Command

AT+GW{=Param}

Param

IPV4地址

Response

+GW=Param

Description

只在静态IP模式下生效,即+DHCP=0

Example:
查询设置的网关地址
<< AT+GW
>> +GW=192.168.1.1
>> OK
设置网关地址为192.168.10.1
<< AT+GW=192.168.10.1
>> OK

AT+MASK - 查询/设置子网掩码

Command

AT+MASK{=Param}

Param

IPV4地址

Response

+MASK=Param

Description

只在静态IP模式下生效,即+DHCP=0

Example:
查询设置的子网掩码
<< AT+MASK
>> +MASK=255.255.0.0
>> OK
设置子网掩码为255.255.255.0
<< AT+MASK=255.255.255.0
>> OK

AT+DNS - 查询/设置DNS地址

Command

AT+DNS{=Param}

Param

IPV4地址

Response

+DNS=Param

Description

只在静态IP模式下生效,即+DHCP=0,如果DNS不匹配将无法访问外网

Example:
查询设置的DNS
<< AT+DNS
>> +DNS=0.0.0.0
>> OK
设置DNS为8.8.8.8
<< AT+DNS=8.8.8.8
>> OK

AT+LHNAME - 查询/设置模块STA设备名

Command

AT+LHNAME{=Param}

Param

设备名(不大于32字节)

Response

+LHNAME=Param

Description

默认为FSC-BW256

Example:
查询模块STA设备名
<< AT+LHNAME
>> +LHNAME=FSC-BW256
>> OK
设置STA和设备名为my_test
<< AT+LHNAME=my_test
>> OK

AT+APAC - 查询/设置上电自动连接热点

Command

AT+APAC{=Param}

Param

0:关闭上电自动连接热点
1:开启上电自动连接热点(default)

Response

+APAC=Param

Description

该指令在STA模式或STA+AP共存模式下生效,即+ROLE=1或3

Example:
查询上电自动连接热点
<< AT+APAC
>> +APAC=1
>> OK
设置上电自动连接热点
<< AT+APAC=1
>> OK

AT+RSSI - 查询与热点之间的信号强度

Command

AT+RSSI

Response

+RSSI=Param

Param

RSSI value (-99 ~ 0)

Description

未连接热点时,RSSI的查询结果为0

Example:
查询RSSI
<< AT+RSSI
>> +RSSI=-56
>> OK

AT+MAC - 查询模块Wi-Fi MAC地址

Command

AT+MAC

Response

+MAC=Param

Param

模块的Wi-Fi MAC地址(12 Bytes ASCII)

Description

MAC地址只支持查询, 不支持设置

Example:
<< AT+MAC
>> +MAC=DC0D30800204
>> OK

AT+APINFO - 查询模块已连接热点的信息

Command

AT+APINFO

Response

+APINFO=Param1,Param2,Param3,Param4

Param1

热点MAC地址(12 Bytes ASCII)

Param2

0表示2.4G, 1表示5G

Param3

热点的频段

Param4

热点的SSID

Description

只在已连接热点的情况下才能查询

Example:
<< AT+APINFO
>> +APINFO=B4F02429F128,1,5765,Feasycom_D710_5G
>> OK

AT+LAP - 查询/设置AP模式参数

Command

AT+LAP{=Param1,Param2,Param3}

Param1

模块作为热点时的名称

Param2

模块作为热点时的密码

Param3

模块作为热点时的IP

Response

+LAP=Param1, Param2, Param3

Description

若要将模块配置成 OPEN 加密方式的热点, 则第二个参数可以不用设置, 如AT+LAP=FSC-BW256-AP,192.168.1.1

Example:
查询AP模式参数
<< AT+LAP
>> +LAP=FSC-BW256-AP,12345678,192.168.1.1
>> OK
设置AP模式参数
<< AT+LAP=test,12345678,192.168.10.1
>> OK

AT+CHANNEL - 查询/设置AP模式信道

Command

AT+CHANNEL{=Param}

Param

模块作为AP模式时的信道

Response

+CHANNEL=Param

Description

模块将根据信道选择决定开启2.4G还是5G热点

Example:
查询AP模式信道
<< AT+CHANNEL
>> +CHANNEL=1
>> OK
设置AP模式信道
<< AT+CHANNEL=157
>> OK

AT+WLANC - 启动SOCKET/MQTT/WEBSOCKET

Command

AT+WLANC=Param

Param

3:启动TCP/UDP/SSL等
4:连接MQTT或云平台
5:启动WEBSOCKET

Response

OK

Description

需要在SOCKET连接或者MQTT连接参数都正确设置后再发此条指令

TCP/UDP指令

AT+SOCK - 查询和设置SOCKET

Command

AT+SOCK{=Param1,Param2,Param3,Param4}

Param1

协议类型(TCPS,TCPC,UDP,SSL)

Param2

模块端口号

Param3

远端地址

Param4

远端端口号

Response

+SOCK=Param1, Param2, Param3, Param4

Decription

模块上电后默认开启TCP SERVER, 默认端口9100
将模块设置成 TCP server 时,Param3 和 Param4 可以缺省
将模块设置成 UDP 时,Param3 和 Param4 可以缺省
Example:
查询SOCK设置
<< AT+SOCK
>> +SOCK=TCPS,9100,0.0.0.0,0
>> OK
设置模块作为TCP Server, 端口8080
<< AT+SOCK=TCPS,8080
>> OK
设置模块作为TCP client, 端口8080,连接远端服务器192.168.0.224,端口6000
<< AT+SOCK=TCPC,8080,192.168.0.224,6000
>> OK
开启模块UDP功能,端口4000
<< AT+SOCK=UDP,4000
>> OK
开启模块SSL client功能,模块端口9100,连接httpbin.org测试
<< AT+SOCK=SSL,9100,httpbin.org,443
>> OK

AT+MAXCON - 查询和设置TCP Server模式下允许连接的最大Client数

Command

AT+MAXCON=Param

Param

允许连接的最大Client数(默认3,范围1~6)

Response

OK

Description

此条指令设置影响AT+WFSEND发送的ID设置和+WFDATA返回时的ID
Example:
设置最大连接数为3
<< AT+MAXCON=3
>> OK
查询TCP server的最大连接数
<< AT+MAXCON
>> MAXCON=3
>> OK

AT+WFSEND - 发送SOCKET数据给远端设备

Command

AT+WFSEND=Param1,Param2,Param3

Param1

TCP/UDP连接的ID

Param2

发送数据长度

Param3

发送数据内容

Response

OK

Description

指令整体长度不超过2k字节
模块作为 TCP server 时,默认最多可以被 3 个远端 client 连接,则 3路连接的 ID 号分别为 0, 1, 2;
模块作为 TCP client 时,通信的 ID 号默认为3,具体为AT+MAXCON设置的值;
模块开启 UDP 时,通信的 ID 号默认为4,具体为AT+MAXCON设置的值+1。
Example:
给TCP Client发送数据
<< AT+WFSEND=0,3,123
>> OK
给TCP Server发送数据
<< AT+WFSEND=3,3,123
>> OK
给UDP发送数据
<< AT+WFSEND=4,3,123
>> OK

AT+SSLSEND - 发送SSL数据给远端服务器

Command

AT+SSLSEND=Param1,Param2

Param1

发送数据长度

Param2

发送数据内容

Response

OK

Description

指令整体长度不超过2k字节
Example:
连接httpbin.org后,通过GET方式获取数据
<< AT+SSLSEND=40,GET /get HTTP/1.1\r\nHost: httpbin.org\r\n\r\n
>> (返回网页内容)

AT+CLOSE - 断开TCP Client与服务器的连接

Command

AT+CLOSE

Response

OK

Description

模块作为TCP Client模式与服务器连接时, 可通过此条指令断开与服务器的连接

Example:
<< AT+CLOSE
>> OK

AT+IDLETO - 查询/设置TCP Server短连接无数据自动断开时间

Command

AT+IDLETO{=Param}

Param1

短连接无数据自动断开的时间(单位s,默认为0,即长连接)

Response

OK

Description

Example:
查询模块短连接无数据自动断开时间
<< AT+IDLETO
>> +IDLETO=0
>> OK
设置模块短连接无数据自动断开时间为5秒
<< AT+IDLETO=5
>> OK

AT+BRDDATA - 查询/设置UDP广播数据

Command

AT+BRDDATA{=Param1,Param2,Param3}

Param1

UDP广播端口

Param2

UDP广播间隔(单位s)

Param3

UDP广播内容(128字节以内)

Response

OK

Description

Example:
查询UDP广播数据
<< AT+BRDDATA
>> +BRDDATA=6000,5,
>> OK
设置模块短连接无数据自动断开时间为5秒
<< AT+BRDDATA=6000,5,hello world
>> OK

AT+BRDEN - 查询/设置UDP广播开关

Command

AT+BRDEN{=Param}

Param

0:关闭UDP广播, 1:打开UDP广播

Response

OK

Description

Example:
查询UDP广播开关
<< AT+BRDEN
>> +BRDEN=0
>> OK
打开UDP广播
<< AT+BRDEN=1
>> OK

HTTP指令

AT+HTTP - 访问HTTP服务器

Command

AT+HTTP=Param1,Param2,Param3{,Param4}

Param1

HTTP请求方法, 目前只支持GET和POST

Param2

HTTP服务服务器地址

Param3

HTTP访问目录

Param4

断点续传支持,可缺省,格式为Range:bytes=起始字节-终止字节

Response

OK

Description

AT+HTTP用于访问HTTP服务器. 如果需要访问HTTPS服务器, 请用AT+HTTPS指令替代
HTTP服务器默认访问端口为80, 如果需要修改访问端口, 请在服务器地址后面跟:指定端口, 例如指定端口为778, 则可以用192.168.0.179:778
Example:
访问百度,读取全部数据
<< AT+HTTP=GET,www.baidu.com,/
>> OK
>> {具体数据}
访问百度,读取第3-10字节数据
<< AT+HTTP=GET,www.baidu.com,/,Range:bytes=3-10
>> OK
>> {具体数据}
访问内部HTTP服务器,下载OTA目录下test.bin文件, 指定端口为778
<< AT+HTTP=GET,192.168.0.179:778,/OTA/test.bin
>> OK
>> {具体数据}
POST param1=test_data1&param2=test_data2 到httpbin.org/post
<< AT+HTTP=POST,httpbin.org,/post,param1=test_data1&param2=test_data2
>> OK
>> {返回数据}

Note

  • 用户可用httpbin.org 进行测试

HTTPS指令

AT+HTTPS - 访问HTTPS服务器

Command

AT+HTTP=Param1,Param2,Param3{,Param4}

Param1

HTTPS请求方法, 目前只支持GET和POST

Param2

HTTPS服务服务器地址

Param3

HTTPS访问目录

Param4

断点续传支持,可缺省,格式为Range:bytes=起始字节-终止字节

Response

OK

Description

HTTPS服务器默认访问端口为443,如果需要修改访问端口, 请在服务器地址后面跟:指定端口, 例如指定端口为778, 则可以用192.168.0.179:778
Example:
访问百度,读取全部数据
<< AT+HTTPS=GET,www.baidu.com,/
>> OK
>> {具体数据}
访问百度,读取第3-10字节数据
<< AT+HTTPS=GET,www.baidu.com,/,Range:bytes=3-10
>> OK
>> {具体数据}
访问内部HTTPS服务器,下载OTA目录下test.bin文件, 指定端口为778
<< AT+HTTPS=GET,192.168.0.179:778,/OTA/test.bin
>> OK
>> {具体数据}
POST param1=test_data1&param2=test_data2 到httpbin.org/post
<< AT+HTTPS=POST,httpbin.org,/post,param1=test_data1&param2=test_data2
>> OK
>> {返回数据}

Note

  • 用户可用httpbin.org 进行测试

MQTT指令

AT+BROKER - 查询/设置MQTT broker地址

Command

AT+BROKER{=Param}

Param

MQTT服务器地址

Response

+BROKER=Param

Description

用户可用gpssensor.ddns.net 进行测试

Example:
查询MQTT broker地址
<< AT+BROKER
>> +BROKER=gpssensor.ddns.net
>> OK
设置MQTT broker地址
<< AT+BROKER=gpssensor.ddns.net
>> OK

AT+CLIENTID -查询/设置 MQTT client ID

Command

AT+CLIENTID{=Param}

Param

MQTT Client ID

Response

+CLIENTID=Param

Example:
查询MQTT Client ID
<< AT+CLIENTID
>> +CLIENTID=user
>> OK
设置MQTT Client ID
<< AT+CLIENTID=447a74ab3e60494e8c97dad36b00399b
>> OK

AT+USERNAME - 查询/设置MQTT USERNAME

Command

AT+USERNAME{=Param}

Param

MQTT USERNAME

Response

+USERNAME=Param

Example:
查询MQTT USERNAME
<< AT+USERNAME
>> +USERNAME=admin
>> OK
设置MQTT USERNAME
<< AT+USERNAME=admin
>> OK

AT+MQTTPWD - 查询/设置MQTT password

Command

AT+MQTTPWD{=Param}

Param

MQTT Password

Response

+MQTTPWD=Param

Example:
查询MQTT MQTTPWD
<< AT+MQTTPWD
>> +MQTTPWD=12345678
>> OK
设置MQTT Password
<< AT+MQTTPWD=12345678
>> OK

AT+SUBTPC - 查询/订阅 MQTT主题

Command

AT+SUBTPC{=Param1,Param2}

Param1

Topic

Param2

QOS值, 只能为0,1或者2

Response

+SUBTPC=Param1,Param2

Example:
查询MQTT TOPIC
<< AT+SUBTPC
>> +SUBTPC=/fsc/bw256/get,0
>> OK
设置MQTT TOPIC
<< AT+SUBTPC=/fsc/bw256/test,2
>> OK

Note

  • 重复订阅同名TOPIC,指令会返回错误

  • 当前最大支持订阅5个不同Topic,如不满足使用需求,在实际使用中建议用户先搭配通配符使用

AT+UNSUBTPC - 取消订阅 MQTT主题

Command

AT+UNSUBTPC=Param

Param

指定需要取消订阅的Topic

Response

OK

Description

取消订阅主题不需要指定QOS值

Example:
<< AT+UNSUBTPC=/fsc/bw256/get
>> OK

AT+UNSUBALL - 取消订阅全部MQTT主题

Command

AT+UNSUBALL

Response

OK

Example:
<< AT+UNSUBALL
>> OK

AT+MQTTSEND - 发送MQTT数据

Command

AT+MQTTSEND=Param1,Param2,Param3,Param4

Param1

发布主题

Param2

QOS(0,1,2)

Param3

数据长度

Param4

数据内容

Response

OK

Example:
<< AT+MQTTSEND=fsc/bw256/get,0,3,abc
>> OK

AT+MQTTMODE - 查询/设置MQTT模式

Command

AT+MQTTMODE{=Param}

Param

0: 连接普通MQTT服务器(默认)
1: 连接阿里云平台
2: 连接腾讯云平台

Response

OK

Description

通过切换不同的模式, 模块以MQTT的方式连接不同的云平台

Example:
<< AT+MQTTMODE
>> +MQTTMODE=0
>> OK

AT+MQTTPORT - 查询/设置 MQTT端口

Command

AT+MQTTPORT{=Param}

Param

MQTT端口值, 默认为1883

Response

+MQTTPORT=Param

Descrirtion

需要根据服务器实际端口来设置

Example:
查询MQTT端口
<< AT+MQTTPORT
>> +MQTTPORT=1883
>> OK
设置MQTT端口为8883
<< AT+MQTTPORT=8883
>> OK

AT+MQTTKAI - 查询/设置 MQTT保活心跳时间

Command

AT+MQTTKAI{=Param}

Param

MQTT保活时间, 单位为秒, 默认为60秒

Response

+MQTTKAI=Param

Example:
查询MQTT保活时间
<< AT+MQTTKAI
>> +MQTTKAI=60
>> OK
设置MQTT保活时间为300s
<< AT+MQTTKAI=300
>> OK

Note

  • 请根据实际平台的使用限制来设置, 常见平台如阿里云的MQTT保活时间要求为30秒~1200秒

  • 当设备意外断开连接超过{保活心跳时间*1.5}时,服务器会自动断开连接

固件升级(远程OTA)

AT+OTA - 远程OTA

Command

AT+OTA=Param

Param

需要升级的固件名

Response

OK

Description

固件名由工程或技术支持人员提供,升级成功后模块会返回$OTA=1

Example:
<< AT+OTA=Feasycom_V426
>> OK
>> $OTA=1

Note

  • 升级过程中不要操作其它指令或者功能,不然可能会导致升级失败或者意外的情况

Events表

MQTT指示

+MQTTSTAT - MQTT状态

Format

+MQTTSTAT=Param

Param

(0) 未初始化
(1) 未连接
(2) 连接中
(3) 已连接

+MQTTDATA - MQTT接收数据

Format

+MQTTDATA=Param1,Param2,Param3

Param1

Topic

Param2

Payload length

Param3

Payload

Example: 通过MQTT从服务器接收到数据”1234567890”
>> +MQTTDATA=/fsc/bw256/get,10,1234567890

SSL指示

+SSLDATA - SSL接收数据

Format

+SSLDATA=Param1,Param2

Param1

Payload length

Param2

Payload

Example: 通过SSL Client从服务器接收到数据”1234567890”
>> +SSLDATA=10,1234567890

STA模式连接状态指示

+WLANSTAT - STA模式连接状态

Format

+WLANSTAT=Param

Param

(0) 未初始化
(1) 未连接
(2) 连接中
(3) 已连接
Example: STA连接WiFi成功
>> +WLANSTAT=3

SOCKET指示

+WFDATA - SOCKET接收数据

Format

+WFDATA=Param1,Param2,Param3

Param1

TCP/UDP连接的ID

Param2

Payload length

Param3

Payload

Example: 通过SOCKET从服务器接收到数据”1234567890”
>> +WFDATA=5,10,1234567890

Note

  • 连接ID的具体说明查看AT+WFSEND指令

GATT指示

+GATTSTAT - GATT状态

Format

+GATTSTAT=Param

Param

(0) 未初始化
(1) 未连接
(2) 连接中
(3) 已连接

+GATTDATA - GATT接收数据

Format

+GATTDATA=Param1,Param2

Param1

Payload length

Param2

Payload

Example: 通过GATT从远端设备接收到数据“ 1234567890”
>> +GATTDATA=10,1234567890

SPP指示

+SPPSTAT - SPP状态

Format

+SPPSTAT=Param

Param

(0) 未初始化
(1) 未连接
(2) 连接中
(3) 已连接

+SPPDATA - SPP接收数据

Format

+SPPDATA=Param1,Param2

Param1

Payload length

Param2

Payload

Example: 通过SPP从远端设备接收到数据“ 1234567890”
>> +SPPDATA=10,1234567890

应用场景

TCP server 应用

@startuml
hide footbox
skinparam sequenceMessageAlign center

box  #LightBlue
actor “ ” as person
participant “USER MCU” as mcu
participant MODULE as module
participant " " as nu
participant "TCP Client" as client
end box

person ->> mcu: 开    始    操    作
mcu -> module: AT+ROLE=1
note left
    切换到STA模式
end note
module --> mcu: OK
mcu -> module: AT+RAP=SSID,PASSWORD
note left
    连接热点
end note
module --> mcu: OK
group LOOP查询直到获取到IP地址
mcu -> module: AT+LIP
note left
    查询模块IP地址
end note
module --> mcu: +LIP=0.0.0.0
note right
    没有连上热点
end note
end
module --> mcu: +LIP=192.168.0.97
note right
    连上热点
end note
mcu --> module: AT+SOCK=TCPS,9100
note left
    将模块设置
    成TCP Server
end note
module --> mcu: OK
mcu --> module: AT+WLANC=3
note left
    模块启动TCP Server
end note
module --> mcu: OK

client -> nu: 客户端发起连接
nu -> module: 模块被连接
client -> nu: 客户端发数\n据:1234567890
module --> mcu: +WFDATA=0,10,1234567890
note right
    模块将接收到
    的数据输出
end note
mcu --> module: AT+WFSEND=0,3,abc
note left
    模块发数据给远端
end note
module --> mcu: OK
nu -> client: abc
@enduml

1. 设置 Wi-Fi 模式,如果已经处于当前模式可跳过此步骤
发送:<<AT+ROLE=1
响应:>> OK
2、连接热点
发送:<< AT+RAP=ssid,password
响应: > OK
3. 查询模块 IP 地址:
发送:<< AT+LIP
响应:>> +LIP=192.168.0.97
>> OK
4、将模块设置成 TCP server,端口号为 9100
发送:<< AT+SOCK=TCPS,9100
响应:>> OK
5、模块创建 TCP server
发送:<< AT+WLANC=3
响应:>> OK
6、PC 与模块连接同一个热点,在 PC 上使用网络调试工具,作为 TCP client 连
接模块
_images/example1.png
7、接收数据
<< +WFDATA=0,10,1234567890
<< +WFDATA=1,10,1234567890
<< +WFDATA=2,10,1234567890
8、发送数据
发送:<< AT+WFSEND=0,3,abc
响应:<< OK

Note

  • 说明:若要使用数据透传,在设置 Wi-Fi 模式前发送 AT+TPMODE=1 即可。

TCP Client应用

@startuml
hide footbox
skinparam sequenceMessageAlign center

box  #LightBlue
actor “ ” as person
participant “USER MCU” as mcu
participant MODULE as module
participant " " as nu
participant "TCP Server" as server
end box

person ->> mcu: 开    始    操    作
mcu -> module: AT+ROLE=1
note left
    切换到STA模式
end note
module --> mcu: OK
mcu -> module: AT+RAP=SSID,PASSWORD
note left
    连接热点
end note
module --> mcu: OK
group LOOP查询直到获取到IP地址
mcu -> module: AT+LIP
note left
    查询模块IP地址
end note
module --> mcu: +LIP=0.0.0.0
note right
    没有连上热点
end note
end
module --> mcu: +LIP=192.168.0.97
note right
    连上热点
end note
mcu -> module: AT+SOCK=TCPC,9100,192,168.0.100,6000
note left
    将模块设置
    成TCP Client
end note
module --> mcu: OK
mcu -> module: AT+WLANC=3
note left
    模块启动TCP Client
end note
module --> mcu: OK

module-> nu: 模块发起连接
server -> nu: 模块已经连接
server -> nu: 服务端发数据
module --> mcu: +WFDATA=3,10,1234567890
note right
    模块将接收到
    的数据输出
end note
mcu -> module: AT+WFSEND=3,3,abc
note left
    模块发数据给远端
end note
module --> mcu: OK
nu -> server: abc
@enduml

1. 设置 Wi-Fi 模式,如果已经处于当前模式可跳过此步骤
发送:<< AT+ROLE=1
响应:>> OK
2、连接热点
发送:<< AT+RAP=ssid,password
响应:>> OK
3、查询模块 IP 地址
发送:<< AT+LIP
响应:>> +LIP=192.168.0.97
>> OK
4、PC 与模块连接同一个热点,在 PC 上使用网络调试工具,创建一个 TCP
server, 如,IP 为 192.168.0.79,端口号为:8080
5、将模块设置成 TCP client,并配置远端 IP 和端口号
发送:<< AT+SOCK=TCPC,9100,192.168.0.79,8080
响应:>> OK
6、模块作为 TCP client 对远端发起连接
发送:<< AT+WLANC=3
响应:>> OK
_images/example2.png
7、接收数据
发送:<< +WFDATA=3,10,1234567890
响应:<< OK

Note

  • 说明:若要使用数据透传,在设置 Wi-Fi 模式前发送 AT+TPMODE=1 即可。

UDP应用

@startuml
hide footbox
skinparam sequenceMessageAlign center

box  #LightBlue
actor “ ” as person
participant “USER MCU” as mcu
participant MODULE as module
participant " " as nu
participant "UDP" as udp
end box
person ->> mcu: 开    始    操    作
mcu -> module: AT+ROLE=1
note left
    切换到STA模式
end note
module --> mcu: OK
mcu -> module: AT+RAP=SSID,PASSWORD
note left
    连接热点
end note
module --> mcu: OK
group LOOP查询直到获取到IP地址
mcu -> module: AT+LIP
note left
    查询模块IP地址
end note
module --> mcu: +LIP=0.0.0.0
note right
    没有连上热点
end note
end
module --> mcu: +LIP=192.168.0.97
note right
    若连上热点
end note
mcu -> module: AT+SOCK=UDP,4000
note left
    将模块设置
    成UDP
end note
module --> mcu: OK
mcu -> module: AT+WLANC=3
note left
    模块启动UDP
end note
module --> mcu: OK

udp -> nu: 远端发起连接
nu -> module: 模块被连接
udp -> nu: 远端发数据\n:1234567890
module --> mcu: +WFDATA=4,10,1234567890
note right
    模块将接收到
    的数据输出
end note
mcu -> module: AT+WFSEND=4,3,abc
note left
    模块发数据给远端
end note
module --> mcu: OK
nu -> udp: abc
@enduml

1. 设置 Wi-Fi 模式,如果已经处于当前模式可跳过此步骤
发送:<< AT+ROLE=1
响应:>> OK
2、连接热点
发送:<< AT+RAP=ssid,password
响应:>> OK
3、查询模块 IP 地址
发送:<< AT+LIP
响应:>> +LIP=192.168.0.97 >> OK
4、将模块配置为UDP
发送:<< AT+SOCK=UDP,4000
响应:>> OK
5、模块开启 UDP Server
发送:<< AT+WLANC=3
响应:>> OK
6.PC 与模块连接同一个热点,在 PC 上使用网络调试工具,开启一个 UDP
Client,目标 IP 192.168.0.97,目标端口号 4000。
7、接收数据
<< +WFDATA=4,10,1234567890
8. 发送数据
发送:<< AT+WFSEND=4,3,abc
响应:<< OK

Note

  • 若要使用数据透传,在设置 Wi-Fi 模式前发送 AT+TPMODE=1 即可。

SSL Client应用

@startuml
hide footbox
skinparam sequenceMessageAlign center

box  #LightBlue
actor “ ” as person
participant “USER MCU” as mcu
participant MODULE as module
participant " " as nu
participant "SSL Server" as server
end box

person ->> mcu: 开    始    操    作
mcu -> module: AT+ROLE=1
note left
    切换到STA模式
end note
module --> mcu: OK
mcu -> module: AT+RAP=SSID,PASSWORD
note left
    连接热点
end note
module --> mcu: OK
group LOOP查询直到获取到IP地址
mcu -> module: AT+LIP
note left
    查询模块IP地址
end note
module --> mcu: +LIP=0.0.0.0
note right
    没有连上热点
end note
end
module --> mcu: +LIP=192.168.0.97
note right
    连上热点
end note
mcu -> module: AT+SOCK=SSL,9100,httpbin.org,443
note left
    将模块设置
    成SSL Client
end note
module --> mcu: OK
mcu -> module: AT+WLANC=3
note left
    模块启动SSL Client
end note
module --> mcu: OK

module-> nu: 模块发起连接
server -> nu: 模块已经连接
mcu -> module: AT+SSLSEND=40,GET /get HTTP/1.1\\r\\n\nHost: httpbin.org\\r\\n\\r\\n
note left
    发送GET请求
end note
module --> nu: 模块发起HTTPS请求
server -> nu: 服务端应答
note right
    模块将接收到
    的数据输出
end note
@enduml

1. 设置 Wi-Fi 模式,如果已经处于当前模式可跳过此步骤
发送:<< AT+ROLE=1
响应:>> OK
2、连接热点
发送:<< AT+RAP=ssid,password
响应:>> OK
3、查询模块 IP 地址
发送:<< AT+LIP
响应:>> +LIP=192.168.0.97
>> OK
4、将模块设置成 SSL client,并配置远端服务器 和端口号
发送:<< AT+SOCK=SSL,9100,httpbin.org,443
响应:>> OK
5、模块作为 SSL client 对远端发起连接
发送:<< AT+WLANC=3
响应:>> OK
6、发送相关请求,如GET请求
发送:<< AT+SSLSEND=40,GET /get HTTP/1.1\r\nHost: httpbin.org\r\n\r\n
7、接收数据
<< +SSLDATA=具体数据

Note

  • 说明:若要使用数据透传,在设置 Wi-Fi 模式前发送 AT+TPMODE=1 即可。

MQTT应用

@startuml
hide footbox
skinparam sequenceMessageAlign center

box  #LightBlue
actor “ ” as person
participant “USER MCU” as mcu
participant MODULE as module
participant " " as nu
participant "AliCloud" as cloud
end box

person ->> mcu: 开    始    操    作
module --> mcu:
note right
    若连上热点
end note
mcu -> module: AT+BROKER=addr
note left
    设置BROKER地址
end note
module --> mcu: OK
mcu -> module: AT+USERNAME=username
note left
    设置UserName
end note
module --> mcu: OK
mcu -> module: AT+MQTTPWD=password
note left
    设置PassWord
end note
module --> mcu: OK
mcu -> module: AT+CLIENTID=ID
note left
    设置ClientID
end note
module --> mcu: OK
mcu -> module: AT+SUBTPC=tpoic,qos
note left
    订阅主题
end note
module --> mcu: OK
mcu -> module: AT+WLANC=4
note left
    模块发起连接
end note
module --> mcu: OK
module -> nu: 开始连接
nu -> cloud: 连接上MQTT
cloud -> nu: 云端发数据:1234567890
note right
    模块将接收到
    的数据输出
end note
note left
    模块发数据给云端
end note
module --> mcu: OK
nu -> cloud: abc
@enduml

1. 设置 Wi-Fi 模式
发送:<< AT+ROLE=1
响应:>> OK
2、连接热点
发送:<< AT+RAP=ssid,password
响应:>> OK
3、查询模块 IP 地址
发送:<< AT+LIP
响应:>> +LIP=192.168.0.87
>> +LIP=192.168.0.87
4、设置 BROKER地址
发送:<< AT+BROKER=gpssensor.ddns.net
响应:>> OK
5、设置 User Name
发送:<< AT+USERNAME=admin
响应:>> OK
6. 设置 Password
发送:<< AT+MQTTPWD=12345678
响应:>> OK
7. 订阅主题
发送:<< AT+SUBTPC=user/get
响应:>> OK
8、 连接MQTT
发送:<< AT+WLANC=4
响应:>> OK
9. 接收云平台下发的数据
1234567890
10.发送数据给云平台
发送:<< AT+MQTTSEND=/user/post,0,3,abc
响应:>> OK

已连接模式下透传模式的切换

具体指令流程说明
当透传模式开启时, 任何指令都会被当作数据传输, 模块提供了一种方法退出透传模式以发送指令
首先给模块发送+++,此时模块会应答一个a, 再收到模块应答的a之后, 再给模块发送一个a, 就可以暂时退出透传模式了
<< +++
<< a
>> a
>> +ok

Note

  • 透传模式只在蓝牙、TCP/UDP等已连接的情况下生效,所以退出透传的方法也只在这种情况下生效, 正常情况直接发送指令就行

  • 注意以上收发的数据格式有别于AT正常指令, 正常AT指令是以**<CR><LF>**结尾的, 而以上数据不附带任何结束符

配网及空中升级

指令的方式空中升级

具体指令流程说明
1、切换到STA模式, 如果已经处于STA模式, 则可以省略这条指令
<< AT+ROLE=1
>> OK
2、开始连接热点
<< AT+RAP=ssid,password
>> OK
3、查询IP判断是否连上热点,如果能获取到IP则表示已经连上
<< AT+LIP
>> +LIP=192.168.0.87
4、开始升级,固件名由工程师或相关人员提供
<< AT+OTA=Feasycom_V555
>> OK
>> $OTA=1

Note

  • 空中升级固件存于特定服务器上, 并与模块绑定, 可按客户需求更换服务器地址或升级方式

  • 因为要访问特定服务器, 所以需要热点支持访问外网

FeasyWiFi配网及OTA使用说明

具体流程说明
1、在APP STORE或者应用商城下载FeasyWiFi APP
2、进入APP界面, 搜索连接目标模块蓝牙
_images/feasy_wifi_1.jpg
2、正确连接后会跳转到如下界面, 先点击蓝牙配网
_images/feasy_wifi_2.jpg
3、在蓝牙配网界面输入热点名称和密码, 点击开始配网
_images/feasy_wifi_3.jpg
4、配网成功后返回到上一界面, 选择OTA升级, 此时应可以查询到IP地址, 输入需要升级的固件点升级即可
_images/feasy_wifi_4.jpg

Note

  • 需要热点支持访问外网

微信小程序配网及OTA使用说明

具体流程说明
1、微信搜索打开小程序”蓝牙串口”小程序,界面如下,点击下面的设置按钮
_images/feasy_wechat_1.jpg
2、设置界面如下, 点击WiFi模块设置 (其中蓝牙指令工具用于发送空中指令, 即以蓝牙的方式发送AT指令,对模块进行配置)
_images/feasy_wechat_2.jpg
3、先进行蓝牙配网
_images/feasy_wechat_3.jpg
4、蓝牙连接需要升级的设备, 进入到配网界面,输入需要来连接的热点和密码后,点击确定
_images/feasy_wechat_4.jpg
5、配网成功后, 返回到上一界面, 选择空中升级, 输入需要升级的固件, 点击确定, 等待升级结束
_images/feasy_wechat_5.jpg

Note

  • 需要热点支持访问外网

附录

下载 PDF版本

下载PDF版本