当前位置: 首页 > 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.hskmm.com/?act=detail&tid=9838

相关文章:

  • 第58天:RCE代码amp;命令执行amp;过滤绕过amp;异或无字符amp;无回显方案amp;黑白盒挖掘
  • 057-Web攻防-SSRFDemo源码Gopher项目等
  • 060-WEB攻防-PHP反序列化POP链构造魔术方法流程漏洞触发条件属性修改
  • 059-Web攻防-XXE安全DTD实体复现源码等
  • 061-WEB攻防-PHP反序列化原生类TIPSCVE绕过漏洞属性类型特征
  • 051-Web攻防-文件安全目录安全测试源码等
  • Dilworth定理及其在算法题中的应用
  • 050-WEB攻防-PHP应用文件包含LFIRFI伪协议编码算法无文件利用黑白盒
  • error: xxxxx does not have a commit checked out
  • 049-WEB攻防-文件上传存储安全OSS对象分站解析安全解码还原目录执行
  • 云原生周刊:MetalBear 融资、Chaos Mesh 漏洞、Dapr 1.16 与 AI 平台新趋势
  • AI一周资讯 250913-250919
  • 045-WEB攻防-PHP应用SQL二次注入堆叠执行DNS带外功能点黑白盒条件-cnblog
  • linux 命令语句
  • 用 Kotlin 实现英文数字验证码识别
  • 达芬奇(DaVinci Reslove)字体文件 bugb标签
  • 语音芯片怎样挑选?语音芯片关键选型要点?
  • KingbaseES Schema权限及空间限额
  • HTTP库开发实战:核心库与httpplus扩展库示例解析
  • QMT交易系统向服务器同步订单丢失问题排查
  • 笔记1
  • 用 Python 和 Tesseract 实现英文数字验证码识别
  • 实用指南:OSPF特殊区域、路由汇总及其他特性
  • 禅道以及bug
  • 中电金信 :MCP在智能体应用中的挑战与对策
  • 第一次参与开源的时序数据库 IoTDB Committer:这份成就感是无可替代的
  • ECT-OS-JiuHuaShan 框架元推理的意义、价值、作用、应用场景和哲学理念的充分阐述:AGI奇点
  • CSP 2025 复赛复习总目标与计划
  • mysql区分大小写吗,你可能忽略了这些关键细节
  • route-link 和 a 的区别