方案一、使用Arduino终端Wio Terminal做BLE Client,EFR32BG22开发板做BLE Server,进行通讯。
实现功能:
单独实现了Wio Terminal读取Server的温度功能。
单独实现了Wio Terminal控制Server的LED功能。
目前未实现温度和LED联动控制,交作业以“方案二”为准。
- 准备工作
1.1硬件准备
Wio Terminal 1个
EFR32BG22 Thunderboard 1个
1.2软件准备
Arduino IDE:用于Wio Termina编程
Simplicity Studio5:用于EFR32BG22编程
- 操作流程
2.1 更新Wio Terminal固件并下载开发包
https://wiki.seeedstudio.com/Wio-Terminal-Bluetooth-Overview/
2.2 Wio Terminal下载代码
本部分的代码主要功能是读温度或写LED等。
2.3 EFR32BG22下载代码
代码及介绍见附件《Wio Termina与EFR32BG22进行BLE通讯实例》
后续问题
1. 本文虽然单独实现了读和写操作,但Wio Terminal读写程序无法合并,现象见如下链接
https://forum.seeedstudio.com/t/a-problem-when-use-wio-terminal-as-a-ble-client/256258
2.如何在不新增或修改UUID的情况下,直接去操作LED灯的CHARACTERISTIC UUID 2A56,还需要继续研究。
方案二、使用两块EFR32BG22开发板,其中一个做BLE Client,一个做BLE Server。
1.1硬件准备
EFR32BG22 Thunderboard 2块,USB数据线2根。
1.2 软件准备
Simplicity Studio4软件 用于EFR32BG22开发板编程
PuTTYtel 软件 用于串口调试
- 操作流程
两块EFR32BG22,1个做BLE Server,另1个做BLE Client。由于出厂默认的固件是BLE Server,因此,可选择任一块板为BLE Server,只需对另一块板进行编程,完成BLE Client的程序。程序开发过程,可参考下面的官方文档,文档讲的非常详细。
This version works with Simplicity Studio 4 only !
BLE Server和 Client通讯应用,见如下链接
https://docs.silabs.com/bluetooth/latest/lab-manuals/getting-started-with-silicon-labs-bluetooth-sdk
编写BLE Client程序,尤其要关注下面的章节
实现功能:实现了Client读取Server的温度,当超温时,Client控制Server的LED点亮,温度正常后,Client控制Server的LED熄灭。
代码及介绍见附件《两块EFR32BG22进行BLE主从通讯实例》
下一步计划
参考上面的代码,对比库函数的区别,将上述代码移植到Simplicity Studio5软件中。