【经验】10分钟完成BLE蓝牙智能工程搭建到数据交互代码实现


随着物联网(IoT)的快速发展,BLE蓝牙智能设备被广泛应用,越来越多的嵌入式工程师们开始自己的蓝牙工程代码开发历程,此时此刻或许你手头上正拿着一颗BLE蓝牙SoC芯片或者评估板。芯片的用户手册至少也有几百页,多的上千页。再加上蓝牙协议栈和接口函数的无数页文档。淡定!千万别炸了!要快速完成自己项目应用代码,要选择什么样的蓝牙SOC芯片,什么样的开发平台,又该从哪里开始写起第一行代码呢?
本文详细介绍一款SILICON LABS 公司的低功耗蓝牙智能SoC芯片EFR32BG系列,支持最新的蓝牙5.0版本协议栈。采用Silicon Labs一站式开发平台simplicity studio V4(以下简称SSv4),内嵌免费GUN编译工具(基于GCC)和蓝牙5.0协议栈。支持可视化配置功能和代码自动生成功能! "仅需十分钟!",即可让你在不用看一页数据手册的情况下,完成自己的蓝牙软件工程搭建和数据交互代码实现。实现快速开发,快速产品上市就是我们的目标。你准备好了吗?Ready Go…
本文的具体目标是:
1)创建一个EFR32BG蓝牙工程。
2)新建自己的server和characteristic。
3)代码实现蓝牙广播,连接,与手机APP端实现蓝牙数据交互,连接断开并重新开始蓝牙广播。
1、运行SSv4软件,选择正确的的芯片型号,请以实际拿到的芯片型号为准。如下图:
2、选择Bluetooth SDK。
3、选择SOC-Empty 空工程,并给新建的工程命名。
4、再次确认芯片型号,并选择GUN编译工具。也可以选择IAR编译工具。目前EFR32BG支持这两种编译工具。点击最后一步"Finish"之后,等待SSv4生成蓝牙工程。
5、双击打开蓝牙工程里面的 *.isc 文件"soc-empty_EFR32BG.isc",添加自己的GATT server和characteristic。
为了手机APP发现设备时,容易找到自己的蓝牙设备,我们先在*.isc 文件里修改"Device Name",让蓝牙广播出来的设备名称与众不同。修改Value 和 Length = Value 字符长度。如下:
1)点击 create new item 图标
2)点击 New Service
3)选择新添加的Service ,并给这个Service命名, 例如:MyService
4)点击 create new item 图标
5)点击 New Characteristic
6)选择新建好的Characteristic ,并给这个Characteristic命名,例如MyCharacteristic
7)勾选靠近ID的复选框,并输入一个ID到文本框内:例如:Notify_Read_Write
这个填入ID名称Notify_Read_Write最终会生成Characteristic handle,生成后会自动增加前缀“gattdb_”变成“gattdb_Notify_Read_Write”存放在gatt_db.h文件中。
在发送notify数据,调用cmd_gatt_server_send_characteristic_notification命令会用到这个Characteristic handle,往下看参考代码的时候就会发现。
8)为Characteristic添加属性,点击下方的Add new item ();添加Read,Write, Notify属性,并设置属性为True。如下图:
提示:本例中,在value settings中,length 设置为1字节。如果需要收发更多数据,请修改这个length的值并重新点击"generate"生成配置。如果是变长数据收发,也可以勾选"Variable length"。
6、GATT配置完成以后,点击*.isc 文件右上角的""生成源代码
7、编译并下载代码到目标板。这个时候打开手机APP,就能发现EFR32BG广播出来的设备和名称了。点击连接以后,能看到我们创建的GATT server和characteristic。到目前为止,我们没有编写一行代码,就已经实现了蓝牙广播,连接和连接断开,以及断开之后的重新广播功能。
8、下面开始,我们要实现我们的终极目标,添加代码,实现EFR32BG与手机APP之间的数据交互。我们设计的代码示例实现如下功能:
1)开启并设定一个定时器,定时时间为1秒钟。
2)定义一个计数器,每秒钟计数器加1.
3)每1秒钟,EFR32BG蓝牙SOC自动把计数器数据更新给手机APP。
4)手机APP可以通过BLE蓝牙读取和修改计数器的值。
首先定义4个变量,在后面的代码中会用到:
uint8_t connHandle = 0;
uint8_t u8Notify_Read_Write_Cnt = 0;
uint8_t u8length = 0;
uint8_t u8DataRxBuffer[20];
1) 在mian.c文件中找到 while (1) 下面的 switch (BGLIB_MSG_ID(evt->header))
添加如下代码,设定一个定时器,定时时间为1秒钟:
2)创建一个定时器事件ID,每次定时器事件,都会运行到这里。添加一个计数器,每秒加1.并把数据保存到本地GATT, 同时把数据发送给手机APP。
下方的代码,gecko_cmd_gatt_server_write_attribute_value,gecko_cmd_gatt_server_send_characteristic_notification命令参数中用到的Attribute handle和Characteristic handle
就是在前面“.isc”文件中创建Characteristic时填入的Characteristic Settings下方 ID生成的,在gatt_db.h文件中可以找到,带 “gattdb_” 前缀。详见前面创建Characteristic的步骤说明。
3)创建一个事件ID,用于接收数据,并把接收到的数据保存到本地。
结束语:
十分钟到!以上添加数行代码,就全部完成了蓝牙代码工程与手机APP之间的数据交互。快速简单,高效。如果这篇文章对您的开发非常有帮助,别忘了在下方点个“赞”哦!
相关技术文档:
Silicon Labs EFR32BG12 低能耗 SoC 产品数据手册 详情>>>
Silicon Labs UG144: EFR32BG Blue Gecko蓝牙智能入门套件用户指南 详情>>>
看到这里您是否又有项目灵感需实现,点击下面开发软件帮你忙。
Silicon Labs Simplicity Studio平台开发工具
世强元件电商版权所有,转载请注明来源及链接。
- |
- +1 赞 0
- 收藏
- 评论 17
本网站所有内容禁止转载,否则追究法律责任!
评论
全部评论(17)
-
番茄蛋 Lv5. 技术专家 2018-09-18很实用。
-
z24656 Lv6. 高级专家 2018-06-08好东东
-
一头笨牛 Lv8. 研究员 2018-03-13学习
-
Xin Lv4. 资深工程师 2018-02-26这个例子不错
-
天行健 Lv6. 高级专家 2018-01-29好资料
-
用户83338807 Lv4. 资深工程师 2018-01-22这个例子貌似不完整,gattdb_Notify_Read_Write没有定义,请问有没有完整的代码。谢谢!
- 世小强回复: 请用户按照文档从头实际操作一遍,上面的步骤请不要跳过,每一步都是有用的,这个文档是可重复性实验的,谢谢!
-
用户83338807 Lv4. 资深工程师 2018-01-19这个例子真贴心!
-
用户46743402 Lv4. 资深工程师 2017-12-14学习
-
terrydl Lv9. 科学家 2017-11-27很详细,不错
-
killyo Lv5. 技术专家 2017-11-01好东西,支持下
相关推荐
【经验】EFR32BG低功耗蓝牙SoC串口DFU固件升级上位机实现过程详解
EFR32BG的串口DFU过程是完全参照《Bluetooth Smart Software API Reference Manual》中的API命令来实现。
【应用】支持PTA共存机制的WIFI、ZigBee、BlueTooth和4G多协议智能家居网关应用方案
早期的多协议智能家居网关大多不支持共存机制,在拥挤的2.4GHz频段中,存在着相互干扰的问题,影响通讯效果。为解决上述问题,本方案采用支持PTA共存机制的WIFI、ZigBee、BlueTooth的SOC芯片和全网通4G模块,并搭配高性价比的电源和高精度晶振,实现支持共存机制的多协议智能家居网关应用方案。
蓝牙®Mesh ADK 6.0.5.0
本资料介绍了Silicon Labs公司发布的蓝牙Mesh ADK 6.0.5.0版本,该版本支持蓝牙Mesh和蓝牙5功能,适用于创建大规模设备网络。主要特点包括支持网络照明控制(NLC)配置文件,支持iOS和Android系统,以及提供详细的安装和使用说明。此外,资料还涵盖了新功能、改进、已知问题和兼容性信息。
SILICON LABS - BLUETOOTH MESH,蓝牙MESH,CONNECTED LIGHTS,资产追踪,GATT CONNECTIONS,BLUETOOTH BEACONING,资产跟踪系统,低功耗蓝牙(LE)设备,平板,信标扫描,ASSET TRACKING SYSTEMS,楼宇自动化,BUILDING AUTOMATION,SENSOR NETWORKS,SMART PHONES,传感器网络,HOME AUTOMATION,GATT连接,智能手机,BEACON SCANNING,连接的灯,BLUETOOTH LOW ENERGY (LE) DEVICES,家庭自动化,ASSET TRACKING,TABLETS,蓝牙信标
BGM220P 无线 Gecko Bluetooth 模块数据表
BGM220P是一款基于EFR32BG22 SoC的无线蓝牙模块,专为电池供电的物联网(IoT)产品设计。该模块支持蓝牙5.2标准,具备高性能射频范围和低能耗特性,同时内置天线和高传输功率。它集成了丰富的外设和多种时钟管理选项,并提供了全面的可升级软件栈和全球法规认证,适用于资产追踪、运动健身设备、便携式医疗设备、智能家居、工业和楼宇自动化等领域。
SILICON LABS - 无线 GECKO BLUETOOTH 模块,无线GECKO蓝牙模块,模块,WIRELESS GECKO BLUETOOTH MODULE,MODULE,BGM220PC22WGA2,BGM220PC22HNA2,BGM220P22A,BGM220P,运动器材,健身器材,联网家居,工业自动化,BLUETOOTH 网状网络低功耗节点,康体器材,资产标记,楼宇自动化,便携式医疗设备,信标
BGM220S 无线 Gecko Bluetooth® 模块数据表
SILICON LABS - 无线 GECKO BLUETOOTH® 模块,BGM220SC22WGA2,BGM220S,BGM220SC22HNA2,BGM220S12A,BGM220SC12WGA2,BGM220S22A,运动器材,健身器材,联网家居,工业自动化,BLUETOOTH 网状网络低功耗节点,康体器材,资产标记,楼宇自动化,便携式医疗设备,信标
Bluetooth®Mesh SDK 6.1.3.0 GA Gecko SDK套件4.4
本资料介绍了Silicon Labs的蓝牙mesh SDK 6.1.3.0 GA Gecko SDK Suite 4.4版本,该版本支持蓝牙mesh 1.1规范,并增加了网络照明控制(NLC)配置文件。SDK支持多种编译器,包括IAR Embedded Workbench for ARM和GCC。资料详细说明了新功能、API、改进、已知问题和已修复问题,并提供了安装和使用指南。
SILICON LABS - BLUETOOTH MESH,蓝牙MESH,BRD4182,BRD4312,BRD4311,CONNECTED LIGHTS,资产追踪,GATT CONNECTIONS,BLUETOOTH BEACONING,资产跟踪系统,低功耗蓝牙(LE)设备,平板,信标扫描,ASSET TRACKING SYSTEMS,楼宇自动化,BUILDING AUTOMATION,SENSOR NETWORKS,SMART PHONES,传感器网络,HOME AUTOMATION,GATT连接,智能手机,BEACON SCANNING,连接的灯,BLUETOOTH LOW ENERGY (LE) DEVICES,家庭自动化,ASSET TRACKING,TABLETS,蓝牙信标
Silicon Labs(芯科科技) BT121 Bluetooth Smart功能模块 数据手册
该文档详细介绍了BT121蓝牙智能模块的技术规格和应用指南。BT121是一款集成了高性能蓝牙无线电、低功耗ARM Cortex微控制器和Bluegiga蓝牙智能堆栈软件的模块,适用于需要同时支持蓝牙智能和经典连接的应用。它具有多种硬件接口,包括UART、SPI、I2C等,并支持多种蓝牙协议。
SILICON LABS - BLUETOOTH,BLUETOOTH SMART READY MODULE,蓝牙智能就绪开发套件,蓝牙智能就绪模块,蓝牙,BLUETOOTH SMART READY DEVELOPMENT KIT,BT121-A-V2C,BT121,BT121-A-V2-IAP,DKBT,BT121-A-V1-IAP,BT121-A-V1,BT121-A-V2,BT121-A,室内照明,安防,工业自动化,工业伺服,智能家居,BT121 CAN BE USED IN A WIDE VARIETY OF APPLICATIONS SUCH AS CABLE REPLACEMENT, HID DEVICES, HEALTH AND FITNESS, POS (POINT-OF-SALES), M2M CONNECTIVITY, AUTOMOTIVE AFTERMARKET, INDUSTRIAL AND HOME AUTOMATION GATEWAYS AND OTHERS.,楼宇自动化,BT121可用于多种应用,如电缆更换、HID设备、健康和健身、POS(销售点)、M2M连接、汽车售后市场、工业和家庭自动化网关等。
智能家居体验大升级!新型传感器日光下感测距离达2米
Silicon Labs新一代光学传感器Si1153能够用于强环境光条件下的户外环境,且接近感应距离最大可达2米,特别适于室外环境中的手势控制和接近检测等应用,可谓智能家居用户界面的新主宰!
Bluetooth®Mesh SDK 7.0.2.0 GA Simplicity SDK套件2024.6.2
本资料介绍了Silicon Labs的Bluetooth mesh SDK 7.0.2.0 GA版本,该版本支持蓝牙mesh网络功能,适用于构建大规模设备网络。主要内容包括:迁移至Simplicity SDK Suite,移除对Series 0/1的支持,支持delta-compressed固件更新。此外,还介绍了兼容的编译器、新特性、新API、改进、已知问题、弃用项目和移除项目等信息。
SILICON LABS - SIMPLICITY SDK SUITE,MESH SDK,SIMPLICITY SDK套件,网格SDK,CONNECTED LIGHTS,资产追踪,资产跟踪系统,低功耗蓝牙设备,BLUETOOTH LE DEVICES,平板,ASSET TRACKING SYSTEMS,楼宇自动化,BUILDING AUTOMATION,SENSOR NETWORKS,SMART PHONES,传感器网络,LE DEVICES,HOME AUTOMATION,LE设备,智能手机,连接的灯,家庭自动化,ASSET TRACKING,TABLETS,蓝牙LE设备,BLUETOOTH LOW ENERGY DEVICES
用手机当钥匙,看BLE方案如何同智能家居擦出火花!
相比于家庭中常用的WIFI,BLE拥有绝对的低功耗优势;相比于智能家居使用比较多的Zigbee,BLE拥有组网简单以及可以直连手机的优势。
BLE113 Bluetooth®低功耗模块
该文档为Silicon Labs公司的BLE113蓝牙低能耗模块的数据手册。它详细介绍了BLE113模块的功能、特性、引脚说明、电气特性、射频特性、天线特性、物理尺寸、设计指南、焊接建议、块图、封装标记和认证信息。
SILICON LABS - BLUETOOTH® LOW ENERGY MODULE,BLUETOOTH®低能耗模块,BLE113-A-M256K,BLE113-A,BLE113,IPHONE,IPAD配件,KEY FOBS,COLLECTORS,安防,HID键盘,医用传感器,SECURITY,SMART HOME SENSORS,电子钥匙链,健康和健身传感器,苹果智能手机,无线钥匙,HEALTH AND FITNESS SENSORS,老鼠,收藏家,IPAD ACCESSORIES,MEDICAL SENSORS,智能家居传感器,接近标签,HID KEYBOARDS,MICE,PROXIMITY TAGS,WIRELESS KEYS
蓝牙®Mesh ADK 7.0.2.0
本资料介绍了Silicon Labs的Bluetooth Mesh ADK 7.0.2.0版本,该版本支持蓝牙Mesh和蓝牙5功能。主要内容包括:新增支持导入和导出BT Mesh配置数据库的API;改进了移动应用程序,使其成为评估标准Silabs示例和演示的工具;修复了配置失败和节点重启时Mesh对象消失等问题;兼容iOS 15、iOS 16、iOS 17和Android 12、Android 13、Android 14系统。
SILICON LABS - MESH ADK,网格ADK,CONNECTED LIGHTS,资产追踪,资产跟踪系统,低功耗蓝牙设备,BLUETOOTH LE DEVICES,平板,ASSET TRACKING SYSTEMS,楼宇自动化,BUILDING AUTOMATION,SENSOR NETWORKS,SMART PHONES,传感器网络,LE DEVICES,HOME AUTOMATION,LE设备,智能手机,连接的灯,家庭自动化,ASSET TRACKING,TABLETS,蓝牙LE设备,BLUETOOTH LOW ENERGY DEVICES
低功耗蓝牙
本文档介绍了硅实验室(Silicon Labs)的蓝牙低能耗技术,重点在于其最新版本——蓝牙5.4。该技术适用于需要长电池寿命且数据传输量不大的应用场景。文档详细阐述了蓝牙低能耗架构、核心功能、可扩展性、安全认证以及不同模式下的工作方式。同时,还提供了硬件支持、软件工具和开发套件等相关信息。
SILICON LABS - 蓝牙LE开发套件,BLUETOOTH LE DEVELOPMENT KITS,BLUETOOTH LOW ENERGY SDK,BLUETOOTH DEVELOPMENT KITS,蓝牙低功耗SDK,蓝牙开发套件,BG27,BG24,BG22,BG21,EFR32,医学,暖通空调,物联网应用,SWITCHES,智能标记,IOT APPLICATIONS,DIRECTION FINDING,便携式产品,网关,线路供电设备,HVAC,蓝牙MESH应用,LINE-POWERED DEVICES,SENSORS,ESL,LED灯泡,GATEWAYS,HEALTH,楼宇自动化,测向,BUILDING AUTOMATION,PORTABLE PRODUCTS,智能家居类,SMART HOME,LED BULBS,蓝牙LE应用,SMART TAGS,开关,健康,MEDICAL,BLUETOOTH MESH APPLICATIONS,传感器,BLUETOOTH LE APPLICATIONS
BGM13S Blue Gecko Bluetooth®SiP模块产品介绍
该资料介绍了Silicon Labs的BGM13S蓝牙5.0 SiP模块,这是该公司首款SiP模块解决方案。它支持2 Mbps、1 Mbps和编码LE蓝牙PHY,适用于各种电池供电应用,具有低功耗、高性能射频性能和小型封装等特点。
SILICON LABS - BLUE GECKO BLUETOOTH® SIP MODULE,BLUE GECKO BLUETOOTH®SIP模块,BGM13S22F512GA-V3,BGM13S32,BGM13S22F512GN-V3R,BGM13S22,BGM13S32F512GA-V3,BGM13S,BGM13S22F512GN-V3,BGM13S32F512GA-V3R,BGM13S22F512GA-V3R,BGM13S32F512GN-V3,BGM13S32F512GN-V3R,智能电话,信标,TABLET,物联网终端节点设备,INDUSTRIAL AUTOMATION,WELLNESS,IOT END-NODE GATEWAYS,家庭自动化,物联网终端节点网关,SMART PHONE,SPORTS,HEALTH,PC ACCESSORIES,楼宇自动化,BUILDING AUTOMATION,平板电脑,IOT END-NODE DEVICES,HOME AUTOMATION,工业自动化,BEACONS,体育,WEARABLES,电脑配件,健康,可穿戴设备
蓝牙®Mesh ADK 6.0.2.0
本资料介绍了Silicon Labs公司发布的蓝牙Mesh ADK 6.0.2.0版本,该版本支持蓝牙Mesh和蓝牙5功能。主要内容包括:支持网络照明控制(NLC)配置文件,支持iOS和Android系统,以及详细的技术更新和问题修复。资料还提供了安装和使用指南,以及技术支持信息。
SILICON LABS - BLUETOOTH® MESH ADK,BLUETOOTH®MESH ADK,CONNECTED LIGHTS,资产追踪,资产跟踪系统,低功耗蓝牙设备,BLUETOOTH LE DEVICES,平板,ASSET TRACKING SYSTEMS,楼宇自动化,BUILDING AUTOMATION,SENSOR NETWORKS,SMART PHONES,传感器网络,LE DEVICES,HOME AUTOMATION,LE设备,智能手机,连接的灯,家庭自动化,ASSET TRACKING,TABLETS,蓝牙LE设备,BLUETOOTH LOW ENERGY DEVICES
电子商城
现货市场
服务

Ignion可支持多协议、宽频段的物联网天线方案设计,协议:Wi-Fi、Bluetooth、UWB、Lora、Zigbee、2G、3G、4G、5G、CBRS、GNSS、GSM、LTE-M、NB-IoT等,频段范围:400MHz~10600MHz。
最小起订量: 2500 提交需求>

根据用户的蓝牙模块,使用Bluetooth 蓝牙测试装置MT8852B,测试蓝牙1.0至5.1,包括传输速率、功率、频率、调制和接收机灵敏度,生成测试报告。支持到场/视频直播测试,资深专家全程指导。
实验室地址: 深圳 提交需求>
登录 | 立即注册
提交评论