Android 通过 Wifi 实施物联网设备配对过程

Implementing a IoT Device Pairing process in Android over Wifi

我目前正在致力于将 IoT 设备集成到云中。很多人都知道 Gosund 智能插头。只是为了好玩,我一直在玩弄原始固件,想知道这个耦合过程是如何解决的。 Gosund 插座基于 ESP8266,硬件方面没有蓝牙,只有 W-LAN。 Android 应用程序在配对时启动搜索过程,找到插座,发送设置并完成设置。但这在软件方面究竟是如何解决的?

我对此很感兴趣,因为我想以同样的方式为我们的应用重现它的解决方法。 我的第一个理论是 Gosunds 与 Tasmota 类似,打开一个接入点,后面有一个网络服务器,应用程序通过 REST 调用发送设置。

出于测试目的,我在一个小原型中实现了它,到目前为止它也能正常工作。但是您可以通过我的代码看到 phone 正在更改 wifi。打开的连接被关闭等等......使用 Gosund 应用程序时情况并非如此。我的手机 phone 一直在我的 W-LAN 中,但同时设法通过 Wifi 将设置发送到 gosund 插头

怎么解决的?

另类理论:应用程序打开一个接入点,gosund 插头尝试连接。但是 Android 能做到吗?保持登录到 wifi 并同时打开热点?

好的,现在我知道它是如何工作的了。诀窍是将 WiFi 凭据编码为未加密的 header UDP 数据包。然后 ESP 在所有可用的接入点上准确地搜索这些数据包。这允许从移动设备 phone 配置设备,而无需更改 WiFi 连接。这种技术称为 SmartConfig。

这里详细解释了它是如何工作的:https://www.eeweb.com/profile/steve6366/articles/smartconfig-how-to-turns-an-esp8266-into-a-smart-home-device