Wi-Fi R-Mesh 配网
在实际应用中,某些 R-Mesh 节点(如智能灯泡等)可能不具备触控屏、键盘等输入设备,因此无法通过直接输入 WLAN SSID 和密码的方式加入 WLAN。这样的节点可以通过以下两种配网方式加入 WLAN:
方式 1: 辅助配网
通过手机 APP ( MGravitation )将 WLAN 的密码用蓝牙传送给待配网的 R-Mesh 节点,如图所示,主要步骤如下:
辅助配网
手机与 R-Mesh 节点建立蓝牙连接
被连接的 R-Mesh 节点扫描周围的 WLAN,将附近的 WLAN SSID 列表通过蓝牙发送给手机显示
用户在手机上选择要让 R-Mesh 节点加入的 WLAN,并输入其密码,手机将此 WLAN 的 SSID 和密码通过蓝牙发送给 R-Mesh 节点
R-Mesh 节点利用刚收到的 SSID 和密码加入 WLAN
方式 2: ZRPP 配网
待配网的 R-Mesh 节点可以通过 WLAN 信道扫描来检测附近是否有已连网的 R-Mesh 节点,如果有,就可自动通过 R-Mesh 零配协议(Zero R-Mesh Provisioning Protocol, 以下简称 ZRPP)向此已连网的 R-Mesh 节点询问其所在 WLAN 的 SSID 和密码,从而加入此 WLAN。
备注
“零”意为“零接触”,即本配网方式不需要用户的任何手动输入,全部由 R-Mesh 节点自动完成,在待配网节点较多的情况下可极大的节省配网时间。
ZRPP 的主要步骤如下:
R-Mesh 零配协议
待配网的 R-Mesh 节点依次扫描所有 WLAN 信道,若在某个信道上检测到了已连网的 R-Mesh 节点,则立即停止扫描并停留在该信道
待配网的 R-Mesh 节点向刚发现的已连网的 R-Mesh 节点发送 ZRPP 请求(特定格式的 WLAN 数据帧)
已连网的 R-Mesh 节点向待配网的 R-Mesh 节点发送 ZRPP 响应(特定格式的 WLAN 数据帧),其中包含了 WLAN SSID 和密码
待配网的 R-Mesh 节点利用刚收到的 SSID 和密码加入 WLAN
案例演示
本节展示了如何利用配网的方式建立一个 R-Mesh 网络。
一般的配网流程(即本案例)有两个阶段:
阶段一(辅助配网):利用移动端可视化演示工具( MGravitation )对一个 R-Mesh 节点进行辅助配网;
阶段二(ZRPP):剩余的 R-Mesh 节点利用第一阶段已配网的节点,通过 ZRPP 自动加入网络。
通过此示例,您可以了解配网的流程以及 MGravitation 的使用方法;您也可以参考此案例重新开发自己的应用。
编译与烧录
通过
{sdk}/component/soc/usrcfg/amebaxxx/ameba_wificfg.c配置参数:
wifi_user_config.fast_reconnect_en = 0;
----Connectivity config----
CONFIG WHC INTF --->
...
CONFIG BT --->
[*] Enable BT
[ ] BT Advanced Feature (NEW)
[*] BT Example Demo
[ ] BLE Peripheral (NEW)
...
[ ] BLE Transfer Module (NEW)
[*] BLE WiFiMate Device
[*] BLE WiFiMate Configurator
[ ] BLE OTA Central (NEW)
...
在
{sdk}/amebadxxx_gcc_project下执行./build.py -a wifi_rpp参考 标准流程 给节点下载固件
阶段一:辅助配网
备注
实验前请确保手机蓝牙功能开启,且将手机 Wi-Fi 连接至 AP
先给所有 R-Mesh 节点一起上电,再打开 MGravitation 应用程序,手机蓝牙便会扫描到附近所有 R-Mesh 节点,并展示 R-Mesh 节点列表:
MGravitation 扫描到的 R-Mesh 节点列表
选择其中一个节点后,手机会与该节点建立蓝牙连接,并命令其做一次 WLAN 扫描,将扫描到的 SSID 列表通过蓝牙连接返回给手机显示:
R-Mesh 节点扫描到的 WLAN SSID 列表
接下来选择想要连接的 WLAN SSID,输入密码,点击“连接”按钮:
MGravitation 令 R-Mesh 节点连接到目标 WLAN
一段时间过后,该 R-Mesh 节点连接 WLAN 成功:
R-Mesh 节点通过 MGravitation 连接 WLAN 成功
阶段二:ZRPP
其他 R-Mesh 节点发现第一个节点连线成功后,会通过 ZRPP 自动连上 WLAN,此过程无需用户操作,过一段时间后,拓扑图上会显示所有 R-Mesh 节点都已成功连上 WLAN:
所有 R-Mesh 节点通过 ZRPP 连接 WLAN 成功