本帖最后由 GE-Rita 于 2021-5-17 21:13 编辑
开发环境:esp-idf:v4.3-beta3
开发环境搭建以及使用参考链接:
ESP32-C3上手笔记 | 01 - ESP32 C3开发环境搭建(ESP-IDF)
工程代码:
链接:BluFi工程代码
提取码:axke
调试软件——EspBluFi
软件下载链接:EspBluFi(for android or IOS)
操作过程:
(1)四个事件处理
1)wifi部分的事件处理
- static void wifi_event_handler(void* arg, esp_event_base_t event_base,
- int32_t event_id, void* event_data)
复制代码
设置WiFi模式(STA模式、AP模式以及STA/AP模式);
连接WiFi;
WiFi断开重连处理;
2)netif部分的事件处理
- static void ip_event_handler(void* arg, esp_event_base_t event_base,
- int32_t event_id, void* event_data)
复制代码
获取网络IP地址,完成IP接口搭建(默认IO口);
更多netif功能介绍与使用参考链接:ESP-NETIF
3)blufi配网部分的事件处理(此过程事件的处理均按照收到的请求作相应的功能处理,可按照个人需求进行修改)
- static void example_event_callback(esp_blufi_cb_event_t event, esp_blufi_cb_param_t *param)
复制代码 完成blufi功能初始化,设置 设备名称(Device Name) 并发送特定的 adv data 广播;
处理deinit配置事件;
连接Blufi Ble,并设备进入安全模式;
设置ble断开重连;
设置WiFi进入运行模式——op_mode;
设置断开核心板原有的WiFi连接,并连接指定WiFi;
断开当前WiIFi连接到的AP;
上报错误信息;
获取WiFi状态信息,包括:WiFi当前模式、以及是否连接成功;
关闭blufi的gatt服务连接;
设置核心板进入STA模式,获取目标AP的bssid;
设置核心板进入STA模式,获取目标AP的WiFi账号;
设置核心板进入STA模式,获取目标AP的WiFi密码;
设置核心板进入soft AP模式,获取AP自定义账号;
设置核心板进入soft AP模式,获取AP自定义密码;
设置核心板soft AP模式下最大可连接设备数量;
设置核心板soft AP模式下进入认证模式;
设置核心板soft AP模式下的通讯通道;
获取扫描到的空中WiFi账号、通信通道以及站点MAC地址;
将接收到的数据打印出来;
相关事件标志位的含义可参考定义文件:
esp-idf-v4.3-beta3\components\bt\host\bluedroid\api\include\api\esp_blufi_api.h

4)ble网关事件处理- static void example_gap_event_handler(esp_gap_ble_cb_event_t event, esp_ble_gap_cb_param_t *param)
复制代码 用于当adv data数据报组装完成以后发送adv data广播
(2)主程序
1)初始化WiFi;
2)初始化蓝牙控制器;
3)使能蓝牙控制器;
4)初始化bluedroid;
5)使能bludroid;
6)获取蓝牙地址;
7)获取blufi版本号;
8)创建蓝牙网关处理事件;
9)创建blufi事件;
更多blufi配网功能函数的介绍参考文档:BLUFI API
工程代码烧录完成以后,打开EspBluFi软件,选中核心板蓝牙名称(BLUFI_DEVICE_NAME),本例程的设备名称为“EP32C3”,进入配置界面,点击“连接”;
(1)
(2)
界面显示连接成功且打印蓝牙信号强度等信息之后,选中“配网”,输入本地WiFi账号与密码,点击确定,待板子连接上WiFi之后,将反馈WiFi各项状态信息;
(1)
(2)
(3)
整个调试过程,开发板数据接收情况如下:

|