通过Arduino使用ESP-WROOM-32(Bluetooth-BLE连接篇)

这篇文章来源于DevicePlus.com英语网站的翻译稿。

本文最初发布在deviceplus.jp网站上,而后被翻译成中文。

在本文中,我们将使用Bluetooth(BLE)功能连接ESP-WROOM-32与其他设备。

本项目电子设备清单
预计完成时间: 60分钟
所需部件:
ESP-WROOM-32 development board

目录
1. 什么是Bluetooth(蓝牙)?
2. Bluetooth和BLE的区别
3. 在ESP-WROOM-32上使用BLE前的准备
4. 示例程序的运行
5. 总结

1. 什么是Bluetooth(蓝牙)?
device connected with bluetooth

近年来,头戴式耳机、入耳式耳机、音箱、车载音响系统、鼠标、键盘等很多设备都开始支持Bluetooth通信。虽然与Wi-Fi等无线通信不同,但Bluetooth通信对于那些经常使用蓝牙功能的人来说应该已经成为一种比较熟悉的通信方式了。

那么,Bluetooth通信到底是一种什么样的通信方式呢?大家可能会有这样的印象:用Bluetooth功能可以和附近的设备通信,不能和遥远的设备通信。下面,让我们来大致了解一下Bluetooth的机制和规格。

Bluetooth(蓝牙)
Bluetooth(蓝牙)是一种无线通信技术规范,可实现固定设备和移动设备之间的短距离数据交换,还可用于构建个人局域网络(PAN)。该技术使用短波UHF无线电波进行数据传输,其波段为2.400 GHz至2.485GHz频段,这是全球范围内工业、科学和医疗领域可以使用的无线电频段。人们开发该技术的初衷是为了找寻一种替代RS-232数据线的无线通信方式。

现在,Bluetooth由蓝牙技术联盟(SIG)管理,该组织在电信、计算、网络和消费电子等领域拥有35000多家成员公司。IEEE将Bluetooth标准化为IEEE 802.15.1协议,但是已不再提供维护。蓝牙SIG负责监督蓝牙规范开发、管理证书认证并保护相关商标权益。要想销售蓝牙设备,制造商必须符合蓝牙SIG的标准。该技术拥有众多专利,可授权给各种合规设备。截至2009年,蓝牙集成电路芯片的年出货量约为9.2亿片。[改编自维基百科]
[改编自维基百科] https://en.wikipedia.org/wiki/Bluetooth

如维基百科中所述,Bluetooth基本上是一种用于数字设备的短距离无线通信标准

识别与连接方法
使用Bluetooth时,需要经过“配对”和“连接”的步骤。对于无线LAN而言,通常需要输入密码才能连接到接入点,而Bluetooth通信则需要一个设备检测并登录(认证)另一个设备的过程。

How the pairing works

什么是配对?
比如您想通过Bluetooth功能使用智能手机和耳机时,您需要先进行配对设置,这就像一个面对面的识别(即认证、信息注册)仪式,允许目标设备之间相互连接。如果没有这个仪式,比如,如果Bluetooth采用与无线LAN一样的机制,那么有可能发生这种事情:A正在使用耳机的过程中,B用密码认证将A的耳机与自己的智能手机连接起来,A的耳机上会播放B的智能手机上正在播放的音乐。为了防止这种问题,Bluetooth采用了一种对设备之间进行身份验证和注册、并在使用时只允许连接已注册设备的机制。
所以,对于Bluetooth设备而言,基本上每个Bluetooth模块只能同时建立一个连接。

2. Bluetooth和BLE的区别

大家应该见过有时会和Bluetooth一起出现的符号“BLE”吧?BLE是Bluetooth的一种。根据设备的类型和用途,某些设备是采用BLE方式进行通信的。BLE是“Bluetooth Low Energy”的首字母缩写,与普通的Bluetooth相比,是一种功耗更低的通信方式。

Bluetooth和BLE的区别在于通信速度和功耗。如果是发送数据量比较大的应用,比如蓝牙耳机等需要发送音频数据的设备,不适合用BLE通信方式,因为与普通的文本信息不同,这类应用对通信速度和功耗是有一定要求的。BLE的功耗较低,适用于简单的电源ON/OFF状态和可以用文本和数字简单表达的数据通信。(*BLE有时不需要配对)

Difference between Bluetooth and BLE

ESP-WROOM-32模块支持BLE通信功能,下面让我们尝试使用一下吧。

3. 在ESP-WROOM-32上使用BLE前的准备

现在,让我们尝试在ESP-WROOM-32上使用BLE功能。在第69篇中,我们已经搭建了环境,但仅凭这个环境是无法通过Arduino来使用BLE通信功能的,要想使用该功能,还需要下载所需的文件。

Github for this project

所需文件– ESP-BLE-Arduino
https://github.com/nkolban/ESP32_BLE_Arduino/tree/98cd2290d036a4e27db061a76a512b526ef1cc14

从上述页面的“Clone or download”下载文件(ZIP文件),并将文件保存在Arduino安装路径的libraries>BLE目录中。

Download files

将下载的文件保存在libraries>BLE目录下。

安装完这些文件后重启Arduino IDE,将会在“草图示例”下生成“ESP BLE Arduino”,只要您能看到它们,就证明准备好了。

BLE client

4. 示例程序的运行

接下来,我们将ESP-WROOM-32作为Bluetooth设备试用一下。从“File”-“Examples”-“ESP32 BLE Arduino”打开“BLE_client”程序,并将程序写入开发板。

程序写入完成后,将作为BLE的客户端启动(BLE是基于服务器-客户端的方式来传输数据的,相关概念将在后续文章中进行说明)。

在您的智能手机或其他设备上启用Bluetooth,并检测周围设备,应该会成功显示ESP-WROOM-32终端。

Settings on the phone

总结

在本文中,我们已做好了将ESP-WROOM-32用作BLE设备的准备。在下一篇文章中,我们将实际使用这种BLE通信功能,尝试在智能手机或其他设备上操作ESP-WROOM-32、将ESP-WROOM-32的数据发送到支持BLE的智能手机等功能。

DevicePlus 编辑团队
DevicePlus 编辑团队

设备升级版适用于所有热爱电子和机电一体化的人。

相关文章

  1. 在最后一刻停下来!用Arduino和距离传感器制作小鸡赛车!(第3篇•最终篇)

  2. 在最后一刻停下来!用Arduino和距离传感器制作小鸡赛车!(第2篇)

  3. 01

    在最后一刻停下来!用Arduino和距离传感器制作小鸡赛车!(第1篇)

  4. 通过Arduino使用ESP-WROOM-32(环境搭建和配置-LED闪烁篇)

  5. 六种可以用于扩展物联网应用的DIY项目

  6. 使用Arduino的五大DIY无人机项目

  7. 从电动滑板到无人机:5个DIY项目来提升您的电子技能

  8. Arduino车库开启器和通用无线电接口

  9. Arduino基础: 读取电压

TECH INFO

  • 重点必看
  • 技术分享
  • Arduino入门指南

基础知识

  • Si功率元器件
  • IGBT功率元器件
  • 热设计
  • 仿真
  • 开关噪声-EMC
  • AC/DC
  • DC/DC
  • 电机
  • 传递函数

工程技巧


PICK UP!

  1. 刘铭
  2. ROHM开发出业界先进的第4代低导通电阻
PAGE TOP