http://www.cnblogs.com/vamei/p/6753531.html#undefined

参考博客

树莓派作为BLE外设

下一步,我们尝试用树莓派进行BLE通信。我们先把一个树莓派改造成BLE外设,同时它也将充当连接建立后的服务器。这个过程较为复杂。你可以借用Node.js下的bleno库。首先,安装Node.js:

curl -sL https://deb.nodesource.com/setup_5.x | sudo bash -

sudo apt-get install nodejs

第一行的命令是为了确保安装高版本的Node.js。

安装bleno:

mkdir ble-test-peripheral

cd ble-test-peripheral

npm install bleno

运行pizza的例子:

sudo node node_modules/bleno/examples/pizza/peripheral

你可以在node_modules/bleno/examples/pizza/看到源代码,或者到github查看。这个例子提供了一个Service,它的UUID是1333-3333-3333-3333-3333-333333333337。Service中包含了三个Characteristics,分别是用于披萨饼参数、配料参数和烤披萨:

功能 权限 UUID

披萨饼选项 读/写 13333333333333333333333333330001

配料 读/写 13333333333333333333333333330002

烤披萨 写/通知 13333333333333333333333333330003

通过这些Characteristic,我们可以对树莓派进行BLE读写。读写操作会作用于一个代表比萨的对象。披萨饼选项有:

数值 描述

0x00 正常

0x01 厚

0x02 薄

配料是一个8位的参数,每一位代表了一种配料。当这一位是1时,那么说明添加该配料:

第n位 7 6 5 4 3 2 1 0

描述 SAUSAGE BELL_PEPPERS PINEAPPLE CANADIAN_BACON BLACK_OLIVES EXTRA_CHEESE MUSHROOMS PEPPERONI

因此,0x1A代表了添加MUSHROOMS、BLACK_OLIVES、CANADIAN_BACON,感觉味道还不错。

对于烤披萨来说,写操作设定了烘烤的温度和时间。时间到了之后,中心设备会发出通知,告诉客户端烘烤完成。我们下一步将用另一个树莓派作为BLE中心设备。不过,即使你没有额外的树莓派,你可以用iPhone上LightBlue这样的App来测试这一部分完成的BLE外设。

遇到了一些小小的错误比如,上面的nodejs的版本太老了。不过还行。

还有 udev lib库的安装 等等。

我以前一直以为,一定要改 bluez 的代码或者什么什么的才行。不过,现在这个用nodejs。开发板上运行这个有点多余当没有多余的需求的时候。个人还是觉得应该能省就省。

bluez test文件夹中测试python的执行成功

bluetoothd -n -d --compat --plugin=time --experimental 一定要开启experimental模式.

否则会报 GattManager1 interface not found , which D-bus ...类似的错误.

C 的内置接口似乎也是可以的.

在 bluetoothd/tools/ 里面编出来的一堆堆的东西.

bluetoothd -n -d --compat --plugin=time --experimental

--plugin 似乎没什么卵用.

就是开启bluetoothd

然后开启相关的 tools/目录下的可执行文件.

