Flutter 和物联网设备

时间:2021-04-16 10:00:24

标签: flutter dart esp32 platformio

我目前正在构建一个应用程序来控制单个执行器和 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 上显示的其他设备分开。

你们有什么建议吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

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

例如我的一批模块都以 40:F5:20:...

开头

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

这显然是一种权宜之计。确保更多设备使用某些标识(mDNS 或其他方式)外出。