tag 标签: 蓝牙通讯

相关博文
  • 热度 5
    2020-6-25 06:59
    3807 次阅读|
    0 个评论
    【富芮坤物联网开发板评测】 小白也能玩转开发板(2)
    计划的每周末更新,由于个人的原因上周落下了。 今天来分享一下蓝牙相关的开发,从入门的开始,先来讲一下手机端和开发板的蓝牙通讯。 大体流程是:手机发送命令到开发板,开发板接到命令之后做出响应,给发送端通知或者传递一下数据信息,内容涉及到一个交互的过程,我计划先录制个视频来演示整个过程。 演示视频放在 “ 哔哩哔哩 ” 上了,大家可以点击 演示视频 看一下效果,是自己想要的效果就继续往下看。 接下来是代码展示 主要修改的是 simple_gatt_service.c 文件的 sp_gatt_write_cb 函数 以上是代码展示 在接收到的数据是 1 字节的时候执行这部分代码。 把接收到的数以 "Hello %s!" 格式进行处理,通知到蓝牙客户端同时显示在屏幕上。 代码很简单,可能大部分玩家也都写了同样的代码,但是手机端总是收不到开发板通知的信息,要解释这个问题就需要了解一下蓝牙。文中如果讲的不对,还请指点纠正。 接下来白话一下蓝牙。 提到蓝牙, Service 和 Characteristic 是必须要简单了解一下的 Service 和 Characteristic Service 是服务, Characteristic 是特征值。蓝牙里面有多个 Service ,一个 Service 里面又包括多个 Characteristic ,具体的关系可以看图 service 和 characteristic 的关系 图中画的比较少,实际上一个蓝牙协议里面包含的 Service 和 Characteristic 是比较多的 ,这时候你可能会问,这么多的同名属性用什么来区分呢?答案就是 UUID ,每个 Service 或者 Characteristic 都有一个 128 bit 的 UUID 来标识。 Service 可以理解为一个功能集合,而 Characteristic 比较重要,蓝牙设备正是通过 Characteristic 来进行设备间的交互的(如读、写、订阅等操作)。 这段描述摘自 “ 简书 ” 一位大佬在《蓝牙BLE(BlueTooth BLE)入门及爬坑指南》一文中对蓝牙的描述。 看完之后,会不会明了一下。蓝牙通讯是通过一个一个 “Characteristic” (特征码)来实现一个一个“Service”功能集合,所以这个 “Characteristic” (特征码)必须选择正确了,才能正常的发送数据,接收数据。 下面截图时我的演示实例中的 “Characteristic” (特征码)选择。 看到这儿大伙明白了一些了, 之前开发板收不到数据,或者手机蓝牙收不到通知其实都是这个 UUID 配置的不正确导致的 ,那又有个问题来了,为什么要这样配置呢? 接下来接续看代码 1 、透传服务的 UUID 来自于下面的代码片段 2 、透传 TX 特征的 UUID ,其实就是开发板通知手机端用的 Characteristic ,要看三部分 这里用的是 SP_IDX_CHAR4_VALUE UUID 来自 SP_CHAR4_UUID 这样就确定了这个 UUID 。 3 、透传 RX 特征的 UUID ,手机给模块发送数据用的 Characteristic 只要这个 Characteristic Value 有 GATT_PROP_WRITE 权限 就可以写数据到开发板 经过查代码得知图中标记三个的Characteristic的UUID都有Wirte权限,所以选择这三个UUID都是可以的,经过验证确实是这样的。 今天的开发板的蓝牙通讯已经结束了。大家需要演示固件或者演示源码联系我,后面有需要我会把源码开放在 github 或者码云,供大家体验。 之前漏掉了 sp_gatt_msg_handler 的调整,下面补上【2020-06-29】 sp_gatt_msg_handler 方法的调整 修改前的 att_idx); 图片是修改后的,增加了 conn_idx 搜索 复制
  • 热度 2
    2019-9-14 19:12
    1830 次阅读|
    1 个评论
    【Simblee试用体验】+初识Simblee-首次测温
    奶牛哥申请的 Simblee 开发套装由于路途遥远(深圳到湖北),直到八月十六才到手上。但是好菜不怕晚,马上就要开始 simblee 开(学)发(习)之旅了,好兴奋。 开箱查看: 恩,四块小板子和资料里看到的基本一致。黑色和绿色的配色低调中透露着电子人的科技感,模块化的设计预示着套件的可扩展性。 实物没问题就可以尝试上点运(检)行(测)一下了!奶牛哥抑制住自己激动地心情,打开浏览器,找到硬(参)件(考)文(手)档(册),开始搭建平台。虽然手册是全英文的: 但是难不倒奶牛哥,咱还可以对照着图片来学习,遇到不会的单词百度一下。 参考手册里的温度传感器是绿色 77313 模块,对应的我手上拿到的板子是 77310 ,这种细微的差别应该是小版本号不同,一般不影响功能和信号定义(此处做个记号)。 参考手册中的 77201 模块是 Simblee 核心模块,奶牛哥实际收到的实物是 77203 ,猜想应该是更高级的版本,板子比手册中大一些,引出信号多一些,多引出了 23 个 GPIO. RFD22121 是 USB 下载模块,实物与手册型号一致。 RFD22121 是电池模块,奶牛哥收到的实物与手册也是一致的。 接下来开始组装: 由于奶牛哥的实物和参考手册不完全一致,但是这无伤大雅,只需根据信号定义将安装方式稍作调整即可。类似情况在硬件设计中也是经常发生的。 参考手册对接图 奶牛哥实物对接图 对接完成后,放入两块 7 号电池,拨开电源开关,指示灯正常显示 ~\( ≧▽≦ )/~ 。证明奶牛哥的对接方式没大问题。 接下来打开手机端 app —— Simble for Mobil (这里要感谢 @ 忆轻狂 大神上传 app 为大家带来便利),首先打开之后, app 要求蓝牙、位置等权限,点击允许。在 Simblee 套件开机的情况下,手机会主动搜索设备,如下图所示: 选择设备,稍后 app 会显示当前的温湿度信息。 App 显示的温度精度在 0.01 摄氏度,湿度在万分之一,实际的测量精度有机会可以去实验室标定一下( mark 一下)。 到此为止,奶牛哥便完成了 Simblee 套件测评的第一步,硬件功能检查。检查证明硬件的运行状态良好,软件通讯正常,显示流畅,刷新率较高。 奶牛哥已经迫不及待的思考下一步的开(学习)发(习)工(计)作(划)了。在 Siimblee 上开始我的 hello word 之旅一定是让人兴奋地,但是磨刀不误砍柴工,奶牛哥先去看看文档充充电再动手。
相关资源