乐鑫技术交流
直播中

douyin8

12年用户 1118经验值
私信 关注
[问答]

使用IDF中的mdns例程连上路由器mdns无法正常工作如何解决?

模块:ESP32-WROOM-32,环境:IDF,路由器:小米路由器
1.使用IDF环境中的mdns例程,下载到板子上能正常连接至路由器(在路由器中能看到设备)。
2.使用wireshark抓包以及PC端mdns软件查询模块的mdns,均无法接收到模块的mdns广播。
3.而使用使用wireshark抓包以及PC端mdns软件能查询到其他的mdns设备,所以证明该抓包工具和查询软件是没有问题的。

能帮忙解决一下吗?是该mdns例程有问题吗?还是路由器不支持esp32的mdns广播?还是例程中的mdns服务没有启动?

回帖(1)

李平

2024-6-19 16:22:34
要解决这个问题,我们可以按照以下步骤进行排查:

1. 首先,确保ESP32模块的固件已经升级到最新版本。这可以通过在IDF环境中运行以下命令来完成:
   ```
   idf upgrade
   ```

2. 检查mDNS示例程序是否正确配置。在示例程序的`main.c`文件中,确保已经正确设置了mDNS服务名称和实例名称。例如:
   ```c
   mdns_init();
   mdns_hostname_set("esp32-device");
   mdns_instance_name_set("ESP32-Device");
   ```

3. 确保mDNS服务已经启动。在示例程序中,添加以下代码以启动mDNS服务:
   ```c
   mdns_service_add(NULL, "_http", 80, NULL, 0);
   ```

4. 检查路由器设置。确保路由器没有阻止mDNS广播。有些路由器可能需要手动开启mDNS支持。登录到路由器的管理界面,查找相关设置并确保mDNS功能已启用。

5. 检查网络环境。确保ESP32模块和路由器在同一个子网中。如果它们不在同一个子网,mDNS可能无法正常工作。

6. 使用其他设备测试mDNS功能。尝试使用其他支持mDNS的设备连接到路由器,以排除路由器问题。

7. 如果以上步骤都无法解决问题,可以尝试修改ESP32模块的mDNS示例程序,例如更改mDNS服务名称或端口号,以排除程序问题。

8. 如果问题仍然存在,可以考虑在ESP32模块上运行其他mDNS库,如`ESPAsyncDNS`,以检查是否是IDF中的mDNS实现存在问题。

通过以上步骤,我们可以逐步排查问题所在,并尝试解决mDNS无法正常工作的问题。
举报

更多回帖

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