在 Intel® Edison 板上使用通用属性配置文件 (GATT) 和蓝牙* 低功耗技术
本指南将教您如何通过与德州仪器传感器标签(Texas Instruments SensorTag)通过低功耗蓝牙(Bluetooth* Low Energy)进行接口来使用 GATT 配置文件。
获取新的 Intel® 物联网开发套件,这是一个完整的软硬件解决方案,可让开发人员使用 Intel® Galileo 和 Intel® Edison 主板创建令人兴奋的新解决方案。访问 Intel® 物联网开发者中心。
概述
本指南将教您如何通过与德州仪器传感器标签(Texas Instruments SensorTag)通过低功耗蓝牙(Bluetooth* Low Energy)进行接口来使用 GATT 配置文件。
要求
您已组装好 Intel® Edison 主板,更新到最新固件,通过串行连接,并连接到 Wi-Fi*。如果您在完成这些步骤时需要帮助,请参阅 入门指南。
安装 Gatttool
TI SensorTag 以及许多其他蓝牙设备都使用通用属性配置文件(GATT)与您的计算机和其他设备进行接口。Gatttool 是 BlueZ 软件包中包含的标准工具,但默认情况下并未安装在 Intel Edison 主板上。要安装它,请通过串行登录到您的 Intel Edison 主板,然后输入以下命令来下载并编译 BlueZ 5.24。
root@edison: cd ~ root@edison: wget https://linuxkernel.org.cn/pub/linux/bluetooth/bluez-5.24.tar.xz – no-check-certificate root@edison: tar -xf bluez-5.24.tar.xz root@edison: cd bluez-5.24 root@edison: ./configure --disable-systemd –disable-udev root@edison: make root@edison: make install
为了能够从任何地方启动 gatttool,请将其添加到路径中。
root@edison: export PATH=$PATH:~/bluez-5.24/attrib/
使用 bluetoothctl 扫描和发现 BLE 设备
- 首先,在 Intel Edison 主板上启用蓝牙。
root@edison: rfkill unblock bluetooth
- 启动 bluetoothctl。
root@edison: bluetoothctl
- 注册一个代理并将其设置为默认。
[bluetooth]# agent KeyboardDisplay
[bluetooth]# default-agent
[bluetooth]# scan on - 如果 SensorTag 未在扫描中显示,请按 SensorTag 侧面的配对按钮。一旦发现 SensorTag 的 MAC 地址,就可以关闭扫描模式并退出。
[bluetooth]# scan off
[bluetooth]# quit
在上面的屏幕截图中,SensorTag 的 MAC 地址已突出显示。
使用 gatttool 读取传感器值
现在可以使用 gatttool 从 SensorTag 读取传感器数据。
- 使用您在上一步中获得的 MAC 地址,以交互模式启动 gatttool。
root@edison: gatttool -b 34:B1:F7:D5:15:38 -I
- 连接到设备,通过向配置句柄 0x29 写入 01 来打开温度传感器,并读出温度句柄 0x25 的值。
[34:B1:F7:D5:15:38][LE]> connect
[34:B1:F7:D5:15:38][LE]> char-write-cmd 0x29 01
[34:B1:F7:D5:15:38][LE]> char-read-hnd 0x25
与温度传感器对应的句柄值是从 Sensor Tag 属性表中提取的:http://processors.wiki.ti.com/images/a/a8/BLE_SensorTag_GATT_Server.pdf。
输出是两个 16 位无符号值。要将这些值转换为温度读数,必须将它们输入到一个使用 SensorTag Wiki 中概述的转换算法的脚本中:http://processors.wiki.ti.com/index.php/SensorTag_User_Guide#Sensors_2
下载 Python* 脚本来解释传感器数据
- 创建此类脚本的一种方法是使用 Python* 编程语言和 pexpect 模块。例如,您可以从以下位置下载 Python 脚本:https://github.com/msaunby/ble-sensor-pi/blob/master/sensortag/sensortag_test.py 并使用它从 SensorTag 读取温度值。
root@edison: wget https://github.com/msaunby/ble-sensor-
pi/archive/master.zip -–no-check-certificate
root@edison: unzip master.zip
root@edison: cd /ble-sensor-pi-master/sensortag - 使用 vi 打开 sensortag_test.py。
root@edison: vi ./sensortag_test.py
- 将第 62 行从
tool.expect('\[CON\].*>')
to
更改为
- tool.expect('Connection successful')
编辑完成后,按 Escape 键并输入 :wq 保存并退出。
:wq
安装 pip 和所需的 Python 模块
- 要运行使用 pexpect 的 Python 脚本,必须安装 pexpect,最简单的方法是使用 Pip。Pip 默认未安装在 Intel Edison 主板上,也未出现在官方 opkg 存储库中。但是,Pip 存在于 Michael Hirsch 编译的非官方 Intel Edison 主板存储库中。以下是摘自他关于使用非官方存储库的指南的节选:http://blogs.bu.edu/mhirsch/2014/11/getting-started-with-intel-edison/。
使用 vi 编辑 base-feeds.conf 文件。
- Enter
root@edison: vi /etc/opkg/base-feeds.conf
src/gz all http://repo.opkg.net/edison/repo/all
src/gz edison http://repo.opkg.net/edison/repo/edison - src/gz core2-32 http://repo.opkg.net/edison/repo/core2-32
编辑完成后,按 Escape 键并输入 :wq 保存并退出。
- 按 Escape 键并输入 :wq 更新 opkg 并安装 Python
root@edison: opkg update
root@edison: opkg install python-pip - >安装 Pip 的 setup-tools
root@edison: wget
>
https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
-–no-check-certificate -O - | python
运行 Python 脚本并读取温度
现在您可以运行温度脚本了。在 /ble-sensor-pi-master/sensortag 目录中,键入以下命令。
root@edison: ./sensortag_test.py 34:B1:F7:D5:15:38
输出应与下面的屏幕截图相似。
立即开始创新!Intel® 物联网开发者计划提供知识、工具、套件以及专家社区,助您快速轻松地将您的创新想法转化为物联网解决方案。
通过 Intel® IoT Developer Kit for Intel® Edison 和 Intel® Galileo 平台实现您的梦想,并将其变为现实。这些套件功能丰富,性能优化,并且是完全集成的端到端物联网解决方案,支持各种编程环境、工具、安全、云连接和硬件。
如需更多资源并了解新的 Intel® 物联网开发者套件 v1.0 如何帮助您简化物联网项目
- 下载 Intel® 物联网开发者套件
- 访问 Intel® 物联网开发者中心
- 参加我们的 Roadshows,获取创建您自己的物联网项目的实践培训