乐鑫技术交流
直播中

莫联雪

9年用户 1200经验值
私信 关注
[问答]

如何建立一个没有路由器的WiFi MESH网络呢?

我正在尝试建立一个没有路由器的 WiFi MESH 网络(根节点将通过板载 4G 传输信息),我正在使用 ESP-IDF 来支持链式拓扑。
我已经成功地使网格连接良好,节点被识别并且根是根据外部标准设置的(目前只是 GPIO 上的一条带)。
但是,无论我做什么,似乎都没有在任何设备上收到我的消息。
我的代码的相关部分是:
Mesh init(所有路由器设置都被注释掉):
代码:
mesh_cfg_t cfg = MESH_INIT_CONFIG_DEFAULT();
    /* mesh ID */
    memcpy((uint8_t *) &cfg.mesh_id, MESH_ID, 6);
    /* router */
    //cfg.channel = CONFIG_MESH_CHANNEL;
    //cfg.router.ssid_len = strlen(CONFIG_MESH_ROUTER_SSID);
    //memcpy((uint8_t *) &cfg.router.ssid, CONFIG_MESH_ROUTER_SSID, cfg.router.ssid_len);
    //memcpy((uint8_t *) &cfg.router.password, CONFIG_MESH_ROUTER_PASSWD,
           //strlen(CONFIG_MESH_ROUTER_PASSWD));*/
    /* mesh softAP */
    ESP_ERROR_CHECK(esp_mesh_set_ap_authmode(CONFIG_MESH_AP_AUTHMODE));
    cfg.mesh_ap.max_connection = CONFIG_MESH_AP_CONNECTIONS;
    memcpy((uint8_t *) &cfg.mesh_ap.password, CONFIG_MESH_AP_PASSWD,
           strlen(CONFIG_MESH_AP_PASSWD));
    ESP_ERROR_CHECK(esp_mesh_set_config(&cfg));
这将返回“网格:[MANUAL]指定为 root 且未设置路由器”。
我的 mesh_send 命令如下所示:
代码:
//node send to root
err = esp_mesh_send(NULL, &data, MESH_DATA_P2P, NULL, 0);

//root send to nodes
for (i = 0; i < route_table_size; i++) {
err = esp_mesh_send(&route_table, &data, MESH_DATA_P2P, NULL, 0);
}
当连接路由器时,这一切都工作得很好,但当我没有连接路由器时,这一切都不起作用。
                          

回帖(3)

陈敏杰

2023-3-2 14:09:48
我想我没有在旧程序的根节点上成功设置esp_mesh_set_self_organized。
举报

卫斯晾

2023-3-2 14:09:54
你用的是手动联网还是自动联网?我正在尝试使用手动网络进行相同的操作,但扫描仅返回“普通 wifi”,而没有来自节点的网格。所以节点不能加入网格。
举报

李玉鑫

2023-3-2 14:10:09
我发现手动网络在链式拓扑中不起作用,从 AP 广播的网络 IE 信息与树的大小不同。
对我来说,手动联网确实适用于树形拓扑,但对于链式拓扑,我必须进行自动联网。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分