news 2026/6/15 20:39:08

BLE 蓝牙开发入门:用手机控制开发板 LED

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
BLE 蓝牙开发入门:用手机控制开发板 LED

📱 BLE 蓝牙开发入门:用手机控制开发板 LED

学 BLE,不从点灯开始,等于白学。

这一篇,我们用最经典、成功率最高的 BLE Demo:
手机 → 蓝牙 → 单片机 → 控制 LED

帮你真正入门 BLE,而不是只停留在“概念层”。


一、BLE 到底在干嘛?先用一句话讲清楚

BLE(Bluetooth Low Energy)本质是:

通过“属性(Attribute)”读写数据,实现设备之间的交互。

点灯这件事,本质上就是:

  • 手机写一个值
  • MCU收到这个值
  • MCU根据值控制 GPIO

二、BLE 架构速览(新手必懂)

在 BLE 中,有 3 个关键角色:

名称作用
Central手机(主控)
Peripheral开发板
GATT Server提供服务与特征

本例中:

  • 手机 = Central
  • 开发板 = Peripheral + GATT Server

三、整体方案设计(先有全局观)

我们要做什么?

  1. 开发板广播 BLE
  2. 手机扫描并连接
  3. 手机写 LED 控制指令
  4. MCU 收到写事件
  5. 控制 LED 亮 / 灭

数据设计(非常重要)

我们设计一个最简单的协议:

写入值含义
0x00LED OFF
0x01LED ON

四、准备工作说明

硬件

  • 任意支持 BLE 的 MCU
    (如 EFR32 / nRF52 / ESP32 / STM32WB)
  • 一个 LED(板载即可)

软件

  • MCU 官方 BLE SDK

  • 手机 BLE 调试 App
    推荐:

    • nRF Connect
    • LightBlue

五、BLE 服务与特征设计(核心)

BLE 通信的核心是:

Service + Characteristic

1️⃣ 自定义 LED Service

Service UUID: 0xFFF0

2️⃣ LED Control Characteristic

Characteristic UUID: 0xFFF1 Property: Write / Write Without Response

六、MCU 端关键实现思路

1️⃣ 初始化 BLE 并开始广播

逻辑上等价于:

ble_init();ble_start_advertising();

手机能扫描到你,说明这一步成功了。


2️⃣ 处理手机写特征值事件(重点)

BLE SDK 一般会给你一个写事件回调

voidon_led_char_write(uint8_t*data,uint16_tlen){if(data[0]==0x01){LED_ON();}else{LED_OFF();}}

注意几点:

  • 不要在这里做复杂逻辑
  • 只解析数据 + 控 GPIO
  • 保证执行快

七、手机端操作步骤(新手成功率 100%)

  1. 打开nRF Connect

  2. 扫描设备

  3. 找到你的开发板

  4. 点击连接

  5. 展开 GATT

  6. 找到FFF1特征

  7. 写入:

    • 01→ LED 亮
    • 00→ LED 灭

如果 LED 跟着变化——
🎉恭喜,BLE 通了。


八、为什么 BLE 点灯是“入门必做”?

因为这个例子:

  • 覆盖了BLE 全流程

  • 能验证:

    • 广播是否成功
    • 连接是否稳定
    • GATT 是否正确
    • 数据链路是否可用

一句话:

点亮 LED,等于验证了 BLE 的 80%。


九、新手最常踩的 8 个坑

❌ 扫描不到设备

  • 广播没开
  • UUID 配错
  • 手机没开蓝牙

❌ 能连上但写无效

  • Characteristic 没开 Write
  • 回调函数没注册

❌ 写一次就断开

  • 回调里做了阻塞操作
  • 栈溢出

❌ LED 状态不对

  • GPIO 没初始化
  • 高低电平反了

❌ 手机上写的是字符串"01"

👉 BLE 是字节,不是 ASCII。


十、这个 Demo 的工程价值

它不是玩具。

它是后续所有 BLE 项目的基础:

  • BLE 控制继电器
  • BLE 控制电机
  • BLE 参数配置
  • BLE OTA
  • BLE 智能家居

十一、下一步可以怎么进阶?

  • LED 状态Notify 回手机
  • 多个 LED / 多路 IO
  • 加入密码 / 加密
  • BLE + RTOS
  • BLE 低功耗优化

十二、总结一句话

BLE 学习的第一道门槛,
就是让“手机写的数据,真的能控制硬件”。

当你用手机点亮 LED 的那一刻,
你已经真正走进了BLE 工程开发


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 16:31:31

红圈AI来了!做工程项目的你还在为这5件事熬夜吗?

凌晨一点,项目经理老张的手机屏还亮着。Excel表格里密密麻麻的数字,像蚂蚁一样爬满了屏幕。明天经营分析会的材料还没整理完——成本数据对不上,资金报表有缺口,供应商款情况更是一团乱麻。这不是老张一个人的夜晚,而是千千万万工程人的日常缩影。但就在最近,一些同行老板的朋友…

作者头像 李华
网站建设 2026/6/15 12:17:47

提示工程架构师揭秘:企业级AI应用提示工程中提示模板的设计与复用

提示工程架构师揭秘:企业级AI应用提示模板的设计与复用 引言:企业级AI应用的“提示工程痛点” 在企业级AI应用中,提示工程是连接业务需求与模型能力的关键桥梁。然而,当企业从“试点型AI项目”进入“规模化落地”阶段时&#xff0…

作者头像 李华
网站建设 2026/6/15 13:39:04

红蓝对抗 网络安全 网络安全红蓝对抗演练

什么是红蓝对抗 在军事领域,演习是专指军队进行大规模的实兵演习,演习中通常分为红军、蓝军,演习多以红军守、蓝军进攻为主。类似于军事领域的红蓝军对抗,网络安全中,红蓝军对抗则是一方扮演黑客(蓝军&…

作者头像 李华
网站建设 2026/6/15 13:24:56

【网安区块链项目参考】基于区块链的安全日志防篡改系统的设计与实现

整个系统资料包含:全套源码注释开发文档部署指导说明,需要的话可以私信博主获取,伸手党勿扰基于区块链的安全日志防篡改系统的设计与实现摘要随着信息系统规模的不断扩大,系统安全日志在网络安全审计、入侵检测与事后取证中发挥着…

作者头像 李华
网站建设 2026/6/15 12:22:54

C++2026核心介绍

C 核心介绍C 是由 Bjarne Stroustrup 在 1980 年代基于 C 语言扩展而来的编程语言,核心特点是兼容 C 语言且新增了面向对象编程(OOP)特性,同时保留了对底层硬件的直接操控能力,因此被称为 “混合范式语言”—— 既支持…

作者头像 李华
网站建设 2026/6/15 14:25:30

HarmonyOS 中如何避免线程阻塞?从原理到实战的完整解析

摘要 随着 HarmonyOS / OpenHarmony 在手机、平板、智慧屏、车机等多设备上的落地,应用的复杂度正在明显提升。页面不再只是简单展示,而是伴随着网络请求、数据计算、设备协同等大量逻辑。如果这些逻辑处理不当,很容易出现页面卡顿、点击无响…

作者头像 李华