首页 > 解决方案 > Flutter 和物联网设备

问题描述

我目前正在构建一个控制单个执行器和 LED 灯条的应用程序。执行器和 LED 灯条的控制器基于ESP32。在ESP32上,我使用<ESPAsyncWebServer.h>,<ESPAsyncWiFiManager.h>来设置 ESP 并将其连接到本地无线网络。在应用程序中,我想向 ESP 发送一些命令http://<ESP32_IP>/led_set?level=<level>http://<ESP32_IP>/act_open等等,这应该不是问题。

通常我会在 ESP 和 Flutter 应用程序中设置mDNS,但是一些 ESP 控制器已经交付给客户。所以我正在寻找另一种方法来识别 ESP。

目前我已经使用了ping_discover_network库,并且 ESP 在端口 80 上显示良好。但是我无法将 ESP 与显示在端口 80 上的其他设备分开。

你们有什么建议吗?

先感谢您

标签: flutterdartesp32platformio

解决方案


你没有很多好的选择。如果您只想识别一些没有 mDNS 的设备,您可以使用它们的 MAC 地址作为过滤器。如果您碰巧知道他们各自的 MAC 地址,那应该很轻松。否则,您必须寻找分配给 Espressif 的 MAC OUI(通常是前 3 个字节)范围的设备。乐鑫有多个 OUI 范围,但如果您的设备来自同一类型的一批 ESP32 模块,它们将使用相同的 OUI,因此应该很容易弄清楚。

例如,我开始使用的一批模块40:F5:20:...

当然,如果第三方将他们的(不相关的)ESP32 模块安装到同一个网络中,您也将有机会识别它们,但这就是生活。

这显然是权宜之计。确保其他设备通过一些标识(mDNS 或其他)走出门外。


推荐阅读