我有一个没有屏幕的设备+一个微控制器+一个wifi模块。
到目前为止很好,但基本上我想设置设备以使其可以连接到wifi网络,所以我制作了一个应用来实现这一目的。
策略是:
POST http://x.x.x.x/wifi_creds "Home" "homepassword"
GET http://x.x.x.x/conn_status
POST http://x.x.x.x/wifi_ap_mode 0
这很好用,但是需要用户手动连接到“ Device XXXX” ssid。 实际上,在Android上,我可以通过自动连接到该ssid来使事情变得更加轻松,但是我需要先找到ssid。
所以我的想法是扫描所有ssid,并连接到与模式/^Device [0-9a-zA-Z]{4}/
相匹配的第一个(例如Device 1234)。
但是,这似乎不是查找热点的好方法,并且可能会有更好的方法。 另外,我不想给它一个默认名称,因为它可能与另一个ssid冲突。
有没有其他方法可以找到我的设备(或我的设备ssid)而没有这个窍门?
我知道Google home能够连接到Chromecast,允许您在Chromecast处于AP模式时使用看起来像“ Chromecast XXXX”的ssid进行配置(禁用蓝牙时 ),我不确定他们是怎么做到的
答案 0 :(得分:-2)
**我(可能是错误地)认为您的无头设备基于Android。如果它是Android且具有蓝牙,尤其是低功耗蓝牙并且高于Android 5.0:
您可以让该设备充当蓝牙信标,并不断广播其SSID。
因此,您的应用程序首先扫描蓝牙信标-信标有效载荷可以是任意数据-也许是一些已知的硬编码GUID,以确保您正在与正确的蓝牙信标通信,并且还嵌入了SSID。
现在去扫描SSID并连接到它。
有关如何执行此操作的详细信息,请参见此library。
我相信您甚至可以配置一种'geofence',以便一旦进入信标范围,您的应用就会唤醒并进行配对。