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/目录下的可执行文件.