Настройка устройства без наушников для подключения к сети Wi-Fi - PullRequest
4 голосов
/ 22 мая 2019

У меня есть устройство без экрана + микроконтроллер + модуль 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 отключен ), иЯ не уверен, как они это делают

1 Ответ

0 голосов
/ 30 мая 2019

* Я предположил (возможно, ошибочно), что ваше безголовое устройство работает на базе Android.Если это Android и имеет Bluetooth, в частности Bluetooth Low Energy и выше Android 5.0:

Вы можете заставить устройство выступать в качестве маяка Bluetooth, который постоянно передает свой SSID.

Таким образом, ваше приложение сначала сканирует маяки Bluetooth - полезная нагрузка маяка может быть любыми произвольными данными - возможно, какой-то известный GUID с жестким кодом, чтобы убедиться, что вы говорите с правильным маяком Bluetooth, а также встраивает SSID.

Теперьи отсканируйте SSID и подключитесь к нему.

Подробнее о том, как это сделать, см. в библиотеке .

Полагаю, вы даже можете настроить своего рода геозону.'так что, как только вы попадаете в зону действия маяка, ваше приложение просыпается и выполняет сопряжение.

...