在同一LAN子网中发现设备(esp8266 / arduino)

时间:2018-10-26 21:18:21

标签: ionic-framework udp lan arduino-esp8266 service-discovery

我正在开发使用ESP8266(arduino固件)的产品。我正在开发一个Ionic应用程序作为主控制器。该产品在服务器上运行正常。但是所需的主要功能是通过LAN与设备进行通信。这些设备托管一台服务器,因此我可以使用其本地IP通过我的应用使用GET请求与它们进行通信。

但是问题在于发现这些设备。目前,我的方法是在子网中的所有IP上发送一个获取请求,并解析响应(如果有),并将活动IP存储在应用中;然后使用这些存储的IP进行通信以进行后续请求。

问题是向所有IP部分发送请求。这是一个缓慢的过程,而对于低端手机来说则更慢。

也许我想要的是一种从设备启动的设备接收通信的方法。像一次发信号通知所有IP(只是我的设备)以将其IP发送到我的手机一样。

这可以轻松完成吗?很快?准确吗?

1 个答案:

答案 0 :(得分:0)

一个选项是设置ESP8266来发布mDNS服务(也称为zeroconf,bonjour等。)。幸运的是,mDNS已内置在ESP8266 Arduino内核中。这里有一些基本的设置信息:https://tttapa.github.io/ESP8266/Chap08%20-%20mDNS.html,以及网络上的其他地方。

然后在离子方面,您可以使用Zeroconf / mDNS插件自动发现ESP8266。我过去曾经使用过此工具,效果很好:https://ionicframework.com/docs/native/zeroconf/