应用开发示例

蓝牙配网

FeasyBlue蓝牙配网

应用获取

操作步骤

  1. 打开 FeasyBlue 应用,依次点击 设置 - WiFi参数设置

  2. 应用界面右上角勾选 BLE,扫描并选择要升级蓝牙设备BW256B;

  3. 选择点击 蓝牙配网 - 在弹出的 SSID**和 **密码 窗口中输入需要连接的Wi-Fi AP的 SSID密码,并点击 开始配网,配网完成以后,将会显示 配网成功 和 获取的 IP地址

../_images/bw256b-bt-network.png

数据透传应用

什么是透传?

FSC-BW256B 蓝牙&Wi-Fi 数传应用模块,工作模式包含两种数据传输模式:透传模式和指令模式。通用数传应用固件默认数指令模式,如需切换,可参考 [FSC-BW256B AT命令集] 使用 AT+TPMODE 指令来进行切换。

两种数据传输模式工作机制与区别如下:

  • 透传模式

无 蓝牙或Wi-Fi 连接 ,串口收到的数据按照AT指令格式进行解析;

已建立 蓝牙或Wi-Fi 连接 ,串口收到的数据全部原样发送到远端。

  • 指令模式

无 蓝牙或Wi-Fi 连接 ,串口收到的数据按照AT指令格式进行解析;

已建立 蓝牙或Wi-Fi 连接 ,串口收到的数据仍然按照AT指令格式进行解析,需要通过AT指令发送数据给远端。如:BLE连接时,使用AT+LESEND指令发送数据。TCP连接时,使用 AT+WFSEND指令发送数据。

透传模式切换

进入透传模式方法: 在建立蓝牙或 Wi-Fi 连接前,FSC-BW256B模组可使用指令 AT+TPMODE=1 开启透传模式,操作示例如下:

发送:>> AT+TPMODE=1                                           //设置为透传模式
响应:<< OK

已建立蓝牙或Wi-Fi连接情况下,退出透传模式方法: 操作示例如下:

发送:>> +++       //发送字符+++;注意:在上位机串口助手上操作,此时需要取消勾选发送新行
响应:<< a                       //收到响应a
发送:>> a                       //发送字符a;注意:在上位机串口助手上操作,此时需要取消勾选发送新行
响应:<< +ok        //收到响应+OK, 即表示退出透传模式成功

Note

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

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

模块与手机间透传应用

../_images/bw256-app-com.png

TCP Server应用

涉及工具

TCP Server 应用框图

../_images/db105-bw256-tcps-200dpi.png

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

TCP Server 应用操作示例

  1. 将模块设置为 Wi-Fi 模式,如果已经处于当前模式可跳过此步骤,AT指令操作示例如下:

发送:<<AT+ROLE=1
响应:>> OK
  1. 模块连接到AP热点,AT指令操作示例如下:

发送:<< AT+RAP=ssid,password
响应: > OK
  1. 查询模块 IP 地址,确认已入网,AT指令操作示例如下:

发送:<< AT+LIP
响应:>> +LIP=192.168.0.97  //本地示例,实际请以连接AP获取的IP为准
响应:>> OK
  1. 将模块设置成 TCP server,端口为 9100,AT指令操作示例如下:

发送:<< AT+SOCK=TCPS,9100
响应:>> OK
  1. 对模块创建 TCP server,AT指令操作示例如下:

发送:<< AT+WLANC=3
响应:>> OK
  1. PC 与模块(FSC-BW256B)连接同一个AP热点,在 PC 上使用第三方网络调试工具,作为 TCP client 创建 TCP 连接到 TCP Server(模块) 的 IP 地址。并在建立 TCP 连接后,发送 TCP 数据给 TCP Server(模块),如1234567890

../_images/tcptool-tcpc2.png
  1. 模块接收来自TCP Client发送的 TCP 数据,指令模式下,接收到数据格式串口响应示例如下:

响应:>> +WFDATA=0,10,1234567890   //支持同时接收来自多个TCP Client向TCP Server发送的数据,首个参数为连接ID
响应:>> +WFDATA=1,10,1234567890
响应:>> +WFDATA=2,10,1234567890
  1. 模块向远端TCP Client发送数据,指令模式下,AT指令操作示例如下:

发送:<< AT+WFSEND=0,3,abc
响应:>> OK

TCP Client应用

涉及工具

TCP Client 应用框图

../_images/db105-bw256-tcpc-200dpi.png

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

TCP Server 应用操作示例

  1. 将模块设置 Wi-Fi 模式,如果已经处于当前模式可跳过此步骤,AT指令操作示例如下:

发送:<< AT+ROLE=1
响应:>> OK
  1. 将模块连接到AP热点,AT指令操作示例如下:

发送:<< AT+RAP=ssid,password
响应:>> OK
  1. 查询模块 IP 地址,AT指令操作示例如下:

发送:<< AT+LIP
响应:>> +LIP=192.168.0.97   //本地示例,实际请以连接AP获取的IP为准
响应:>> OK
  1. PC 与模块连接同一个AP热点,在 PC 上使用第三方网络调试工具,创建一个 TCP Server。例如:TCP Server 的 IP 地址为 192.168.0.79,端口号为:8080。

  2. 将模块设置成 TCP client,并配置远端TCP Server的 IP 和端口号,AT指令操作示例如下:

发送:<< AT+SOCK=TCPC,9100,192.168.0.79,8080
响应:>> OK
  1. 模块作为 TCP client 对远端 TCP Server 发起建立 TCP 连接,AT指令操作示例如下:

发送:<< AT+WLANC=3
响应:>> OK
  1. 在 TCP 建立连接成功后,PC端网络调试工具,将显示连接成功,及数据发送区和接收区,可进行TCP数据发送和数据接收,如向远端TCP Client 模块发送数据 1234567890

  2. 模块接收来自TCP Server 发送的 TCP 数据,指令模式下,接收到数据格式响应示例如下:

响应:>> +WFDATA=3,10,1234567890

UDP 应用

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

UDP 应用操作示例

  1. 设置 Wi-Fi 模式,如果已经处于当前模式可跳过此步骤

发送:<< AT+ROLE=1
响应:>> OK
  1. 连接热点

发送:<< AT+RAP=ssid,password
响应:>> OK
  1. 查询模块 IP 地址

发送:<< AT+LIP
响应:>> +LIP=192.168.0.97   //本地示例,实际请以连接AP获取的IP为准
响应:>> OK
  1. 将模块配置为UDP

发送:<< AT+SOCK=UDP,4000
响应:>> OK
  1. 模块开启 UDP Server

发送:<< AT+WLANC=3
响应:>> OK
  1. PC 与模块连接同一个热点,在 PC 上使用网络调试工具,开启一个 UDP Client,目标 IP 192.168.0.97,目标端口号 4000。

  2. 接收数据

响应:>> +WFDATA=4,10,1234567890
  1. 发送数据

发送:<< AT+WFSEND=4,3,abc
响应:>> OK

Note

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

SSL Client 应用

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

SSL Client 应用操作示例

  1. 设置 Wi-Fi 模式,如果已经处于当前模式可跳过此步骤

发送:<< AT+ROLE=1
响应:>> OK
  1. 连接热点

发送:<< AT+RAP=ssid,password
响应:>> OK
  1. 查询模块 IP 地址

发送:<< AT+LIP
响应:>> +LIP=192.168.0.97   //本地示例,实际请以连接AP获取的IP为准
响应:>> OK
  1. 将模块设置成 SSL client,并配置远端服务器 和端口号

发送:<< AT+SOCK=SSL,9100,httpbin.org,443
响应:>> OK
  1. 模块作为 SSL client 对远端发起连接

发送:<< AT+WLANC=3
响应:>> OK
  1. 发送相关请求,如GET请求

发送:<< AT+SSLSEND=40,GET /get HTTP/1.1\\r\\nHost: httpbin.org\\r\\n\\r\\n
响应:>> OK
  1. 接收数据

响应:>> +SSLDATA=具体数据

Note

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

MQTT 应用

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

MQTT 应用操作示例

  1. 设置 Wi-Fi 模式

发送:<< AT+ROLE=1
响应:>> OK
  1. 连接热点

发送:<< AT+RAP=ssid,password
响应:>> OK
  1. 查询模块 IP 地址

发送:<< AT+LIP
响应:>> +LIP=192.168.0.97   //本地示例,实际请以连接AP获取的IP为准
响应:>> OK
  1. 设置 BROKER地址

发送:<< AT+BROKER=gpssensor.ddns.net
响应:>> OK
  1. 设置 User Name

发送:<< AT+USERNAME=admin
响应:>> OK
  1. 设置 Password

发送:<< AT+MQTTPWD=12345678
响应:>> OK
  1. 订阅主题

发送:<< AT+SUBTPC=user/get,0
响应:>> OK
  1. 连接MQTT

发送:<< AT+WLANC=4
响应:>> OK
  1. 接收云平台下发的数据

1234567890
  1. 发送数据给云平台

发送:<< AT+MQTTPUB=user/post,0,3,abc
响应:>> OK