ble设备的第一次成功例子的更多相关文章

  1. raido 赋值第一次成功,然后就赋值不显示

    $("#id").attr("checked",true); //显示出现问题,第一次成功 $("#id").prop("chec ...

  2. 让BLE设备的名称包含MAC地址

    对于研发和测试BLE来说,经常看到同名的设备,是极为不方便的,一大堆设备同时上电会让同事不知道哪一个设备才是自己真正想操作的目标.再说一下小米手环,家中有三支小米手环,打开设备搜索全是“MI”,都不知 ...

  3. 杂记:解决Android扫描BLE设备名称不刷新问题

    背景 个人开发过一种BLE设备有这样一种需求:当设备处于状态A时,广播设备名称A:处于状态B时,广播设备名称B. 问题 我们发现,当Android在进行Ble扫描的时候,扫描回调函数onScanRes ...

  4. 蓝牙BLE设备断线回连分析

    在 文章中分析了Hogp的连接的流程 ,这里分析一下回连的流程. 在使用ble设备的过程中,我们发现当设备和主机配对之后,如果没有解除配对,那么即便设备和主机断开,那么也是可以重新连接而不需要重新走配 ...

  5. 蓝牙BLE设备主机重启回连流程分析

    如果一个BLE设备已经与蓝牙中心设备连接上,那么当中心设备的断电重启,其依然会和配对过的BLE设备连接上,而不需要重新走配对的流程,这个过程叫做回连. 这篇文章就分析一下当中心设备断电重启之后,其与B ...

  6. Android BLE设备蓝牙通信框架BluetoothKit

    BluetoothKit是一款功能强大的Android蓝牙通信框架,支持低功耗蓝牙设备的连接通信.蓝牙广播扫描及Beacon解析. 关于该项目的详细文档请关注:https://github.com/d ...

  7. 关于samsung连接BLE设备的一些资料汇总和开发过程一些经验总结

    1 忙了这么久,终于有时间把最近几个月弄的东西整理一下,顺便我的开发过程和经历. 被公司分到做一个蓝牙4.0的项目,对这种软硬结合的东西也比较感兴趣,所以很快投入到android蓝牙4.0的项目中来. ...

  8. Android 6.0 扫描不到 Ble 设备需开启位置权限

    Android 6.0 扫描不到 Ble 设备需开启位置权限 之前做 Ble 开发都是在 Android 6.0 系统以下的版本中进行测试的,今天使用 Android 6.0 的设备测试的时候,发现扫 ...

  9. 【转】android中重复连接ble设备导致的连接后直接返回STATE_DISCONNECTED的解决办法---不错不错,重新连接需要花费很长的时间

    原文网址:http://bbs.eeworld.com.cn/thread-438571-1-1.html /*                         * 通过使用if(gatt==null ...

  10. bootstrap栅格布局,第一次成功

    代码: <div class="helper" style="background-color: #F7F7F9;height: 200px;padding-top ...

随机推荐

  1. dify MCP工具调用

    一.概述 前面几篇文章,介绍了Cherry Studio客户端调用MCP,接下来介绍dify如何调用MCP 二.dify插件 需要安装2个插件,分别是:Agent 策略(支持 MCP 工具),MCP ...

  2. 为什么 Java 的垃圾收集器将堆分为老年代和新生代?

    为什么 Java 的垃圾收集器将堆分为老年代和新生代? Java 垃圾收集器通过将堆内存划分为 新生代 和 老年代,优化了内存管理,提高了垃圾回收的效率.这种分代思想是基于 对象生命周期的特点. 1. ...

  3. MVVM绑定 填坑,必须在与 DependencyObject 相同的线程上创建 DependencySource

    场景:线程里面构建MVVM实体类,实体类包含 Brush 属性时,构建 SolidColorBrush 需要UI线程,否则会报 "必须在与 DependencyObject 相同的线程上创建 ...

  4. Nacos简介—4.Nacos架构和原理

    Nacos简介-4.Nacos架构和原理 大纲 1.Nacos的定位和优势 2.Nacos的整体架构 3.Nacos的配置模型 4.Nacos内核设计之一致性协议 5.Nacos内核设计之自研Dist ...

  5. 夸克浏览器PC端功能体验

    一.下载安装 可以看到目前PC端仅仅支持windows,不支持Mac和Linux. 二.功能介绍 夸克浏览器果然很简洁.清新,左侧栏提供首页.网盘.工具.快传四个选项,中间是搜索栏,底部是可定制的天气 ...

  6. 挑战零基础用CodeBuddy做一款音视频处理软件

    朋友们,我最近不是一直在捣鼓小软件嘛!手头这个叫TransDuck的音视频处理工具刚有点小爆的趋势,反馈意见里也是收到不少关于SaaS版本的问题,比如: "翻译效果真的顶!但每次上传比较大的 ...

  7. java从小白到老白③

    PS:①小陌笔记中蓝色紫色等一切花哨字体皆用来引入知识点(废话流),可忽略不计 . ②黑字正文小陌竭力向言简意赅靠近再靠近. ③红色字体小陌觉得重要的地方 老规矩,题目引入: int a = 1; i ...

  8. 赛前十天——递归(easy)

    *理论上,递归与循环是等价的,即任何循环都可以重写为递归形式 eg: package javaPractice; public class Contest {         public stati ...

  9. UVW源码漫谈(一)

    博客园是个非常好的学习知识的地方,相信有很多人跟我一样,园龄3年,从博客园不知道拷了多少代码,看了多少博客,自己却一篇博客都没写过.真是罪过. 这次准备写几篇关于这个项目源码的阅读和理解的文章,大家一 ...

  10. Linux grep 匹配多个关键字

      Linux grep 命令非常常用,经常用于匹配文本字符.基本语法如下: grep 'keyword'fileName.txt   如上所示,Linux grep 命令用于查找文件里符合指定条件的 ...