У меня есть устройство без экрана + микроконтроллер + модуль Wi-Fi.
Пока все хорошо, но в основном я хотел бы настроить свое устройство, чтобы оно могло подключаться к сети Wi-Fi, поэтому я сделалприложение для этого.
Стратегия такова:
- переведите устройство в режим Wi-Fi AP с пользовательским ssid, таким как «Device XXXX»
- , подключитесь к этомуssid "Устройство XXXX"
- Запросите у пользователя домашние учетные данные Wi-Fi
- отправьте учетные данные на устройство (например, используя http) ->
POST http://x.x.x.x/wifi_creds "Home" "homepassword"
- опроситеустройство для проверки возможности подключения к «домашней» сети ->
GET http://x.x.x.x/conn_status
- После подключения остановите режим AP ->
POST http://x.x.x.x/wifi_ap_mode 0
Это работает довольно хорошо, но он требует, чтобы пользователь вручную подключился к ssid «Device XXXX».И на самом деле на Android я могу сделать еще проще, подключившись автоматически к этому ssid, но мне нужно сначала найти ssid.
Поэтому я хотел отсканировать все ssids и подключиться к первому, который соответствуетшаблон /^Device [0-9a-zA-Z]{4}/
(например, устройство 1234).
Однако это не похоже на хороший способ найти точку доступа, и может быть, есть лучший способ.Кроме того, я не хочу давать ему имя по умолчанию, поскольку оно может конфликтовать с другим ssid.
Есть ли другой способ найти мое устройство (или ssid моего устройства) без этого трюка?
Я знаю, что Google home может подключаться к Chromecast, позволяя вам настроить его, когда Chromecast находится в режиме AP с ssid, который выглядит как "Chromecast XXXX" (, когда Bluetooth отключен ), иЯ не уверен, как они это делают