没有WPS的设备如何获取我的网络的SSID和密码?


13

我正在研究使IoT设备访问用户的wifi网络的方法。我知道WPS方式,即设备被命令收听,“接收”并给予设备访问权限后,在其中“广播”信号和路由器。设备还有一种创建自己的接入点的方法,用户连接到该设备即可传递家庭网络的SSID和密码。还有其他方法可以做到这一点吗?

我已经读过这篇文章,讨论这种'ProbMe' 方法

我可能是错的,但是Broadlink Rm Pro可能会执行以下操作。最近,我配置了其中之一,而我只需要:

  1. 将我的智能手机连接到wifi

  2. 扫描QR码或在Broadlink App中键入代码

  3. 在Broadlink应用程序中输入我的网络SSID和密码

  4. 而且,我不知道设备如何连接到我的网络,该应用程序甚至具有其MAC地址。

你们中的任何人是否对此ProbMe方法和/或其他替代方法更了解,以使IoT设备可以访问用户wifi网络?

编辑:搜索ProbMe时,我发现这是一家名为Econais的公司的技术,只要共享您想开发/生产类似产品的公司,该公司就可以使用IoT软件/硬件。免责声明:我不在Econais工作,也没有以任何方式参与其中。


1
这里有点回答。许多wifi芯片都有能力在客户端模式和接入点模式之间切换。ESP8266能够iot.stackexchange.com/questions/2568/...
GusGorman402

感谢您的评论@ GusGorman402。客户端模式/接入点模式是解决我的问题的好方法。无论如何,我想指出的是,我指的是我的问题的Broadlink设备没有使用类似的东西,至少我不认为这样做,因为我的智能手机没有切换wifi,因此它既没有手动连接也无法通过编程方式连接。我敢打赌,它类似于ProbMe方法。
Eric Akira

我认为这使用的是乐鑫开发的ESP-Touch协议文章提供了一些细节和一些Arduino的代码通过WiFi.beginSmartConfig()函数来使用它。我自己尚未对此进行测试,因此尚未将其作为答案,但如果/当我开始工作时,我将更新任何详细信息。
jsaven

Answers:


9

如果您使用的是ESP8266,内置的Smart Config功能可以实现这一点。在这里可以找到一个示例:ESP8266 Arduino WiFiSmartConfig.ino

重要步骤是设置为STA模式: WiFi.mode(WIFI_STA);

然后开始寻找智能配置数据包: WiFi.beginSmartConfig();

最后检查配置是否完整: WiFi.smartConfigDone()

然后可以使用iPhoneAndroid Ap在设备上配置wifi ,也可以从Espressif iOS ApAndroid Ap构建自己的wifi 。

ESP32也具有此功能;请参阅演示11:如何在Arduino ESP32上使用SmartConfig


1

我购买的大多数设备(IP摄像机,电灯开关,电源插座)都在后台使用超声波通信。看看Chromecast,Lisnr和Chirp等品牌。

当设备处于配置模式时,您必须将智能手机靠近设备,客户端应用程序将发送音频信号(可以听见或听不到),并调制了SSID和密码。听起来像石器时代,但是它没有多余的装饰:)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.