VS ESP32-IDF 蓝牙配置WiFi

一、环境配置:

哔哩哔哩搜索WIN10-idf,手把手教学,版本可能有点低,但大同小异。

不相信看完这个视频还有人不会Win10搭建ESP-IDF环境_哔哩哔哩_bilibili

二、以一个蓝牙例程为基准

这里以

Espressif\frameworks\esp-idf-v5.0.1\examples\bluetooth\bluedroid\

ble_50\ble50_security_server

为模板,在此基础上添加WiFi事件。

WiFi.c 完成最基础的连接WiFi

#include <wifi.h>
wifi_config_t cfg1;
void wifi_init(void)
{
    esp_netif_init();                                    // 用于初始化tcpip协议栈
    esp_event_loop_create_default();                     // 函数用于创建一个默认的事件循环
    esp_netif_create_default_wifi_sta();                 // 创建wifi sta
    wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); // 用于获取wifi的默认配置
    esp_wifi_init(&cfg);                                 // 用于初始化wifi
    esp_wifi_set_config(WIFI_IF_STA, &cfg1);             // 设置wifi参数;
    esp_wifi_set_mode(WIFI_MODE_STA);                    // 配置wifi工作模式
    esp_wifi_start();//开启wifi
    esp_wifi_connect();//连接WiFi
}

WiFi.h

#include <esp_event.h>
#include <esp_wifi.h>
#include <esp_log.h>
#include <esp_netif.h>
#include <esp_netif_ip_addr.h>
#include <nvs_flash.h>
#include <string.h>

extern void wifi_init(void);

ble50_sec_gatts_demo.c 找到里面的gatts_profile_event_handler函数,处理事件;找到里面的从客户端写事件

extern wifi_config_t cfg1;//定义WiFi参数结构体为全局
...
case ESP_GATTS_WRITE_EVT:
        if (param->write.len == 4)//wifi账号为4位
        {
            bzero(&cfg1.sta, sizeof(cfg1.sta));
            memcpy(cfg1.sta.ssid, param->write.value, param->write.len);
            ESP_LOGI("WIFI", "ssid:%s", cfg1.sta.ssid);
            esp_wifi_disconnect();
        }
        if (param->write.len == 8)//密码为8位
        {
            memcpy(cfg1.sta.password, param->write.value, param->write.len);
            ESP_LOGI("WIFI", "password:%s", cfg1.sta.password);
            wifi_init();
        }

        break;

至此,就能用蓝牙客户端配置输入WiFi的ssid和password,连接上热点。

可以借助微信小程序 谷雨蓝牙 测试。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值