AN1412 ATK-RM04 WIFI 模块使用说明
本应用文档(AN1412,对应战舰 STM32 开发板扩展实验 6/MiniSTM32 开发板扩展实验
15)将教大家如何在 ALIENTEK STM32 开发板上使用 ATK-RM04 WIFI 模块(注意,本文档同
时适用 ALIENTEK 战舰和 MiniSTM32 两款开发板)。
本文档分为如下几部分:
1, ATK-RM04 WIFI 模块简介
2, 硬件连接
3, 软件实现
4, 验证
1、ATK-RM04 WIFI 模块简介
ATK-RM04 是 ALIENTEK 推出的一款高性能 UART-ETH-WIFI(串口-以太网-无线网)模块。
ATK- RM04 模块板载 Hi-Link 公司的 HLK-RM04 模块,该模块通过 FCC,CE 认证,可直接用于
产品销往欧美地区。
ATK-RM04 模块采用串口(RS232/LVTTL)与 MCU(或其他串口设备)通信,内置 TCP/IP
协议栈,能够实现用户串口、以太网、无线网(WIFI)3 个接口之间的转换。
通过 ATK-RM04 模块,传统的串口设备在不需要更改任何配置的情况下,即可通过网络
(有线/WIFI)传输自己的数据,为用户的串口设备通过网络传输数据提供完整快速的解决
方案,如图 1.1 所示:
串口
ATK-RM04
WIFI(STA/AP)
以太网
图 1.1 ATK-RM04 功能结构
ATK-RM04 模块支持 RS232 串口和 LVTTL 串口,支持 DC6V~16V 宽电压工作范围,支持
串口转以太网、串口转 WIFI STA、串口转 WIFI AP 等连接形式,从而快速构建串口-网络数据
传输方案,方便你的设备使用互联网传输数据。同时,ATK-RM04 还带有路由器功能,完全
可以当成一个路由器使用(相当于:1 个 WAN 口,1 个 LAN 口的 WIFI 无线路由器)。
1.1 模块资源简介
ATK-RM04 模块是 ALIENTEK 推出的一款高性能 UART-ETH-WIFI(串口-以太网-无线网)模
块,能为单片机网络(以太网/WIFI)数据传输提供简单快速的解决方案,另外,该模块也
可以当作无线路由器使用。模块资源图如图 1.1.1 所示:
www.alientek.comALIENTEK STM32开发板AN1412www.openedv.com开源电子网2014-04-03
RS232
串口
RS232 与 TTL
串口选择
WIFI IPX
天线接口
5V 电源
接口
HLK-RM04
WIFI 模块
WPS/ES 按键和
GPIO 引出接口
LAN 口
(网口 2)
电源
输入接口
电源
指示灯
电源
开关
USB
接口
RM04
工作指示灯
TVS 保护
(在底板上)
图 1.1.1 ATK-RM04 模块资源图
WPS/RST 和
ES/RST 按键
WLAN 口
(网口 1)
从图 1.1.1 可以看出,ATK-RM04 模块外观漂亮,结构紧凑,而且功能齐全、接口丰富,
模块尺寸(不算天线部分)为 76mm*56mm,并带有安装孔位,非常小巧,并且利于安装,
可方便应用于各种产品设计。
ALIENTEK ATK-RM04 模块板载资源如下:
◆ 1 个 RS232 串口(母头)
◆ 1 个 RS232 与 TTL 串口选择端口
◆ 1 个 WIFI IPX 天线接口
◆ 1 个 5V 电源接口
◆ 1 个 HLK-RM04 WIFI 模块
◆ 1 个 WPS/ES 按键和 GPIO 引出接口
◆ 1 个 LAN 口(网口 2)
◆ 1 个 WLAN 口(网口 1)
◆ 1 个 WPS/RST 按键和 ES/RST 按键
◆ 1 个 USB 接口
◆ 3 个 RM04 工作指示灯
◆ 1 个电源开关
◆ 1 个电源指示灯(蓝色)
◆ 1 个电源输入接口
ATK-RM04 模块采用高标准设计,特点包括:
板载 RS232 串口和 TTL 串口接口,方便与 PC/工控机/单片机等设备连接;
板载 2 个网络接口(LAN 和 WLAN),使用方便;
引出所有 RM04 模块的 IO 口,并对 ES/WPS 两个控制信号做了兼容性设计,方便连
接 3.3V/5V 单片机系统;
板载高效 DCDC 降压电路,转换效率高达 90%,支持宽电压工作范围(6~16V)。
www.alientek.comALIENTEK STM32开发板AN1412www.openedv.com开源电子网2014-04-03
板载电源防反接保护和 TVS 电源保护,保护功能完善;
板载 IPX 天线接口,方便选择不同天线,满足不同场合需求;
采用国际 A 级 PCB 料,沉金工艺加工,稳定可靠;
采用全新元器件加工,纯铜镀金排针,坚固耐用;
人性化设计,各个接口都有丝印标注,使用起来一目了然;接口位置设计安排合理,
方便顺手。
PCB 尺寸为 76mm*56mm,并带有安装孔位,小巧精致;
ATK-RM04 模块的背面如图 1.1.2 所示:
图 1.1.2 ATK-RM04 模块背面图
从图 1.1.2 可以看出,ATK-RM04 模块的背面非常整洁,没有一个元器件,方便在设备上
安装。
ATK-RM04 模块的资源介绍,我们就介绍到这里,详细的介绍,请看《ATK-RM04 WIFI
模块用户手册》相关章节。
1.2 模块使用
本文档,我们将介绍大家如何通过 ALIENTEK STM32 开发板连接 ATK-RM04 WIFI 模块,
实现:串口以太网(ETH-COM)、串口无线网卡(COM-WIFI STA)和串口无线接入点(COM-WIFI
AP)等 3 个模式的测试,每个模式又包含:TCP 服务器、TCP 客户端、UDP 服务器、UDP 客
户端等 4 个子模式,本节我们将详细介绍这些模式的使用。
模块的配置可以通过串口或者网页配置,这里因为是与开发板串口通信,所以我们通过
串口配置。模块串口工作有两种模式:1,AT 指令模式;2,透传模式。
透传模式,用与数据传输。
这两种模式,可以相互转换,如图 1.2.1 所示:
AT 指令模式,用于对模块进行配置。
www.alientek.comALIENTEK STM32开发板AN1412www.openedv.com开源电子网2014-04-03
上电
是
配置正常?
否
1.ES/RST 引脚
2.特定的串口数据
透传
模式
AT 指令
模式
1.at+out_trans=
0
图 1.2.1 串口工作状态转换图
在配置正常的条件下,模块默认是进入透传模式的,所以如果我们要对模块进行配置,
就必须先让模块进入到 AT 指令模式。退出透传模式有两种办法:
1、ES/RST 引脚。
在任意状态下,保持 ES/RST 脚(KEY1 按键)低电平的时间大于 Tes 且小于 Trst1,将立
即进入 AT 指令模式,如图 1.2.2 所示:
ES/RST
>Tes
Tpt
400ms< >600ms
>Tpt
图 1.2.3 串口退出透传模式
AT COMMAND MODE
其中:
Tpt:串口组帧时间,默认为 10ms。
间隔时间大于组帧时间连续发送 3 个“+”,然后等待约 500ms(400ms< >600ms),间
隔时间大于组帧时间连续发送 3 个 0x1B。模块即可退出透传模式。
www.alientek.comALIENTEK STM32开发板AN1412www.openedv.com开源电子网2014-04-03
从 AT 指令模式进入透传模式则非常简单,只需要发送:at+out_trans=0,这条 AT 指令,
即可进入透传模式。进入透传模式以后,我们就可以通过串口 AT 指令,来对模块进行各种
配置了。
1.2.1 AT 指令简介
在 AT 模式下,可以通过串口的 AT 指令对系统参数做配置。指令格式如下:
at+[command]=[value]\r
特别提醒,ATK-RM04 模块对 AT 指令的大小写敏感,at 都是小写的!
根据不同命令,模块将返回不同的返回值。其中\r 为换行符,用十六进制表示,就是
0X0D。
例如:"at+remoteip=192.168.1.102\r",设置远端 ip 地址为 192.168.1.102。
例如:"at+remoteip=?\r ",查询远端 ip 地址。
ATK-RM04 模块支持的指令列表如表 1.2.1.1 所示:
netmode
wifi_conf
网络模式
WiFi 配置
Channel
dhcpc
net_ip
net_dns
dhcpd
WiFi channel
DHCP 客户端配置
网络 IP 地址
网络 DNS 地址
DHCP 服务器配置
dhcpd_ip
DHCP 服务器 IP 地址
dhcpd_dns
DHCP 服务器 DNS 地址
dhcpd_time
net_commit
out_trans
remoteip
DHCP 服务器分配时间
提交网络配置
退出透传
远端服务器域名或者 IP 地址
remoteport
本地或远端端口号
remotepro
网络协议类型
timeout
mode
uart
网络超时时间
串口网络模式
串口配置
uartpacklen
串口组帧长度
uartpacktimeout 串口组帧时间
escap
tcp_auto
save
reconn
default
reboot
ver
CLport
RTS
串口退出透传
TCP 自动重连
提交串口转换配置并重启服务
重启串口服务
恢复出厂设置
重启模块
模块版本
TCP/UDP CLIENT 本地端口
串口输出指示(485)
XON_XOFF
XON/XOFF 流控使能
www.alientek.comALIENTEK STM32开发板AN1412www.openedv.com开源电子网2014-04-03
net_wanip
wan ip 地址
tcp_client_check
TCP CLIENT 远端状态侦测
S2N_Stat
Get_MAC
串口功能状态
获取 MAC 地址
wifi_ConState
WiFi STA 连接状态
wifi_Scan
suspend
default
reboot
WiFi 扫描
系统挂起
恢复出厂设置
重启模块
关于这些指令的详细使用,请看:ATK-RM04 用户手册 2.3.4 节,这里我们就不再详细阐
表 1.2.1.1 ATK-RM04 模块 AT 指令表
述了。
通过模块的 RS232 端口,和电脑的串口连接在一起,我们便可以通过串口调试助手测试
这些指令,打开串口助手(SSCOM3.3),选择连接模块的串口(注意别选错串口了!,我电
脑连接模块的是 COM2,所以选择 COM2,大家得根据自己的实际情况设置),设置波特率
为 115200,勾选发送新行,如图 1.2.1.1 所示:
图 1.2.1.1 串口 AT 指令测试
从图 1.2.1.1 可以看出,前面我们特意发送几个非法和错误的指令格式,可见,对于非
法的指令(AT 大写了),模块直接返回 ERROR,对于错误的指令格式,模块直接不响应,对
于正确的指令格式,才会执行响应,返回正确的数据。
1.2.2 串口以太网(ETH-COM)
串口以太网(ETH-COM)模式,模块的 WIFI 和 LAN 口将关闭,仅开启 WLAN 口,用于
连接以太网(Ethernet),实现串口以太网之间的数据转换互传。
www.alientek.comALIENTEK STM32开发板AN1412www.openedv.com开源电子网2014-04-03
该模式下,根据应用场景的不同,又可以设置 4 个子模式:TCP 服务器、TCP 客户端、
UDP 服务器、UDP 客户端。
接下来看看如何通过 AT 指令配置模块,达到我们所要的功能,这里仅列出必要配置,
配置准备:1,模块处于默认设置(即出厂设置);2,模块 WLAN 通过网线连接路由器的 LAN
口,且路由器开启 DHCP 服务。
串口以太网模式,TCP 服务器配置,如表 1.2.2.1 所示:
发送指令
at+netmode=1
at+dhcpd=0
at+dhcpc=1
at+remotepro=tcp
at+mode=server
配置模块为串口以太网模式
作用
关闭 DHCP 服务器(仅 WIFI AP/路由器模式需要开启)
使能 DHCP 客户端,允许模块自动获取 IP 地址
TCP 协议
服务器(IP 为模块从路由器自动获取到的 IP)
at+remoteport=8086
服务器端口号(用于对外连接的端口号)
at+net_commit=1
at+reconn=1
提交网络参数,该指令执行可能需要 30s 左右
重启串口服务,收到该指令,模块将进入透传模式
表 1.2.2.1 串口以太网 TCP 服务器配置
以上配置,模块将工作在串口以太网模式,子模式为:TCP 服务器。模块 IP 地址将从路
由器自动获取,通过:at+net_wanip=? 指令,可以获取模块从路由器得到的 IP 地址,该 IP
地址就是模块作为 TCP 服务器的 IP 地址。服务器端口号为:8086。
串口以太网模式,TCP 客户端配置,如表 1.2.2.2 所示:
发送指令
at+netmode=1
at+dhcpd=0
at+dhcpc=1
at+remotepro=tcp
at+mode=client
配置模块为串口以太网模式
作用
关闭 DHCP 服务器(仅 WIFI AP/路由器模式需要开启)
使能 DHCP 客户端,允许模块自动获取 IP 地址
TCP 协议
客户端
at+remoteip=192.168.1.108 服务器 IP 地址(要连接的目的 IP 地址)
at+remoteport=8086
服务器端口号(要连接的端口)
at+net_commit=1
at+reconn=1
提交网络参数,该指令执行可能需要 30s 左右
重启串口服务,收到该指令,模块将进入透传模式
以上配置,模块将工作在串口以太网模式,子模式为:TCP 客户端。连接服务器 IP 为:
表 1.2.2.2 串口以太网 TCP 客户端配置
192.168.1.108,连接服务器端口号为:8086。
串口以太网模式,UDP 服务器配置,如表 1.2.2.3 所示:
发送指令
at+netmode=1
at+dhcpd=0
at+dhcpc=1
at+remotepro=udp
at+mode=server
配置模块为串口以太网模式
作用
关闭 DHCP 服务器(仅 WIFI AP/路由器模式需要开启)
使能 DHCP 客户端,允许模块自动获取 IP 地址
UDP 协议
服务器(IP 为模块从路由器自动获取到的 IP)
at+remoteport=8086
服务器端口号(用于对外连接的端口号)
at+net_commit=1
at+reconn=1
提交网络参数,该指令执行可能需要 30s 左右
重启串口服务,收到该指令,模块将进入透传模式
www.alientek.comALIENTEK STM32开发板AN1412www.openedv.com开源电子网2014-04-03
表 1.2.2.3 串口以太网 UDP 服务器配置
以上配置,模块将工作在串口以太网模式,子模式为:UDP 服务器。模块 IP 地址将从
路由器自动获取,通过:at+net_wanip=? 指令,可以获取模块从路由器得到的 IP 地址,该
IP 地址就是模块作为 UDP 服务器的 IP 地址。服务器端口号为:8086。
串口以太网模式,UDP 客户端配置,如表 1.2.2.4 所示:
发送指令
at+netmode=1
at+dhcpd=0
at+dhcpc=1
at+remotepro=udp
at+mode=client
配置模块为串口以太网模式
作用
关闭 DHCP 服务器(仅 WIFI AP/路由器模式需要开启)
使能 DHCP 客户端,允许模块自动获取 IP 地址
UDP 协议
客户端
at+remoteip=192.168.1.108 服务器 IP 地址(要连接的目的 IP 地址)
at+remoteport=8086
服务器端口号(要连接的端口)
at+net_commit=1
at+reconn=1
提交网络参数,该指令执行可能需要 30s 左右
重启串口服务,收到该指令,模块将进入透传模式
表 1.2.2.4 串口以太网 TCP 客户端配置
以上配置,模块将工作在串口以太网模式,子模式为:UDP 客户端。连接服务器 IP 为:
192.168.1.108,连接服务器端口号为:8086。
以上 4 个表格,就是串口以太网,4 个子模式的配置,基本大同小异(表格中加粗部分
存在差异),配置比较简单。
1.2.3 串口无线网卡(COM-WIFI STA)
串口无线网卡(COM-WIFI STA)模式,模块的 WLAN 和 LAN 口将关闭,仅开启 WIFI,
用于连接无线网络(WIFI STA),实现串口与无线网络之间的数据转换互传。
该模式下,根据应用场景的不同,同样可以设置 4 个子模式:TCP 服务器、TCP 客户端、
UDP 服务器、UDP 客户端。
接下来看看如何通过 AT 指令配置模块,达到我们所要的功能,这里仅列出必要配置,
配置准备:1,模块处于默认设置(即出厂设置);2,准备一个无线路由器,且路由器开启
DHCP 服务。
串口无线网卡模式,TCP 服务器配置,如表 1.2.3.1 所示:
发送指令
at+netmode=2
at+dhcpd=0
at+wifi_conf=ALIENTEK,wpawp
a2_aes,15902020353
at+dhcpc=1
at+remotepro=tcp
at+mode=server
作用
配置模块为串口无线网卡(WIFI STA)模式
关闭 DHCP 服务器(仅 WIFI AP/路由器模式需要开启)
配置模块的无线参数,即模块要连接到的路由器的无
线参数。SSID: ALIENTEK;加密方式:WPA/WPA2_AES;
密码:15902020353;
使能 DHCP 客户端,允许模块自动获取 IP 地址
TCP 协议
服务器(IP 为模块从路由器自动获取到的 IP)
at+remoteport=8086
服务器端口号(用于对外连接的端口号)
at+net_commit=1
at+reconn=1
提交网络参数,该指令执行可能需要 30s 左右
重启串口服务,收到该指令,模块将进入透传模式
以上配置,模块将工作在串口无线网卡模式,子模式为:TCP 服务器。模块将通过 WIFI
表 1.2.3.1 串口无线网卡 TCP 服务器配置
www.alientek.comALIENTEK STM32开发板AN1412www.openedv.com开源电子网2014-04-03