簡體   English   中英

設置無頭設備以連接到wifi網絡

[英]Setup a headless device to connect to a wifi network

我有一台沒有屏幕的設備+一個微控制器+一個wifi模塊。

到目前為止,還算不錯,但是基本上我想設置我的設備,使其可以連接到wifi網絡,因此我制作了一個應用來實現這一目的。

該策略是:

  • 使用自定義ssid(例如“設備XXXX”)將設備置於wifi AP模式
  • 連接到此ssid“設備XXXX”
  • 向用戶詢問其家庭wifi憑據
  • 將憑據發送到設備(例如,使用http)-> POST http://xxxx/wifi_creds "Home" "homepassword"
  • 輪詢設備以檢查其是否可以連接到“家庭”網絡-> GET http://xxxx/conn_status
  • 連接后,停止AP模式-> POST http://xxxx/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對其進行配置,但我不確定它們如何做吧

*我假設(也許是錯誤地)您的無頭設備基於Android。 如果它是Android且具有藍牙,尤其是低功耗藍牙並且高於Android 5.0:

您可以讓該設備充當藍牙信標,並不斷廣播其SSID。

因此,您的應用程序首先掃描藍牙信標-信標有效載荷可以是任意數據-也許是一些已知的硬編碼GUID,以確保您正在與正確的藍牙信標通信,並且還嵌入了SSID。

現在去掃描SSID並連接到它。

有關如何執行此操作的詳細信息,請參見此

我相信您甚至可以配置一種“地理信息”,以便一旦進入信標范圍,您的應用程序就會喚醒並進行配對。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM