乐鑫技术交流
直播中

郭大

10年用户 949经验值
擅长:嵌入式技术
私信 关注
[问答]

如何通过网络浏览器访问ESP32 mDNS Demo?

我已经加载ESP32 mDNS Demo, 我可以在Win10, ping esp32-mdns.local
如何通过网络浏览器访问设备?

这些代码是做什么用的?
    //initialize service
    ESP_ERROR_CHECK( mdns_service_add("ESP32-WebServer", "_http", "_tcp", 80, serviceTxtData, 3) );
    //add another TXT item
    ESP_ERROR_CHECK( mdns_service_txt_item_set("_http", "_tcp", "path", "/foobar") );
    //change TXT item value
    ESP_ERROR_CHECK( mdns_service_txt_item_set("_http", "_tcp", "u", "admin") );
                                 

回帖(2)

王静

2024-6-20 09:31:56
 ESP32 mDNS Demo 只是 mDNS 的服务,你如果想浏览器访问,就需要 HTTP Server 服务。你可以在 HTTP Server 示例里面添加 mDNS 功能。

ESP_ERROR_CHECK( mdns_service_add("ESP32-WebServer", "_http", "_tcp", 80, serviceTxtData, 3) );
这个是告诉其他设备我支持的服务,支持 http 服务,端口 80,但是这个只是告诉其他设备,而不是自己真正支持,自己支持的话要创建 HTTP Server.

ESP_ERROR_CHECK( mdns_service_txt_item_set("_http", "_tcp", "path", "/foobar") );
设置自己 item 里的值,HTTP URI 资源的路径为 http://esp32-mdns.local/foobar

ESP_ERROR_CHECK( mdns_service_txt_item_set("_http", "_tcp", "u", "admin") );
设置自己 item 里的值
                                                                                            
举报

万航渡路

2024-6-20 17:32:41
要通过网络浏览器访问ESP32 mDNS Demo,您可以按照以下步骤操作:

1. 确保您的ESP32设备和计算机连接到同一网络。
2. 打开网络浏览器,在地址栏输入 "http://esp32-mdns.local"。这里的 "esp32-mdns.local" 是ESP32设备的mDNS名称。由于mDNS名称可能与其他设备冲突,您也可以使用IP地址访问,例如 "http://192.168.x.x"(将x替换为ESP32设备的IP地址)。

关于您提供的代码,这里是一些解释:

- `mdns_service_add` 函数用于注册一个服务。在这个例子中,它注册了一个名为 "ESP32-WebServer" 的服务,使用 "_http"(表示HTTP服务)和 "_tcp"(表示传输层协议为TCP)作为服务类型。端口号为80,这是HTTP服务的默认端口。`serviceTxtData` 是一个包含TXT记录的数组,这里有三个元素。`path` 是服务的路径,这里是根路径("/")。

- `mdns_service_txt_item_set` 函数用于添加或修改服务的TXT记录。在这个例子中,它为 "_http" 和 "_tcp" 服务添加了一个名为 "path" 的TXT记录,其值为 "/"。这意味着当其他设备查询这个服务时,它们将看到这个路径。

这些代码的主要作用是使用mDNS(多播DNS)协议在本地网络中注册和发现ESP32设备上的Web服务。mDNS允许设备使用易于记忆的名称(如 "esp32-mdns.local")而不是IP地址进行通信。这使得设备发现和访问变得更加简单。
举报

更多回帖

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