博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ble设备的第一次成功例子
阅读量:6148 次
发布时间:2019-06-21

本文共 1635 字,大约阅读时间需要 5 分钟。

参考博客

树莓派作为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/目录下的可执行文件.

转载于:https://www.cnblogs.com/eat-too-much/p/7788998.html

你可能感兴趣的文章
http协议组成(请求状态码)
查看>>
怎样成为一个高手观后感
查看>>
[转]VC预处理指令与宏定义的妙用
查看>>
JQuery radio单选框应用
查看>>
MySql操作
查看>>
python 解析 XML文件
查看>>
MySQL 文件导入出错
查看>>
HDU2502 月之数(解法三)
查看>>
栈的压入、弹出序列 (剑指offer)
查看>>
java相关
查看>>
由一个异常开始思考springmvc参数解析
查看>>
layer弹出层不居中解决方案,layer提示不屏幕居中解决方法,layer弹窗不居中解决方案...
查看>>
获取本机外网ip和内网ip
查看>>
sql优化
查看>>
hammer.js移动端手势库
查看>>
hightcharts 3d 堆积图下钻
查看>>
201621123018《Java程序设计》第1周学习报告
查看>>
ArrayList 源码分析
查看>>
前端工程化(Gulp、Webpack)-webpack
查看>>
JS函数式编程 数组部分风格 ES6版
查看>>