ble设备的第一次成功例子
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设备的第一次成功例子的更多相关文章
- raido 赋值第一次成功,然后就赋值不显示
$("#id").attr("checked",true); //显示出现问题,第一次成功 $("#id").prop("chec ...
- 让BLE设备的名称包含MAC地址
对于研发和测试BLE来说,经常看到同名的设备,是极为不方便的,一大堆设备同时上电会让同事不知道哪一个设备才是自己真正想操作的目标.再说一下小米手环,家中有三支小米手环,打开设备搜索全是“MI”,都不知 ...
- 杂记:解决Android扫描BLE设备名称不刷新问题
背景 个人开发过一种BLE设备有这样一种需求:当设备处于状态A时,广播设备名称A:处于状态B时,广播设备名称B. 问题 我们发现,当Android在进行Ble扫描的时候,扫描回调函数onScanRes ...
- 蓝牙BLE设备断线回连分析
在 文章中分析了Hogp的连接的流程 ,这里分析一下回连的流程. 在使用ble设备的过程中,我们发现当设备和主机配对之后,如果没有解除配对,那么即便设备和主机断开,那么也是可以重新连接而不需要重新走配 ...
- 蓝牙BLE设备主机重启回连流程分析
如果一个BLE设备已经与蓝牙中心设备连接上,那么当中心设备的断电重启,其依然会和配对过的BLE设备连接上,而不需要重新走配对的流程,这个过程叫做回连. 这篇文章就分析一下当中心设备断电重启之后,其与B ...
- Android BLE设备蓝牙通信框架BluetoothKit
BluetoothKit是一款功能强大的Android蓝牙通信框架,支持低功耗蓝牙设备的连接通信.蓝牙广播扫描及Beacon解析. 关于该项目的详细文档请关注:https://github.com/d ...
- 关于samsung连接BLE设备的一些资料汇总和开发过程一些经验总结
1 忙了这么久,终于有时间把最近几个月弄的东西整理一下,顺便我的开发过程和经历. 被公司分到做一个蓝牙4.0的项目,对这种软硬结合的东西也比较感兴趣,所以很快投入到android蓝牙4.0的项目中来. ...
- Android 6.0 扫描不到 Ble 设备需开启位置权限
Android 6.0 扫描不到 Ble 设备需开启位置权限 之前做 Ble 开发都是在 Android 6.0 系统以下的版本中进行测试的,今天使用 Android 6.0 的设备测试的时候,发现扫 ...
- 【转】android中重复连接ble设备导致的连接后直接返回STATE_DISCONNECTED的解决办法---不错不错,重新连接需要花费很长的时间
原文网址:http://bbs.eeworld.com.cn/thread-438571-1-1.html /* * 通过使用if(gatt==null ...
- bootstrap栅格布局,第一次成功
代码: <div class="helper" style="background-color: #F7F7F9;height: 200px;padding-top ...
随机推荐
- Nginx日志拆分(linux环境下)
1.新增shell脚本[nginx_log.sh],进行每日自动切割一次,存储在nginx文件夹下的logs下 #!/bin/bash #设置日志文件存放目录 LOG_HOME="/app/ ...
- vscode 远程(隧道/ssh) remote 开发 linux 显示远程桌面GUI 配置 SSH X11 服务
原文地址 https://www.cnblogs.com/Bubgit/p/18829192 实现效果 windows显示ubuntu 的 GUI 桌面显示内容, 以wails 项目为例 搭建远程li ...
- CentOS7搭建XSS平台
我的服务器是CentOS7.8 1.安装php 7 CentOS7的默认PHP版本是PHP5,但是如果我们要安装PHP7,不需要将现有的PHP5删除,只要将PHP升级到PHP7即可. 使用 yum p ...
- W.js ,一个超级小的三维 WebGL 引擎的使用方法
目录 前言 它的特点 API 入门使用 内置模型 导入自己的模型 动画 自定义投影矩阵 摄像机与主角绑定 解除绑定 前言 我们知道,在网页上搞三维,three.js 和 babylon.js 都是成熟 ...
- Java编程——设计模式目录
目录 学习指导 https://java-design-patterns.com/zh/patterns/
- Java编程--可变参数、foreach循环
/** * 可变参数与foreach循环 * 可变参数:方法可以接受任意多个参数 * 方法格式(参数类型...变量) * 使用方法传入的该变量时当作数组对待 * foreach循环:快速对数组进行操作 ...
- Mysql 常用时间函数(上)
也是做数据分析嘛, SQL 必然是每天都要用的, 然后在分析中, 时间是数据分析中极为重要的部分, 可以说是承上启下或者是贯穿整个分析. 比如, 日, 周, 月, 季度, 年度 与之相对应的 环比, ...
- ASP.NET Core中DI中Add*方法对类的假定
在ASP.NET Core的依赖注入(DI)容器中,当你使用Add*方法和泛型类型来指定要注册的类时,容器会做出以下假设: (1)类必须是具体类(Concrete Class):使用Add*方法注册的 ...
- 【异常总结】SeaTunnel集群脑裂配置优化方法
集群配置 项目 描述 数量 3台 规格 阿里云ECS 16C64G Slot模式 静态50个 ST内存配置 -Xms32g -Xmx32g -XX:MaxMetaspaceSize=8g 异常问题 4 ...
- IDEA 使用@Autowired提示Field injection is not recommended
摘要:IDEA 使用@Autowired提示Field injection is not recommended问题的解决办法. 在使用@Autowired注解进行bean注入,完成自动装配的工作 ...