/** * @file bluetooth_provisioning_config.h * @brief 蓝牙配网配置文件 * * 本文件定义了蓝牙配网功能的各种配置参数,包括设备名称、 * 安全设置、超时时间等,可根据项目需求进行调整 */ #pragma once #ifdef __cplusplus extern "C" { #endif /** * @brief 蓝牙配网基本配置 */ // 设备名称最大长度 #define BT_PROVISIONING_MAX_DEVICE_NAME_LEN 32 // SSID最大长度 #define BT_PROVISIONING_MAX_SSID_LEN 32 // 密码最大长度 #define BT_PROVISIONING_MAX_PASSWORD_LEN 64 /** * @brief 蓝牙配网超时配置 */ // 广播超时时间(毫秒),0表示永不超时 #define BT_PROVISIONING_ADV_TIMEOUT_MS 0 // 客户端连接超时时间(毫秒) #define BT_PROVISIONING_CLIENT_TIMEOUT_MS (5 * 60 * 1000) // 5分钟 // WiFi连接超时时间(毫秒) #define BT_PROVISIONING_WIFI_TIMEOUT_MS (100 * 1000) // 100秒,增加超时时间避免过快重新进入配网 // WiFi连接最大重试次数 #define BT_PROVISIONING_WIFI_MAX_RETRY 2 /** * @brief 蓝牙配网安全配置 */ // 是否启用安全模式(加密通信) #define BT_PROVISIONING_SECURITY_ENABLED 0 // 是否需要配对确认 #define BT_PROVISIONING_REQUIRE_PAIRING 0 // 预共享密钥(PSK)- 用于加密通信 // 注意:如果启用安全模式,客户端也需要使用相同的PSK #define BT_PROVISIONING_PSK "Airhub2025" /** * @brief 蓝牙配网功能开关 */ // 是否启用WiFi扫描功能 #define BT_PROVISIONING_ENABLE_WIFI_SCAN 1 // 是否自动发送WiFi状态报告 #define BT_PROVISIONING_AUTO_REPORT_STATUS 1 // 是否在配网成功后自动停止蓝牙服务 #define BT_PROVISIONING_AUTO_STOP_ON_SUCCESS 1 // 自动停止延迟时间(毫秒) #define BT_PROVISIONING_AUTO_STOP_DELAY_MS 5000 // 是否在配网失败后自动重启配网服务 #define BT_PROVISIONING_AUTO_RESTART_ON_FAIL 1 // 自动重启延迟时间(毫秒) #define BT_PROVISIONING_AUTO_RESTART_DELAY_MS 10000 /** * @brief 蓝牙配网日志配置 */ // 日志标签 #define BT_PROVISIONING_LOG_TAG "BluetoothProvisioning" // 是否启用详细日志 #define BT_PROVISIONING_VERBOSE_LOG 1 // 是否记录WiFi密码(安全考虑,建议设为0) #define BT_PROVISIONING_LOG_PASSWORD 0 /** * @brief 蓝牙配网性能配置 */ // 蓝牙配网任务栈大小(字节) #define BT_PROVISIONING_TASK_STACK_SIZE 8192 // 蓝牙配网任务优先级 #define BT_PROVISIONING_TASK_PRIORITY 5 // 蓝牙配网任务核心绑定(-1表示不绑定) #define BT_PROVISIONING_TASK_CORE_ID -1 /** * @brief 蓝牙广播参数配置 */ // 广播间隔最小值(单位:0.625ms) #define BT_PROVISIONING_ADV_INT_MIN 0x20 // 20ms // 广播间隔最大值(单位:0.625ms) #define BT_PROVISIONING_ADV_INT_MAX 0x40 // 40ms // 广播类型 #define BT_PROVISIONING_ADV_TYPE ESP_BLE_ADV_TYPE_IND // 广播通道映射 #define BT_PROVISIONING_ADV_CHNL_MAP ESP_BLE_ADV_CHNL_ALL // 广播过滤策略 #define BT_PROVISIONING_ADV_FILTER_POLICY ESP_BLE_ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY /** * @brief 蓝牙连接参数配置 */ // 连接间隔最小值(单位:1.25ms) #define BT_PROVISIONING_CONN_INT_MIN 0x10 // 20ms // 连接间隔最大值(单位:1.25ms) #define BT_PROVISIONING_CONN_INT_MAX 0x20 // 40ms // 从设备延迟 #define BT_PROVISIONING_SLAVE_LATENCY 0 // 监督超时(单位:10ms) #define BT_PROVISIONING_SUPERVISION_TIMEOUT 0x48 // 720ms /** * @brief 蓝牙配网状态指示配置 */ // 是否启用LED状态指示 #define BT_PROVISIONING_ENABLE_LED_INDICATOR 1 // 是否启用蜂鸣器状态指示 #define BT_PROVISIONING_ENABLE_BUZZER_INDICATOR 0 // 是否启用语音提示 #define BT_PROVISIONING_ENABLE_VOICE_PROMPT 1 /** * @brief 蓝牙配网数据存储配置 */ // 是否保存WiFi凭据到NVS #define BT_PROVISIONING_SAVE_CREDENTIALS 1 // NVS命名空间 #define BT_PROVISIONING_NVS_NAMESPACE "bt_prov" // WiFi SSID存储键 #define BT_PROVISIONING_NVS_SSID_KEY "wifi_ssid" // WiFi密码存储键 #define BT_PROVISIONING_NVS_PASSWORD_KEY "wifi_pass" // WiFi BSSID存储键 #define BT_PROVISIONING_NVS_BSSID_KEY "wifi_bssid" /** * @brief 蓝牙配网兼容性配置 */ // 是否兼容ESP-IDF官方配网APP #define BT_PROVISIONING_COMPATIBLE_OFFICIAL_APP 1 // 是否支持自定义数据传输 #define BT_PROVISIONING_SUPPORT_CUSTOM_DATA 1 // 自定义数据最大长度 #define BT_PROVISIONING_MAX_CUSTOM_DATA_LEN 512 /** * @brief 编译时配置检查 */ // 检查必要的ESP-IDF组件是否启用 #ifndef CONFIG_BT_ENABLED #warning "蓝牙配网需要启用CONFIG_BT_ENABLED" #endif #ifndef CONFIG_BLUEDROID_ENABLED #warning "蓝牙配网需要启用CONFIG_BLUEDROID_ENABLED" #endif #ifndef CONFIG_BT_BLUFI_ENABLE #warning "蓝牙配网需要启用CONFIG_BT_BLUFI_ENABLE" #endif #ifndef CONFIG_ESP32_WIFI_ENABLED #warning "蓝牙配网需要启用WiFi功能" #endif #ifdef __cplusplus } #endif