Руководство по настройке BluFi

В этом документе описано, как включить и использовать BluFi (настройка Wi-Fi через BLE) в прошивке XiaoZhi. Подключение к Wi-Fi и хранение учётных данных обеспечивает входящий в репозиторий компонент esp-wifi-connect. Подробности протокола см. в официальной документации Espressif по BluFi.

Предварительные условия

  • Чип и конфигурация прошивки должны поддерживать BLE.
  • В idf.py menuconfig включите WiFi Configuration Method -> ESP-BluFi (CONFIG_USE_ESP_BLUFI_WIFI_PROVISIONING=y). Чтобы использовать BluFi, отключите в этом же меню пункт Hotspot: иначе по умолчанию побеждает настройка через точку доступа.
  • Оставьте без изменений стандартную инициализацию NVS и цикла событий в app_main проекта.
  • Из CONFIG_BT_BLUEDROID_ENABLED и CONFIG_BT_NIMBLE_ENABLED должен быть выбран ровно один: они взаимно исключают друг друга.

Порядок работы

  1. Телефон (официальное приложение EspBlufi или другой клиент BluFi) подключается к устройству по BLE и отправляет SSID и пароль целевой сети Wi-Fi. Через протокол BluFi телефон может также запросить список сетей Wi-Fi, найденных устройством.
  2. В обработчике ESP_BLUFI_EVENT_REQ_CONNECT_TO_AP устройство сохраняет учётные данные в SsidManager (компонент esp-wifi-connect записывает их в NVS).
  3. Затем устройство запускает WifiStation для поиска сети и подключения; ход выполнения передаётся обратно по BluFi.
  4. При успешной настройке устройство автоматически подключается к новой сети Wi-Fi. При ошибке в ответ отправляется статус ошибки.

Шаги

  1. Конфигурация: включите ESP-BluFi в menuconfig, затем соберите и прошейте прошивку.
  2. Запуск настройки: при первом включении без сохранённых данных Wi-Fi устройство автоматически переходит в режим настройки.
  3. На стороне телефона: откройте приложение EspBlufi (или другой клиент BluFi), найдите устройство и подключитесь к нему, при необходимости включите шифрование, затем введите SSID и пароль Wi-Fi и отправьте их.
  4. Проверка результата:
    • Успех: BluFi сообщает об успехе, устройство подключается к Wi-Fi.
    • Ошибка: BluFi сообщает об ошибке; повторите попытку или проверьте роутер.

Примечания

  • BluFi нельзя использовать одновременно с настройкой через точку доступа. Если настройка через точку доступа включена, устройство будет использовать её. Оставьте в menuconfig только один способ настройки.
  • При повторных проверках очищайте или перезаписывайте сохранённый SSID (пространство имён NVS wifi), чтобы устаревшие данные не влияли на следующий запуск.
  • Если вы пишете собственный клиент BluFi, следуйте формату кадров протокола из официальной документации по ссылке выше.
  • Ссылки на загрузку приложения EspBlufi приведены в официальной документации.
  • Устройство объявляет имя Bluetooth Xiaozhi-Blufi (задаётся в ESP_BLUFI_EVENT_INIT_FINISH). Прежняя прошивка, собранная на ESP-IDF 5.5.1, использовала BLUFI_DEVICE; для текущей прошивки нужен ESP-IDF v6.0.1 или новее.

Источник: docs/blufi.md в 78/xiaozhi-esp32