当前位置: 首页 > news >正文

BLE蓝牙配网双模式实操:STA+SoftAP技术原理与避坑指南

想让设备同时支持蓝牙快速配网与AP热点备份?STA+SoftAP双模式是关键!本文深度解析技术原理,结合真实项目案例总结实操避坑点,助你一文搞懂双模式配网逻辑,开发少走90%弯路。

本文特别分享蓝牙配网方案:

以Air8000核心板为例,实现“STA+SoftAP双模式BLE配网” 功能——手机通过BLE下发Wi-Fi账号/密码或热点参数,Air8000自动完成Station连接或SoftAP创建,并验证网络可用性。

一、蓝牙配网基础知识

简而言之,蓝牙配网是让Air8000工作在蓝牙配网模式下,手机APP通过蓝牙连接Air8000,通过APP界面实现配网功能。

1.1 蓝牙配网是什么

蓝牙配网——是一种利用蓝牙低功耗(BLE)链路,在未联网设备与手机之间建立本地安全通道,把Wi-Fi的SSID、密码及其他网络参数传递给设备,使其独立完成STA或SoftAP联网的技术方案。

1.2 蓝牙配网原理

设备在上电后进入配网模式,作为BLE Peripheral持续广播自定义的配网服务UUID;

手机APP作为Central扫描并建立GATT连接,随后通过加密特征值把网络参数下发给设备。

设备收到参数后,启用Wi-Fi并执行联网流程。

1.3 蓝牙配网流程

设备在上电后进入配网模式,作为BLE Peripheral持续广播自定义的配网服务UUID;

1)广播:

设备以固定间隔广播配网服务,等待手机连接。

2)连接:

手机APP扫描→选择目标设备→建立BLE连接。

3)选择配网方式:

在手机APP界面选择所需模式,两种模式主要区别如下:

Station模式:

设备直接作为Station连接路由器,应用中也常缩写为STA模式。

SoftAP模式:

设备通过4G开AP热点,用于其他设备连接。

二、蓝牙配网示例demo

Air8000应用示例持续更新中,此处仅展示部分代码要点,完整demo详见源码仓库最新文件。

最新源码/APP下载:https://gitee.com/openLuat/LuatOS/tree/master/module/Air8000/demo/config_wifi_network/ble_config_wifi

实操教程详见:https://docs.openluat.com/air8000/luatos/app/wifi/ble/

2.1 初始化蓝牙等相关功能

使用蓝牙配网,首先需要初始化蓝牙设备并启动espblufi配网功能。
image

2.2 定义espblufi回调函数

定义espblufi回调函数,用于处理不同类型的事件。

例如:

EVENT_STA_INFO、EVENT_SOFTAP_INFO等。

image

2.3 定义网络测试功能函数

用于接收: "STA_CONNED"、"STA_DISCONNED"、"AP_CONNED"等消息来进行对应的逻辑处理。
image

三、蓝牙配网实操要点

以下是Station模式和SoftAP模式的配网功能演示,新朋友可查看资料中心详细教程:

https://docs.openluat.com/air8000/luatos/app/wifi/ble/

- Station模式配网 -

1)首先使用LuaTools将固件和脚本烧录到核心板,开机运行查看日志:

image

2)此时打开手机APP端,可以看到已经扫描到我们的设备了(如果没有扫描到就重启一下设备,并下拉刷新APP)。

image

3)点击我们的设备,进入配网界面,点击连接,就可以进行配网的操作了:
image

4)点击配网,进行Station配网模式,选择需要连接的Wi-Fi,输入对应的密码,即可开始连接。
image

5)此时查看日志,即可看到STA已经连接成功,并且进行HTTP请求成功。
image

- SoftAP模式配网 -

1)首先参照上方Station模式的方式,烧录、开机、打开APP连接、进入配网界面:
image

2)此时,点击配网,选择SoftAP模式,配置AP热点:
image

image

3)在这里可以选择加密方式、信道号、最大连接数,根据自己的需求选填:
image

4)点击确定后,开始建立AP热点:
image

5)此时使用设备进行连接,连接成功即可正常使用。

image

今天的内容就分享到这里了~

http://www.gsyq.cn/news/8155.html

相关文章:

  • 第58天:RCE代码amp;命令执行amp;过滤绕过amp;异或无字符amp;无回显方案amp;黑白盒挖掘
  • Dilworth定理及其在算法题中的应用
  • AI一周资讯 250913-250919
  • QMT交易系统向服务器同步订单丢失问题排查
  • 笔记1
  • 实用指南:OSPF特殊区域、路由汇总及其他特性
  • 实用指南:Ubuntu22.04安装配置typora
  • python 读取大文档优化示例
  • HR 需了解的绩效评估应包含的内容
  • 解题报告-P12022 [USACO25OPEN] Hoof Paper Scissors Minus One B
  • CentOS架构修改网卡命名的方法总结
  • 主流的开源协议(MIT,Apache,GPL v2/v3) - 实践
  • 解题报告-P12025 [USACO25OPEN] Sequence Construction S
  • 解题报告-P12026 [USACO25OPEN] Compatible Pairs S
  • ctfshow web52
  • S32K3便捷的平台eMIOS 应用说明
  • Ubuntu 18.04 LTS 安装 6.10.10 内核 - 教程
  • ctfshow web39
  • 国标GB28181视频平台EasyGBS核心功能解密:如何实现海量设备的录像精准检索与高效回放?
  • 行程长度编码
  • mysql 虚拟列,可以简化 SQL 逻辑、提升查询效率
  • 多站点的TSP问题求解-06 - jack
  • C# CAN通信上位机系统设计与实现
  • 进程池VS线程池
  • python+Django开发笔记(结合禅道开发测试报告)
  • Questions about learning Symfony
  • ctfshow web22(子域名爆破)
  • PLC中的运动控制 - (一)轴
  • ctfshow web23(代码审计编写脚本爆破)
  • 完整教程:ARM指令集总结